Spring Boot Actuator ialah sub-projek Spring Boot yang menyediakan ciri sedia pengeluaran untuk membantu anda memantau dan mengurus aplikasi anda. Ia menawarkan satu set titik akhir terbina dalam yang membolehkan anda memperoleh cerapan tentang kesihatan, metrik dan persekitaran aplikasi anda, serta mengawalnya secara dinamik.
Spring Boot Actuator menyediakan beberapa titik akhir luar biasa yang boleh digunakan untuk memantau dan berinteraksi dengan aplikasi anda. Titik akhir ini boleh diakses melalui HTTP, JMX atau menggunakan Spring Boot Admin.
Untuk menggunakan Actuator dalam aplikasi Spring Boot anda, anda perlu menambah kebergantungan Actuator pada fail pom.xml anda:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>
Jika anda menggunakan Gradle, tambahkan yang berikut pada fail build.gradle anda:
implementation 'org.springframework.boot:spring-boot-starter-actuator'
Secara lalai, hanya beberapa titik akhir didayakan. Anda boleh mendayakan titik akhir tambahan dalam fail application.yml anda:
management: endpoints: web: exposure: include: "*" # This exposes all available endpoints endpoint: health: show-details: always # Show detailed health information
Setelah Penggerak disediakan, anda boleh mengakses pelbagai titik akhir yang disediakan olehnya. Berikut ialah beberapa titik akhir yang biasa digunakan:
Titik akhir /actuator/kesihatan memberikan maklumat tentang kesihatan aplikasi anda:
GET http://localhost:8080/actuator/health
Contoh respons:
{ "status": "UP", "components": { "db": { "status": "UP", "details": { "database": "H2", "result": 1 } }, "diskSpace": { "status": "UP", "details": { "total": 499963174912, "free": 16989374464, "threshold": 10485760, "exists": true } } } }
Titik akhir /actuator/metrics menyediakan pelbagai metrik yang berkaitan dengan aplikasi anda:
GET http://localhost:8080/actuator/metrics
Contoh respons:
{ "names": [ "jvm.memory.used", "jvm.gc.pause", "system.cpu.usage", "system.memory.usage", "http.server.requests" ] }
Untuk mendapatkan butiran metrik tertentu:
GET http://localhost:8080/actuator/metrics/jvm.memory.used
Contoh respons:
{ "name": "jvm.memory.used", "description": "The amount of used memory", "baseUnit": "bytes", "measurements": [ { "statistic": "VALUE", "value": 5.1234567E7 } ], "availableTags": [ { "tag": "area", "values": [ "heap", "nonheap" ] }, { "tag": "id", "values": [ "PS Eden Space", "PS Survivor Space", "PS Old Gen", "Metaspace", "Compressed Class Space" ] } ] }
Titik akhir /actuator/env memberikan maklumat tentang sifat persekitaran:
GET http://localhost:8080/actuator/env
Contoh respons:
{ "activeProfiles": [], "propertySources": [ { "name": "systemProperties", "properties": { "java.runtime.name": { "value": "Java(TM) SE Runtime Environment" }, "java.vm.version": { "value": "25.181-b13" } } }, { "name": "systemEnvironment", "properties": { "PATH": { "value": "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" }, "HOME": { "value": "/root" } } } ] }
Titik akhir / actuator/info memberikan maklumat tentang aplikasi:
GET http://localhost:8080/actuator/info
Untuk menyesuaikan maklumat, tambahkan sifat dalam aplikasi anda.yml:
info: app: name: My Spring Boot Application description: This is a sample Spring Boot application version: 1.0.0
Secara lalai, semua titik akhir Penggerak boleh diakses tanpa pengesahan. Untuk menjamin titik akhir ini, anda boleh menggunakan Spring Security. Tambahkan kebergantungan Spring Security pada pom.xml anda:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency>
Kemas kini application.yml anda untuk menyekat akses:
management: endpoints: web: exposure: include: "*" # Expose all endpoints endpoint: health: show-details: always # Show detailed health information spring: security: user: name: admin # Default username password: admin # Default password # Restrict actuator endpoints to authenticated users management: endpoints: web: exposure: include: "*" endpoint: health: show-details: always security: enabled: true roles: ACTUATOR
Buat kelas konfigurasi keselamatan untuk mengkonfigurasi keselamatan HTTP:
import org.springframework.context.annotation.Configuration; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; @Configuration public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http .authorizeRequests() .antMatchers("/actuator/**").hasRole("ACTUATOR") .anyRequest().authenticated() .and() .httpBasic(); } }
Dengan konfigurasi ini, hanya pengguna yang disahkan dengan peranan ACTUATOR boleh mengakses titik akhir Actuator.
Anda boleh membuat titik akhir Penggerak tersuai untuk mendedahkan maklumat tambahan atau fungsi khusus untuk aplikasi anda. Berikut ialah contoh membuat titik akhir tersuai:
import org.springframework.boot.actuate.endpoint.annotation.Endpoint; import org.springframework.boot.actuate.endpoint.annotation.ReadOperation; import org.springframework.stereotype.Component; @Endpoint(id = "custom") @Component public class CustomEndpoint { @ReadOperation public String customEndpoint() { return "Custom Actuator Endpoint"; } }
Akses titik akhir tersuai anda di:
GET http://localhost:8080/actuator/custom
Spring Boot Actuator menyediakan set alat yang mantap untuk membantu anda memantau dan mengurus aplikasi anda. Dengan memanfaatkan titik akhir terbina dalamnya dan keupayaan untuk mencipta titik akhir tersuai, anda boleh memperoleh cerapan berharga tentang prestasi dan kesihatan aplikasi anda. Lindungi titik akhir ini dengan Spring Security untuk memastikan bahawa hanya pengguna yang dibenarkan mempunyai akses dan anda akan mempunyai aplikasi sedia pengeluaran yang mudah diurus dan dipantau.
Actuator ialah bahagian penting dalam mana-mana aplikasi Spring Boot, membolehkan anda mengekalkan jari anda pada nadi persekitaran masa jalan aplikasi anda dan bertindak balas dengan cepat kepada isu apabila ia timbul. Mula menggunakan Spring Boot Actuator hari ini untuk meningkatkan kebolehmerhatian dan keupayaan operasi aplikasi anda.
Atas ialah kandungan terperinci Panduan Pemula untuk Menggunakan Spring Boot Actuator. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!