Spring-Actuator เป็นโมดูลรวมของ Spring-Boot สำหรับการตรวจสอบแอปพลิเคชัน มันให้การสนับสนุนสำหรับการตรวจสอบเซิร์ฟเวอร์ของเราทำให้เราสามารถรับการกำหนดค่าแอปพลิเคชันตัวแปรสภาพแวดล้อมรายงานการกำหนดค่าอัตโนมัติ ฯลฯ ที่โหลดในแอปพลิเคชัน
ใช้สปริง-แอคทูเอเตอร์
1. แนะนำการพึ่งพา Maven
<!-โมดูลการตรวจสอบและการจัดการ-> <การพึ่งพา> <roupId> org.springframework.boot </groupId> <ratifactid> Spring-Boot-Starter-actuator </artifactid>
หลังจากแนะนำการพึ่งพาให้เริ่มโครงการ
URL ที่เราต้องการจะถูกพิมพ์เมื่อเริ่มโครงการ
2018-03-26 23: 19: 00.169 ข้อมูล 6148 --- [Main] Osbaemvc.endpointhandlermapping: Mapped "{[/env/ {name:.*} เหมือนกัน java.lang.Object org.springframework.boot.actuate.endpoint.mvc.environmentmvencedpoint.value (java.lang.string)
2018-03-26 23: 19: 00.169 ข้อมูล 6148 --- [Main] Osbaemvc.endpointhandlermapping: Mapped "{[/env || /env.json.methods= outhing-g1+ java.lang.Object org.springframework.boot.actuate.endpoint.mvc.endpointmvcadapter.invoke ()
2018-03-26 23: 19: 00.170 ข้อมูล 6148 --- [Main] Osbaemvc.endpointhandlermapping: Mapped "{[/trace || /trace.json เหมือนกัน java.lang.Object org.springframework.boot.actuate.endpoint.mvc.endpointmvcadapter.invoke ()
2018-03-26 23: 19: 00.170 ข้อมูล 6148 --- [Main] Osbaemvc.endpointhandlermapping: Mapped "{[/dump || /dump.json เหมือนกัน java.lang.Object org.springframework.boot.actuate.endpoint.mvc.endpointmvcadapter.invoke ()
2018-03-26 23: 19: 00.171 ข้อมูล 6148 --- [Main] Osbaemvc.endpointhandlermapping: Mapped "{[/Auditevents ||/Auditevents.json เหมือนกัน org.springframework.http.responseentity <?> org.springframework.boot.actuate.endpoint.mvc.auditeventsmvenchedpoint.findbyprincipalandafterandtype (java.lang.string, java.util.date, Java.lang.lang.lang.lang
2018-03-26 23: 19: 00.171 ข้อมูล 6148 --- [Main] Osbaemvc.endpointhandlermapping: Mapped "{[/mappings ||/mappings.json เหมือนกัน java.lang.Object org.springframework.boot.actuate.endpoint.mvc.endpointmvcadapter.invoke ()
2018-03-26 23: 19: 00.172 ข้อมูล 6148 --- [Main] Osbaemvc.endpointhandlermapping: แมป "{[/autoconfig || /autoconfig.json.methods= ไปยังสาธารณะ java.lang.Object org.springframework.boot.actuate.endpoint.mvc.endpointmvcadapter.invoke ()
2018-03-26 23: 19: 00.173 ข้อมูล 6148 --- [Main] Osbaemvc.endpointhandlermapping: Mapped "{[/metrics/ {name:.*} เหมือนกัน java.lang.Object org.springframework.boot.actuate.endpoint.mvc.metricsmvencedpoint.value (java.lang.string)
2018-03-26 23: 19: 00.173 ข้อมูล 6148 --- [Main] Osbaemvc.endpointhandlermapping: Mapped "{[/metrics ||/metrics.json เหมือนกัน java.lang.Object org.springframework.boot.actuate.endpoint.mvc.endpointmvcadapter.invoke ()
2018-03-26 23: 19: 00.173 ข้อมูล 6148 --- [Main] Osbaemvc.endpointhandlermapping: แมป "{[ /pause || /pause.json เหมือนกัน
2018-03-26 23: 19: 00.174 ข้อมูล 6148 --- [Main] Osbaemvc.endpointhandlermapping: แมป "{[/บริการ-ข้อมูล/อินสแตนซ์-สถานะ], method = [post]}" ลงบน org.springframework.http.response org.springframework.cloud.client.serviceregistry.endpoint.serviceregistryendpoint.setstatus (java.lang.string)
2018-03-26 23: 19: 00.174 ข้อมูล 6148 --- [Main] Osbaemvc.endpointhandlermapping: แมป "{[/บริการ-ข้อมูล/อินสแตนซ์-สถานะ], method = [get]}" ไปยัง org.springframework.http. org.springframework.cloud.client.serviceregistry.endpoint.serviceregistryendpoint.getStatus ()
2018-03-26 23: 19: 00.175 ข้อมูล 6148 --- [Main] Osbaemvc.endpointhandlermapping: Mapped "{[/loggers/ {name:.* เช่นกัน java.lang.Object org.springframework.boot.actuate.endpoint.mvc.loggersmvenchedpoint.get (java.lang.string)
2018-03-26 23: 19: 00.175 ข้อมูล 6148 --- [Main] Osbaemvc.endpointhandlermapping: Mapped "{[/loggers/ {name:.* เช่นกัน แอปพลิเคชัน/JSON], ผลิต = [แอปพลิเคชัน/vnd.spring-boot.actuator.v1+json || แอปพลิเคชัน/json]} "ลงบน java.lang.lang.Object org.springframework.boot.actuate.mvc.loggersmvpend.set java.lang.string>)
2018-03-26 23: 19: 00.175 ข้อมูล 6148 --- [Main] Osbaemvc.endpointhandlermapping: Mapped "{[/loggers || /loggers.json เหมือนกัน java.lang.Object org.springframework.boot.actuate.endpoint.mvc.endpointmvcadapter.invoke ()
2018-03-26 23: 19: 00.176 ข้อมูล 6148 --- [Main] Osbaemvc.endpointhandlermapping: แมป "{[/heapdump ||/heapdump.json เหมือนกัน org.springframework.boot.actuate.endpoint.mvc.heapdumpmvencedpoint.invoke (บูลีน, javax.servlet.http.httpservletrequest, javax.servlet.http.htttservletresponse
2018-03-26 23: 19: 00.176 ข้อมูล 6148 --- [Main] Osbaemvc.endpointhandlermapping: แมป "{[ /Refresh || /refresh.json เหมือนกัน org.springframework.cloud.endpoint.genericPostableMvenceDpoint.invoke ()
2018-03-26 23: 19: 00.177 Info 6148 --- [Main] Osbaemvc.endpointhandlermapping: แมป "{[ /resume || /resume.json.methods=dypost]}" ลงบน java.lang.lang.lang.lang org.springframework.cloud.endpoint.genericPostableMvenceDpoint.invoke ()
2018-03-26 23: 19: 00.178 ข้อมูล 6148 --- [Main] Osbaemvc.endpointhandlermapping: Mapped "{[/configprops ||/configprops.json เหมือนกัน java.lang.Object org.springframework.boot.actuate.endpoint.mvc.endpointmvcadapter.invoke ()
2018-03-26 23: 19: 00.178 ข้อมูล 6148 --- [Main] Osbaemvc.endpointhandlermapping: Mapped "{[/archaius ||/archaius.json เหมือนกัน java.lang.Object org.springframework.boot.actuate.endpoint.mvc.endpointmvcadapter.invoke ()
2018-03-26 23: 19: 00.179 ข้อมูล 6148 --- [Main] Osbaemvc.endpointhandlermapping: แมป "{[/สุขภาพ || /health.json เหมือนกัน java.lang.Object org.springframework.boot.actuate.endpoint.mvc.healthmvenchedpoint.invoke (javax.servlet.http.httpservletrequest, java.security.principal)
2018-03-26 23: 19: 00.179 ข้อมูล 6148 --- [Main] Osbaemvc.endpointhandlermapp org.springframework.cloud.context.environment.environmentmanagermvenceDpoint.value (java.util.map <java.lang.string, java.lang.string>)
2018-03-26 23: 19: 00.179 ข้อมูล 6148 --- [Main] Osbaemvc.endpointhandlermapping: แมป "{[/env/รีเซ็ต], methods = [post]}" ไปยัง Java.util.map <java.lang.string, Java.lang.lang.lang.lang.lang.lang.lang.lang.lang.lang org.springframework.cloud.context.environment.environmentmanagermvenceDpoint.reset ()
2018-03-26 23: 19: 00.179 ข้อมูล 6148 --- [Main] Osbaemvc.endpointhandlermapping: แมป "{[/คุณสมบัติ || /features.json เหมือนกัน java.lang.Object org.springframework.boot.actuate.endpoint.mvc.endpointmvcadapter.invoke ()
2018-03-26 23: 19: 00.180 ข้อมูล 6148 --- [Main] Osbaemvc.endpointhandlermapping: แมป "{[ /รีสตาร์ท || /restart.json org.springframework.cloud.context.restart.restartmvenchedpoint.invoke ()
2018-03-26 23: 19: 00.181 ข้อมูล 6148 --- [Main] Osbaemvc.endpointhandlermapping: แมป "{[/เอนทิตี้ || /entity.json เหมือนกัน java.lang.Object org.springframework.boot.actuate.endpoint.mvc.endpointmvcadapter.invoke ()
2018-03-26 23: 19: 00.181 ข้อมูล 6148 --- [Main] Osbaemvc.endpointhandlermapping: แมป "{[/ข้อมูล || /info.json.methods= java.lang.Object org.springframework.boot.actuate.endpoint.mvc.endpointmvcadapter.invoke ()
2018-03-26 23: 19: 00.193 ข้อมูล 6148 --- [Main] SWSMMAREQUESTMAPPIONDHANDLerMapping: แมป "{[/ข้อผิดพลาด]}" เข้าสู่ java.util.map สาธารณะ <java.lang.string, java.lang.Object> org.springframework.boot.actuate.endpoint.mvc.managementerrorendpoint.invoke ()
2. การกำหนดค่าไฟล์การกำหนดค่า YML
(1) กำหนดค่าหมายเลขพอร์ตและไม่เปิดใช้งานโมดูลการทำงานที่แน่นอน
#develop หมายเลขพอร์ตหากไม่เป็นเช่นเดียวกับเซิร์ฟเวอร์เซิร์ฟเวอร์การจัดการพอร์ต: พอร์ต: 4321 #ลบฟังก์ชั่นที่ไม่จำเป็นต้องดูเนื้อหาหากไม่จำเป็นต้องมีสุขภาพ
การกำหนดค่าข้างต้นระบุว่าพอร์ตที่กำหนดค่าคือพอร์ต HTTP 4321 และฟังก์ชัน /สุขภาพถูกปิดใช้งาน
(2) แก้ไขเส้นทางการแมป
#Modify เส้นทางของ ID การแมปของจุดสิ้นสุดการกำหนดค่า: ถั่ว: ID: เอนทิตี
การกำหนดค่าข้างต้นหมายถึงการเปลี่ยนเส้นทางเพื่อสร้างถั่วโดย /ถั่วเป็น /เอนทิตี
(3) กำหนดค่าการกำหนดค่าความปลอดภัยของแอคชูเอเตอร์
จำเป็นต้องมีความปลอดภัยในฤดูใบไม้ผลิ
แนะนำการพึ่งพา
<!-สำหรับการตรวจสอบบัญชีการเข้าถึงศูนย์การลงทะเบียนศูนย์-> <การพึ่งพา> <GroupId> org.springframework.boot </groupId> <ratifactid> Spring-Boot-Starter-Security </artifactid> </การพึ่งพา>
กำหนดค่ารหัสผ่านบัญชี:
ความปลอดภัย: พื้นฐาน: #REPRESENTES เพื่อเปิดใช้งานการตรวจสอบรหัสผ่านบัญชีที่เปิดใช้งาน: TRUE #CONFIGURE บัญชีและรหัสผ่านผู้ใช้: ชื่อ: รหัสผ่านรูท: 123
หลังจากกำหนดค่ารหัสผ่านบัญชีคุณสามารถเข้าถึงได้ผ่าน http://127.0.0.1:4321 และป้อนบัญชีและรหัสผ่านที่กำหนดค่า มันถูกต้องเมื่อเบราว์เซอร์ไม่ปิดหนึ่งครั้ง
(4) แสดงข้อความแสดงในรูปแบบ JSON
จอแสดงผลรูปแบบ JSON มีความสามารถในการอ่านและความสวยงามได้ดีขึ้น
#print แพ็คเก็ตที่แสดงโดย acyuator ในรูปแบบ JSON Spring: Jackson: Serialization: Indent-output: จริง
เพิ่มการกำหนดค่าด้านบนลงในไฟล์ application.yml
3. การกำหนดค่าคลาสเริ่มต้น
@springbootapplication@enableeurekaserver // คำอธิบายประกอบบรรทัดนี้แสดงถึงองค์ประกอบที่ลงทะเบียนสำหรับบริการ คำอธิบายประกอบนี้ใช้ได้เฉพาะกับ Eurekapublic Class Eurekaserverapplication {โมฆะคงที่สาธารณะหลัก (สตริง [] args) {springapplication.run (eeurekaserverapplication.class, args); -เรียกใช้โดยไม่ต้องกำหนดค่า
4. โมดูลการกำหนดค่าที่สำคัญบางอย่าง
| วิธีการขอ http | เส้นทาง | อธิบาย |
| รับ | /autoconfig | ใช้เพื่อรับข้อมูลการกำหนดค่าอัตโนมัติสำหรับแอปพลิเคชัน |
| รับ | /ถั่ว | ใช้เพื่อให้ได้ถั่วทั้งหมดที่สร้างขึ้นโดยบริบทแอปพลิเคชัน |
| รับ | /configprops | รับรายงานข้อมูลแอตทริบิวต์ที่กำหนดค่าในแอปพลิเคชัน |
| รับ | /env | ใช้เพื่อรับรายงานแอตทริบิวต์สภาพแวดล้อมที่มีอยู่ทั้งหมดสำหรับแอปพลิเคชัน |
| รับ | /การแมป | รายงานความสัมพันธ์การแมปคอนโทรลเลอร์เพื่อรับ SpringMVC ทั้งหมด |
| รับ | /ข้อมูล | ใช้เพื่อรับข้อมูลการปรับแต่งแอปพลิเคชัน |
(1) /autoconfig
มีสองโหนดหลักภายใต้การกำหนดค่านี้
PositiveMatches: ส่งคืนข้อมูลการกำหนดค่าอัตโนมัติสำหรับการจับคู่เงื่อนไขที่ประสบความสำเร็จ
negativeMatches: ส่งคืนข้อมูลการกำหนดค่าที่การจับคู่เงื่อนไขไม่สำเร็จ
(2) /ถั่ว
ไฟล์กำหนดค่านี้ใช้เพื่อแสดงวัตถุถั่วที่โหลดโดยบริบทแอปพลิเคชัน ApplicationContext รวมถึงโหนดต่อไปนี้:
"บริบท": "Bootstrap", "Parent": Null, "Beans": [{"Bean": "PropertySourceBootstrapConfiguration", "นามแฝง": [], "ขอบเขต": "Singleton", "Type": "org.springframework.cloud.bootstrap.config.propertysourcebootstrapconfiguration $$ enhancerbyspringcglib $$ 82fdf928", "ทรัพยากร": "null", "การพึ่งพา": []}]ถั่วเป็นชุดของคลาสที่โหลดในบริบทแอปพลิเคชันซึ่งรวมถึงแท็กต่อไปนี้:
1) ถั่ว: ชื่อถั่วที่สร้างโดยบริบทแอปพลิเคชัน
2) ขอบเขต: ขอบเขตของถั่วที่สร้างขึ้น
Singleton: Singleton เป็นขอบเขตเริ่มต้นของฤดูใบไม้ผลิ
ต้นแบบ: แต่ละคำขอจะสร้างอินสแตนซ์ใหม่ซึ่งเทียบเท่ากับการดำเนินการใหม่
คำขอ: คำขอ HTTP แต่ละครั้งจะสร้างอินสแตนซ์ใหม่และถั่วปัจจุบันนั้นใช้ได้เฉพาะใน httprequest เดียวกัน
เซสชั่น: ใช้ได้ใน httpsession เดียวกัน
3), ประเภท: ประเภทของถั่วที่ใช้สำหรับการจัดการบริบท
ชื่อคลาสที่ผ่านการรับรองอย่างสมบูรณ์สำหรับชั้นเรียน
4) ทรัพยากร: พา ธ เฉพาะไปยังไฟล์คลาส
5) การพึ่งพา: ชื่อของถั่วพึ่งพานั่นคือชื่อของถั่วที่เกี่ยวข้องในถั่ว
(3) /configprops: รับรายงานข้อมูลแอตทริบิวต์ที่กำหนดค่าในแอปพลิเคชัน
มีลูกสองโหนดด้านล่าง
คำนำหน้า: กำหนดค่าคำนำหน้าสำหรับแอตทริบิวต์
คุณสมบัติ: แสดงชื่อและค่าของแต่ละคุณสมบัติ
(4) /env ใช้เพื่อรับรายงานแอตทริบิวต์ตัวแปรสภาพแวดล้อมของบริบทแอปพลิเคชันเช่นตัวแปรสภาพแวดล้อมแอตทริบิวต์ JVM ข้อมูลการกำหนดค่าแอปพลิเคชันพารามิเตอร์ในบรรทัดคำสั่ง ฯลฯ
1) เซิร์ฟเวอร์พอร์ตแสดงหมายเลขพอร์ตที่กำหนดโดยแอปพลิเคชัน
2) SystemProperties ได้รับ JVM และข้อมูลอื่น ๆ สำหรับแอปพลิเคชัน
(5) /การแมปรายงานการแมปคอนโทรลเลอร์ SpringMVC
{"{[/ข้อผิดพลาด]}": {"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) "}}}1) /ข้อผิดพลาดหมายถึงเส้นทางการแมปของ SpringMVC
2) /ถั่วแสดงถึงคลาสที่ใช้สำหรับการแมปโปรเซสเซอร์ Mapper
3) /วิธีการแสดงถึงวิธีการในคลาสการแมป
(6) ข้อมูลใช้เพื่อรับข้อมูลการกำหนดค่าที่กำหนดเองที่กำหนดค่าใน Application.yml
5. การกำหนดค่าตัวชี้วัด
เนื้อหารายงานที่จัดทำโดยตัวชี้วัดมีการเปลี่ยนแปลงแบบไดนามิกและให้ข้อมูลสแน็ปช็อตบางอย่าง เช่นการใช้หน่วยความจำการนับการร้องขอ HTTP สถิติตัวบ่งชี้ทรัพยากรภายนอก ฯลฯ
(1) /ตัวชี้วัดส่งคืนตัวชี้วัดที่สำคัญต่าง ๆ ที่ใช้ในปัจจุบัน มีเนื้อหาต่อไปนี้
1) ข้อมูลระบบ: โปรเซสเซอร์ --- จำนวนโปรเซสเซอร์
Instance.uptime ------ เวลาทำงาน
SystemLoad.Average -โหลดระบบเฉลี่ย ฯลฯ
2), ผู้ชาย.*: ข้อมูลสรุปหน่วยความจำระบบ
3), heap.*: การใช้หน่วยความจำกอง
4), nonheap.*: การใช้หน่วยความจำที่ไม่ใช่กอง
5) เธรด*: การใช้เธรด
6) คลาส.*: การโหลดคลาสและสถานการณ์การขนถ่าย
7), GC.*: รายละเอียดของนักสะสมขยะ
8), httpsession.*: สถานะการวาดภาพของภาชนะบรรจุเช่น tomcat
9), Magage.*: ส่งคืนค่าการแมปเช่นเวลาหน่วง ฯลฯ
10), conter.*: ใช้เป็นตัวนับจำนวนการเพิ่มและลดจำนวนเงินจะถูกบันทึก
(2) /สุขภาพ: ตัวชี้วัดสุขภาพต่างๆ
ข้อมูลบางอย่างเกี่ยวกับหน่วยความจำแสดงไว้ด้านล่าง
"Diskspace": {"สถานะ": "Up", "Total": 2147580960, "ฟรี": 8916258816, "Threshold": 10485760}(3) /Dump: ใช้เพื่อเปิดเผยข้อมูลเธรดในโปรแกรม
threadname - ชื่อเธรดที่เปิดเผย
ThreadId -ID เธรดที่เปิดเผย ฯลฯ
(4) /Trace: ใช้เพื่อติดตามข้อมูล HTTP พื้นฐาน
6. การกำหนดค่าคลาสการควบคุมการดำเนินการ
(1) /shutdowm ใช้เพื่อปิดการทำงานระยะไกลของแอปพลิเคชัน-สำหรับคำขอโพสต์
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น