ลักษณะของ microservices ตรวจสอบว่าการปรับใช้โมดูลการทำงานมีการกระจาย โมดูลที่ใช้งานได้ส่วนใหญ่ทำงานบนเครื่องจักรที่แตกต่างกันและโต้ตอบกันผ่านการโทรบริการ การไหลของธุรกิจในด้านหน้าและด้านหลังจะได้รับการประมวลผลและส่งผ่านทางไมโครไซต์จำนวนมาก วิธีค้นหาข้อยกเว้นอย่างรวดเร็ว? ลิงค์ไหนมีปัญหา?
ภายใต้กรอบนี้การตรวจสอบ microservices มีความสำคัญอย่างยิ่ง บทความนี้ส่วนใหญ่ผสมผสานสปริงบูตแอคทูเอเตอร์เพื่อแบ่งปันการใช้งานทั่วไปของ microservice spring boot actuator เพื่อให้เราสามารถตรวจสอบและจัดการ microservices ของเราในชีวิตประจำวัน
การตรวจสอบแอคทูเอเตอร์
Spring Boot ใช้แนวคิดของ "นิสัยดีกว่าการกำหนดค่า" และใช้การสแกนแพ็คเกจและกลไกการกำหนดค่าอัตโนมัติเพื่อโหลดถั่วสปริงที่ขึ้นอยู่กับขวด ไม่จำเป็นต้องมีการกำหนดค่า XML ใด ๆ เพื่อใช้การกำหนดค่าสปริงทั้งหมด แม้ว่าการทำเช่นนี้จะทำให้รหัสของเรากระชับมาก แต่ข้อมูลเช่นการสร้างอินสแตนซ์และการพึ่งพาของแอปพลิเคชันทั้งหมดนั้นไม่ต่อเนื่องกับคำอธิบายประกอบของคลาสการกำหนดค่าต่างๆซึ่งทำให้เรายากมากที่จะวิเคราะห์ความสัมพันธ์ที่หลากหลายระหว่างทรัพยากรและอินสแตนซ์ในแอปพลิเคชันทั้งหมด
Actuator เป็นฟังก์ชั่นบูรณาการของการวิปัสสนาและการตรวจสอบระบบแอปพลิเคชันที่จัดทำโดย Spring Boot คุณสามารถดูข้อมูลโดยละเอียดเกี่ยวกับการกำหนดค่าแอปพลิเคชันเช่นข้อมูลการกำหนดค่าอัตโนมัติที่สร้างถั่วฤดูใบไม้ผลิและคุณสมบัติด้านสิ่งแวดล้อมบางอย่าง
การตรวจสอบแอคทูเอเตอร์สามารถทำได้โดยการเพิ่มการอ้างอิงต่อไปนี้
<การพึ่งพา> <การพึ่งพา> <roupId> org.springframework.boot </groupId> <ratifactid> Spring-Boot-Starter-Web </artifactid> </การพึ่งพาอาศัย> <การพึ่งพา> <roupid> org.springframework.boot <RoupID> org.springframework.boot </groupId> <ratifactid> Spring-Boot-Starter-Security </artifactId>
เพื่อให้แน่ใจว่าความปลอดภัยของอินเทอร์เฟซการตรวจสอบที่เปิดเผยโดยแอคชูเอเตอร์จำเป็นต้องเพิ่มการพึ่งพาการควบคุมความปลอดภัยการควบคุมสปริง-เริ่มต้นการพึ่งพา เมื่อเข้าถึงจุดสิ้นสุดการตรวจสอบแอปพลิเคชันจำเป็นต้องมีข้อมูลการตรวจสอบ การพึ่งพาความปลอดภัยคุณสามารถเลือกที่จะไม่เพิ่มหรือจัดการความปลอดภัย แต่ไม่แนะนำ
ส่วนต่อประสานส่วนที่เหลือของแอคชูเอเตอร์
การตรวจสอบแอคทูเอเตอร์แบ่งออกเป็นสองประเภท: จุดสิ้นสุดดั้งเดิมและจุดสิ้นสุดที่ผู้ใช้กำหนด; จุดสิ้นสุดที่กำหนดเองส่วนใหญ่อ้างถึงความสามารถในการปรับขนาด ผู้ใช้สามารถกำหนดตัวชี้วัดที่เกี่ยวข้องมากขึ้นตามแอปพลิเคชันจริงและตรวจสอบในระหว่างการรันไทม์
จุดสิ้นสุดดั้งเดิมให้เว็บอินเตอร์เฟสมากมายในแอปพลิเคชันเพื่อทำความเข้าใจสถานะภายในของแอปพลิเคชันรันไทม์ จุดสิ้นสุดพื้นเมืองสามารถแบ่งออกเป็นสามประเภท:
แอคชูเอเตอร์ให้ 13 อินเทอร์เฟซดังแสดงในตารางต่อไปนี้
| วิธี HTTP | เส้นทาง | อธิบาย |
|---|---|---|
| รับ | /autoconfig | รายงานการกำหนดค่าอัตโนมัติมีไว้เพื่อบันทึกเงื่อนไขการกำหนดค่าอัตโนมัติที่ผ่านมาและยังไม่ผ่าน |
| รับ | /configprops | อธิบายวิธีการฉีดถั่วด้วยคุณสมบัติการกำหนดค่า (รวมถึงค่าเริ่มต้น) |
| รับ | /ถั่ว | อธิบายถั่วทั้งหมดในบริบทแอปพลิเคชันและความสัมพันธ์ของพวกเขา |
| รับ | /ทิ้ง | รับภาพรวมของกิจกรรมเธรด |
| รับ | /env | รับคุณลักษณะสภาพแวดล้อมทั้งหมด |
| รับ | /env/{ชื่อ} | รับค่าแอตทริบิวต์สภาพแวดล้อมเฉพาะตามชื่อ |
| รับ | /สุขภาพ | รายงานการวัดสุขภาพสำหรับแอปพลิเคชันค่าเหล่านี้จัดทำโดยชั้นเรียนของ HealthIndicator |
| รับ | /ข้อมูล | รับข้อมูลที่กำหนดเองสำหรับแอปพลิเคชันซึ่งจัดทำโดยแอตทริบิวต์ที่นำโดยข้อมูล |
| รับ | /การแมป | อธิบายเส้นทาง URI ทั้งหมดและความสัมพันธ์การทำแผนที่กับคอนโทรลเลอร์ (รวมถึงจุดสิ้นสุดของแอคทูเอเตอร์) |
| รับ | /ตัวชี้วัด | รายงานตัวชี้วัดแอปพลิเคชันต่างๆเช่นการใช้หน่วยความจำและจำนวนคำขอ HTTP |
| รับ | /ตัวชี้วัด/{ชื่อ} | รายงานค่าตัวชี้วัดแอปพลิเคชันของชื่อที่ระบุ |
| โพสต์ | /ปิดเครื่อง | ปิดแอปพลิเคชันและต้องการ endpoints.shutdown.enabled เพื่อตั้งค่าเป็น TRUE |
| รับ | /ติดตาม | ให้ข้อมูลการติดตามคำขอ HTTP พื้นฐาน (การประทับเวลา, ส่วนหัว HTTP ฯลฯ ) |
เริ่มต้นอย่างรวดเร็ว
การกำหนดค่าที่เกี่ยวข้อง
การพึ่งพาโครงการ
<การพึ่งพา> <การพึ่งพา> <roupId> org.springframework.boot </groupid> <ratifactid> Spring-Boot-starter-web </artifactid> </dependency> </predency> </dependencies>
ไฟล์กำหนดค่า
เซิร์ฟเวอร์: พอร์ต: 8080Management: ความปลอดภัย: เปิดใช้งาน: FALSE #SWITCH OFF PORT Authentication Security Port: 8088 #พอร์ต ADMIN ถูกปรับเป็น 8088 Context-Path: /Monitor #Actuator Access Path จุดสิ้นสุด: การปิดระบบ: เปิดใช้งาน: TrueInfo: App: ชื่อ: Spring-
หลังจากการกำหนดค่าเสร็จสิ้นโครงการสามารถเริ่มต้นได้และคุณสามารถตรวจสอบฟังก์ชั่นการตรวจสอบต่างๆได้
คำอธิบายโดยละเอียดของคำสั่ง
autoconfig
ฟังก์ชั่นการกำหนดค่าอัตโนมัติของ Spring Boot นั้นสะดวกมาก แต่บางครั้งก็หมายความว่าเป็นการยากที่จะหาสาเหตุเฉพาะเมื่อมีปัญหา ใช้ AutoconFig เพื่อดูเงื่อนไขที่การกำหนดค่าบางอย่างมีผลในระหว่างการใช้งานแอปพลิเคชันหรือสาเหตุที่การกำหนดค่าอัตโนมัติไม่มีผล
เริ่มต้นโครงการตัวอย่างและเยี่ยมชม: http: // localhost: 8088/monitor/autoconfig ส่วนการส่งคืนข้อมูลมีดังนี้:
{"positiveMatches": {"devtoolsdataSourceautoconfiguration": {"notmatched": [{"เงื่อนไข": "devtoolsdatasourceautoconfiguration.devtoolsdatasourceCondition" ]}, "remotedevtoolsautoconfiguration": {"notmatched": [{"เงื่อนไข": "onpropertycondition", "ข้อความ": "@conditionalonproperty (Spring.devtools.remote.secret) ไม่พบทรัพย์สิน "@conditionalonclass พบคลาสที่จำเป็น 'Javax.servlet.filter', 'org.springframework.http.server.serverhttprequest'; @conditionalonmissingclass ไม่พบคลาสที่ไม่ต้องการ"}configprops
ดูเนื้อหาของคุณสมบัติที่ตั้งไว้ในไฟล์การกำหนดค่ารวมถึงค่าเริ่มต้นของคุณสมบัติการกำหนดค่าบางอย่าง
เริ่มต้นโครงการตัวอย่างและเยี่ยมชม: http: // localhost: 8088/monitor/configprops ส่วนการส่งคืนข้อมูลมีดังนี้:
{... "สิ่งแวดล้อม": {"คำนำหน้า": "endpoints.env", "คุณสมบัติ": {"id": "env", "sensitive": true, "เปิดใช้งาน": true}}, "Spring.http.multipart-org.springframework.boot.autoconfigure.web. "Spring.http.multipart", "Properties": {"MaxRequestSize": "10MB", "filesizEthReshold": "0", "ตำแหน่ง": null, "maxfilesize": "1MB", "enabled": จริง " "คุณสมบัติ": {"id": "info", "sensitive": false, "enabled": true}} ... }ถั่ว
จากตัวอย่างเราจะเห็นว่านามแฝงของถั่วพิมพ์ไม่ว่าจะเป็นซิงเกิลที่อยู่ของชั้นเรียนการพึ่งพาและข้อมูลอื่น ๆ จะปรากฏขึ้น
เริ่มต้นโครงการตัวอย่างและเยี่ยมชม: http: // localhost: 8088/มอนิเตอร์/ถั่ว ส่วนการส่งคืนข้อมูลมีดังนี้:
[{"บริบท": "แอปพลิเคชัน: 8080: การจัดการ", "ผู้ปกครอง": "แอปพลิเคชัน: 8080", "ถั่ว": [{"ถั่ว": "EmbeddedServletContainerFactory", "นามแฝง": [], "ขอบเขต": "org.springframework.boot.context.embedded.tomcat.tomcatembeddservletContainerFactory", "ทรัพยากร": "null", "การพึ่งพา": []}, {"bean": "org.springframework.boot.actuate.autoconfigure.endpointwebmvcchildcontextconfiguration $$ enhancerbyspringcglib $$ a4a10f9d", "ทรัพยากร": "null", "การพึ่งพา": []}}]]ทิ้ง
อินเทอร์เฟซ /Dump จะสร้างภาพรวมของกิจกรรมเธรดปัจจุบัน ฟังก์ชั่นนี้ดีมากซึ่งทำให้เราสะดวกในการตรวจสอบสถานการณ์เธรดเมื่อเราค้นหาปัญหาในชีวิตประจำวัน ส่วนใหญ่จะแสดงข้อมูลเช่นชื่อเธรด ID เธรดสถานะเธรดไม่ว่าจะรอทรัพยากรล็อคหรือไม่
เริ่มต้นโครงการตัวอย่างและเยี่ยมชม: http: // localhost: 8088/monitor/dump ส่วนการส่งคืนข้อมูลมีดังนี้:
[{"threadname": "http-nio-8088-exec-6", "threadid": 49, "blockedtime": -1, "blockedcount": 0, "รอเวลา": -1, "waitedcount": 2, "Lockname": "java.util.concurrent.locks.abstractqueuedsynchronizer$conditionobject@1630a501", "lockownerid": -1, "lockownername": null, "Innative": false, "หยุด": false, "Threadstate": "การรอ", " "unsafe.java", "linenumber": -2, "classname": "sun.misc.unsafe", "nativemethod": true}, {"methodname": "Park", "Filename": "Locksupport.java" "NativeMethod": False}, {"MethodName": "Await", "Filename": "Abstractqueuedsynchronizer.java", "Linenumber": 2039, "classname": "java.util.concurrent.locks.abstractqueued "getTask", "filename": "threadpoolexecutor.java", "linenumber": 1067, "classname": "java.util.concurrent.threadpoolexecutor", "nativeMethod": false}, {methodname ": 1127, "classname": "java.util.concurrent.threadpoolexecutor", "nativemethod": false}, {"methodname": "Run", "Filename": "Threadpoolexecutor.java" "java.util.concurrent.threadpoolexecutor $ worker", "nativemethod": false}, {"methodname": "run", "filename": "tessthread.java", "linenumber": 61, "classname": "NativeMethod": False}, {"MethodName": "Run", "Filename": "Thread.java", "Linenumber": 745, "classname": "java.lang.thread", "NativeMethod": false}, "Lockedmonitors": [] "classname": "java.util.concurrent.locks.abstractqueuedsynchronizer $ conditionobject", "IdentityHashCode": 372286721}} ... ]env
แสดงข้อมูลการกำหนดค่าของตัวแปรสภาพแวดล้อมของระบบรวมถึงตัวแปรสภาพแวดล้อมที่ใช้คุณสมบัติ JVM พารามิเตอร์บรรทัดคำสั่งแพ็คเกจ JAR ที่ใช้โดยโครงการ ฯลฯ ซึ่งแตกต่างจาก configProps, configProps มุ่งเน้นไปที่ข้อมูลการกำหนดค่าในขณะที่ ENV มุ่งเน้นไปที่ข้อมูลสภาพแวดล้อมการทำงาน
เริ่มต้นโครงการตัวอย่างและเยี่ยมชม: http: // localhost: 8088/monitor/env ส่วนการส่งคืนข้อมูลมีดังนี้:
{"profiles": [], "server.ports": {"local.management.port": 8088, "local.server.port": 8080}, "ServletContextinitParams": {}, "systemproperties": {"com.sun.management.jmxremote.authentic "Java (TM) SE Environment", "Spring.output.ansi.enabled": "Always", "sun.boot.library.path": "C: // ไฟล์โปรแกรม // java // jdk1.8.0_101 // jre // bin" Corporation "," java.vendor.url ":" http://java.oracle.com/ "," java.rmi.server.randomids ":" true "," path.Sparator ":"; "java.vm.name": "Java ฮอตสปอต "sun.io", "user.country": "cn", "user.script": "", "sun.java.launcher": "sun_standard", "sun.os.patch.level": "" pid ":" 5268 " "Java Virtual Machine Speเพื่อหลีกเลี่ยงข้อมูลที่ละเอียดอ่อนที่สัมผัสกับ /env แอตทริบิวต์ทั้งหมดชื่อรหัสผ่านความลับคีย์ (หรือย่อหน้าสุดท้ายของชื่อคือสิ่งเหล่านี้) จะถูกเพิ่มลงใน /env ด้วย "*" ตัวอย่างเช่นหากมีฐานข้อมูลชื่อคุณสมบัติ Password ดังนั้นเอฟเฟกต์การแสดงผลใน /env ก็เป็นเช่นนี้:
"database.password": "******"
การใช้งาน /env /{ชื่อ}
นั่นคือส่วนขยาย Env สามารถรับข้อมูลการกำหนดค่าที่ระบุเช่น: http: // localhost: 8088/monitor/env/java.vm.vm.vmerion, return: {"java.vm.version": "25.101-b13"}}
สุขภาพ
คุณจะเห็นว่า HealthEndpoint ให้ผลการตรวจสอบเริ่มต้นรวมถึงการตรวจจับดิสก์และการตรวจจับฐานข้อมูล
เริ่มต้นโครงการตัวอย่างและเยี่ยมชม: http: // localhost: 8088/การตรวจสอบ/ผลตอบแทนสุขภาพส่วนหนึ่งของข้อมูลการตอบสนอง JSON ต่อไปนี้ประกอบด้วยรัฐ, พื้นที่ดิสก์และ db อธิบายถึงสถานะสุขภาพโดยรวมของแอปพลิเคชัน UP ระบุว่าแอปพลิเคชันนั้นมีสุขภาพดี พื้นที่ดิสก์อธิบายพื้นที่ดิสก์ทั้งหมดพื้นที่ดิสก์ที่เหลือและเกณฑ์ขั้นต่ำ แอปพลิเคชันเกณฑ์ properties สามารถกำหนดค่าได้
{"สถานะ": "up", "diskspace": {"สถานะ": "up", "total": 209715195904, "ฟรี": 183253909504, "Threshold": 10485760}ในความเป็นจริงการดูซอร์สโค้ด boot-actuator ฤดูใบไม้ผลิคุณจะพบว่าข้อมูลที่ได้รับจาก HealthEndpoint ไม่ได้ จำกัด อยู่ที่สิ่งนี้ ภายใต้แพ็คเกจ org.springframework.boot.actuate.Health คุณจะพบ ElasticsearchHealthIndicator, RedishealthIndicator, RabbithealthIndicator ฯลฯ
ข้อมูล
ข้อมูลคือข้อมูลการกำหนดค่าที่เรากำหนดค่าในไฟล์การกำหนดค่าเริ่มต้นด้วยข้อมูล ตัวอย่างเช่นการกำหนดค่าของเราในโครงการตัวอย่างคือ:
ข้อมูล: แอพ: ชื่อ: Spring-Boot-Actuator เวอร์ชัน: 1.0.0
เริ่มต้นโครงการตัวอย่างและเยี่ยมชม: http: // localhost: 8088/monitor/info ส่วนการส่งคืนของข้อมูลมีดังนี้:
{"แอป": {"ชื่อ": "Spring-Boot-Actuator", "เวอร์ชัน": "1.0.0"}}การทำแผนที่
อธิบายเส้นทาง URI ทั้งหมดและความสัมพันธ์การทำแผนที่กับคอนโทรลเลอร์
เริ่มต้นโครงการตัวอย่างและเยี่ยมชม: http: // localhost: 8088/มอนิเตอร์/การแมป ส่วนการส่งคืนข้อมูลมีดังนี้:
{"/**/favicon.ico": {"Bean": "faviconhandlermapping"}, "{[/hello]}": {"Bean": "requestmappinghandlermapping", "method": "public java.lang.string com.neo.controller.hellocontroller. "Bean": "requestmappinghandlermapping", "method": "public org.springframework.http.responseentity <java.util.map <java.lang.string, java.lang.object >> org.springframework.boot.autoconfigure.web.basicerrorcontroller.error (javax.servlet.http.httpservletrequest) "}}}ตัวชี้วัด
หนึ่งในเนื้อหาการตรวจสอบที่สำคัญที่สุดคือการตรวจสอบการใช้เนื้อหา JVM สถานการณ์ GC ข้อมูลการโหลดคลาส ฯลฯ
เริ่มต้นโครงการตัวอย่างและเยี่ยมชม: http: // localhost: 8088/monitor/metrics ส่วนการส่งคืนข้อมูลมีดังนี้:
{"mem": 337132, "mem.free": 183380, "โปรเซสเซอร์": 4, "instance.uptime": 254552, "uptime": 259702, "Systemload.Average": -1.0, "Heap.Committed": 292864, " "HEAP": 1827840, "nonheap.Committed": 45248, "nonheap.init": 2496, "nonheap.used": 44269, "nonheap": 0, "Threads.peak": 63, "Threads.daemon": 43, " "classes.unloaded": 6357, "classes.unloaded": 0, "gc.ps_scavenge.count": 8, "gc.ps_scavenge.time": 99, "gc.ps_marksweep.count": 1, "gc.ps_markeweep.time": 43ข้อมูลที่ได้รับจากอินเทอร์เฟซ /ตัวชี้วัดนั้นจัดอยู่ในประเภทดังนี้:
| การจำแนกประเภท | คำนำหน้า | รายงานเนื้อหา |
|---|---|---|
| เครื่องเก็บขยะ | GC.* | จำนวนของคอลเลกชันขยะที่เกิดขึ้นและเวลาที่ใช้ในการรวบรวมขยะนั้นเหมาะสำหรับนักสะสมขยะทำความสะอาดและนักสะสมขยะขนาน (ข้อมูลที่มาจาก java.lang การจัดการ. Garbagecollectormxbean) |
| หน่วยความจำ | mem.* | จำนวนหน่วยความจำที่จัดสรรให้กับแอปพลิเคชันและจำนวนหน่วยความจำฟรี (ข้อมูลที่มาจาก java.lang. รันไทม์) |
| กอง | กอง.* | การใช้หน่วยความจำปัจจุบัน (ข้อมูลที่มาจาก java.lang.management.memoryusage) |
| ตัวโหลดชั้นเรียน | ชั้นเรียน* | จำนวนคลาสที่โหลดและขนถ่ายโดยตัวโหลดคลาส JVM (ข้อมูลที่มาจาก java.lang. การจัดการ classloadingmxbean) |
| ระบบ | โปรเซสเซอร์, อินสแตนซ์, ช่วงเวลา, uptime, SystemLoad.Average | ข้อมูลระบบเช่นจำนวนโปรเซสเซอร์ (ข้อมูลที่มาจาก java.lang.runtime), รันไทม์ (ข้อมูลที่มาจาก java.lang.management.runtimemxbean), โหลดเฉลี่ย |
| สระว่ายน้ำ | ด้าย.* | จำนวนเธรดเธรด daemon และจำนวนเธรดสูงสุดหลังจากการเริ่มต้น JVM (ข้อมูลที่มาจาก java.lang.management.threadmxbean) |
| แหล่งข้อมูล | แหล่งข้อมูล* | จำนวนการเชื่อมต่อแหล่งข้อมูล (ข้อมูลเมตาจากแหล่งข้อมูลเฉพาะในกรณีที่ถั่วแหล่งข้อมูลมีอยู่ในบริบทแอปพลิเคชันฤดูใบไม้ผลิ) |
| เซสชั่น Tomcat | httpsessions.* | หมายเลขเซสชันที่ใช้งานอยู่ของ Tomcat และหมายเลขเซสชันสูงสุด (ข้อมูลมาจากถั่วของ Tomcat ในตัวซึ่งจะใช้ได้เฉพาะเมื่อเรียกใช้แอปพลิเคชันโดยใช้เซิร์ฟเวอร์ Tomcat ในตัว) |
| http | counter.status., Gauge.Response | มาตรการและเคาน์เตอร์สำหรับคำขอ HTTP สำหรับบริการแอปพลิเคชันต่างๆ |
คำอธิบาย:
การปิดเครื่อง
เปิดอินเทอร์เฟซและปิดแอปพลิเคชันสปริงบูตอย่างหรูหรา ในการใช้ฟังก์ชั่นนี้คุณต้องเปิดใช้งานในไฟล์กำหนดค่าก่อน:
จุดสิ้นสุด: การปิด: เปิดใช้งาน: จริง
หลังจากการกำหนดค่าเสร็จสิ้นให้เริ่มโครงการตัวอย่างและเยี่ยมชม: http: // localhost: 8088/monitor/shutdown ส่วนหนึ่งคืนข้อมูลมีดังนี้:
{"ข้อความ": "ปิดตัวลงลาก่อน ... "}ณ จุดนี้คุณจะพบว่าแอปพลิเคชันถูกปิด
ติดตาม
อินเทอร์เฟซ /ติดตามสามารถรายงานข้อมูลโดยละเอียดของคำขอเว็บทั้งหมดรวมถึงวิธีการขอเส้นทางการประทับเวลาและข้อมูลการร้องขอและการตอบกลับและบันทึกข้อมูลรายละเอียดของคำขอแต่ละครั้ง
เริ่มต้นโครงการตัวอย่างเยี่ยมชมครั้งแรก: http: // localhost: 8080/สวัสดีจากนั้นดำเนินการในเบราว์เซอร์: http: // localhost: 8088/monitor/trace ดูข้อมูลการส่งคืน:
[{"timestamp": 1516780334777, "ข้อมูล": {"วิธี": "รับ", "path": "/สวัสดี", "ส่วนหัว": {"คำขอ": {"โฮสต์": "LocalHost: 8080", "การเชื่อมต่อ": " NT 10.0; "ข้อความ/html, แอปพลิเคชัน/xhtml+xml, แอปพลิเคชัน/xml; q = 0.9, รูปภาพ/webp, image/apng,*/*; q = 0.8", "ยอมรับการเข้ารหัส": "gzip, deflate, br", "UM_DISTINCTID = 16053BA344F1CD-0DC220C44CC94-B7A103E-13C680-16053BA3450751; HM_LVT_0FB30C642C5F6453F17D881F529A1141 = 1513076406,1514961720,1515649377; HM_LVT_6D8E8BB59814010152D98507A18AD229 = 1515247964,1515296008,1515672972,1516086283 "} "ข้อความ/html; charset = utf-8", "ความยาวเนื้อหา": "11", "วันที่": "พุธ, 24 ม.ค. 2018 07:52:14 gmt", "สถานะ": "200"}}, "timetaken": "4"}}]ข้อมูลข้างต้นแสดงรายละเอียดของคำขอ /สวัสดี
การกำหนดค่าอื่น ๆ
ข้อ จำกัด ในการเข้าถึงข้อมูลที่ละเอียดอ่อน
ตามตารางข้างต้นหากการรับรองความถูกต้องเป็นเท็จนั่นหมายความว่ามันไม่รู้สึกตัวและสามารถเข้าถึงได้ตามต้องการ มิฉะนั้นจะได้รับการปกป้องและไม่สามารถเข้าถึงได้ตามความประสงค์
endpoints.mappings.sensitive = false
สิ่งนี้ต้องการการตั้งค่าแต่ละอันซึ่งเป็นปัญหามากขึ้น วิธีการที่ละเอียดอ่อนต้องการให้ผู้ใช้มีบทบาทของแอคทูเอเตอร์โดยค่าเริ่มต้นดังนั้นคุณยังสามารถตั้งค่าข้อ จำกัด ด้านความปลอดภัยใน OFF:
management.security.enabled = false
หรือร่วมมือกับความปลอดภัยในฤดูใบไม้ผลิเพื่อควบคุมอย่างละเอียด
เปิดใช้งานและปิดการใช้งานส่วนต่อประสาน
แม้ว่าอินเทอร์เฟซของแอคทูเอเตอร์นั้นมีประโยชน์ แต่คุณไม่จำเป็นต้องมีทั้งหมด โดยค่าเริ่มต้นอินเทอร์เฟซทั้งหมด (ยกเว้น /ปิด) จะเปิดใช้งาน ตัวอย่างเช่นในการปิดใช้งานอินเทอร์เฟซ /ตัวชี้วัดคุณสามารถตั้งค่าได้ดังนี้:
endpoints.metrics.enabled = false
หากคุณต้องการเปิดอินเทอร์เฟซหนึ่งหรือสองตัวเท่านั้นให้ปิดการใช้งานอินเทอร์เฟซทั้งหมดก่อนจากนั้นเปิดใช้งานบางส่วนที่คุณต้องการซึ่งสะดวกกว่า
endpoints.enabled = falseendpoints.metrics.enabled = true
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น