La característica principal de Spring Boot es Autoconfig (configuración automática), y para los usuarios de EE. UU., Son solo varios entrantes.
Spring Boot-Actuator también proporciona un arranque, que está configurado automáticamente para nosotros. En términos de uso, solo necesitamos agregar un iniciador a nuestras dependencias y luego comenzar el proyecto.
<Spendency> <MoupRoMID> org.springframework.boot </groupid> <artifactId> spring-boot-starter-actuator </artifactid> </dependency>
Punto final común
El activador de arranque de primavera proporciona muchos puntos finales útiles y proporciona un monitoreo de aplicaciones de arranque de Spring. Hablemos de mis puntos finales comúnmente utilizados:
/Aplicación de salud Estado de salud
/ConfigProps obtiene la información de configuración de la aplicación, porque Spring Boot puede ser un paquete JAR separado cuando se publica, y el archivo de configuración puede ser incluido. Cuando necesitamos verificar el archivo de configuración, podemos usar configpropsendpoint para ver si algunas configuraciones son correctas.
/Trace la última información de solicitud de HTTP
Healthendpoint
Cuando visitamos http: // localhost: 8088/salud, podemos ver que HealthEndpoint nos proporciona resultados de monitoreo predeterminados, incluida la detección de disco y la detección de la base de datos.
{ "status": "UP", "diskSpace": { "status": "UP", "total": 398458875904, "free": 315106918400, "threshold": 10485760 }, "db": { "status": "UP", "database": "MySQL", "hello": 1 }} De hecho, al observar el código fuente del activador de arranque de primavera, encontrará que la información proporcionada por HealthEndpoint no se limita a esto. Bajo el paquete de org.springframework.boot.actuate.health, encontrará ElasticSearchHealthindicator, Redishealthindicator, Rabbithealthindicator, etc.
Es decir, HealthEndpoint también proporciona información de salud para componentes como ES, Redis.
Indicador personalizado extender HealthEndpoint
Mirando el código fuente, el disco y la información de salud de la base de datos son implementados por DiskspaceHealthindicator y DataSourceHealthindicator. Cuando monitoreamos algunos de nuestros componentes personalizados, también podemos implementar un indicador:
@ComponentPublic Class Implementa el usuario de Healthindicator {/** * Acceso de monitoreo del usuario: http: // localhost: 8088/salud * * @return personalizado monitor de salud */@override public salud salud () {return new Health.builder (). WithetAl "Up"). Up (). Build (); }}En este momento, visitamos nuevamente: http: // localhost: 8088/Health El resultado devuelto en este momento es el siguiente, incluida nuestra información personalizada de salud del usuario.
{ "status": "UP", "user": { "status": "UP", "usercount": 10, "userstatus": "up" }, "diskSpace": { "status": "UP", "total": 398458875904, "free": 315097989120, "threshold": 10485760 }, "db": { "Estado": "Up", "Base de datos": "MySql", "Hello": 1}}Punto final personalizado
De hecho, además de extender HealthEndpoint para agregar algunas verificaciones de salud, también podemos personalizar algunos puntos finales para proporcionar una visualización de información durante el tiempo de ejecución del programa:
@ConfigurationPublic Class EndPointAutoconfig {@Bean public endPoint <map <string, object >> customEnDpoint () {return new SystemEndPoint (); }}@ConfigurationProperties (prefix = "Endpoints.customSystem") public class SystemEndpoint extiende AbstractEndpoint <map <string, object >> {public SystemEndpoint () {super ("CustomSystem"); } @Override public Map <String, Object> Invoke () {Map <String, Object> Result = new HashMap <> (); Map <string, string> map = system.getenv (); resultado.put ("UserName", map.get ("UserName")); resultado.put ("ComputerName", map.get ("ComputerName")); resultado.put ("userdomain", map.get ("userdomain")); resultado de retorno; }}Visite http: // localhost: 8088/customSystem para ver nuestro punto final personalizado, y el resultado es el siguiente:
{"Nombre de usuario": "xxx", "userdomain": "Desktop-6ean1h4", "ComputerName": "Desktop-6ean1h4"}Después de agregar actuador a nuestra aplicación de arranque de primavera, la interfaz de salud esperada devuelve el resultado debería ser algo así como lo siguiente:
{Estado: "Up", Diskspace: {Status: "Up", Total: 250182889472, gratis: 31169568768, umbral: 10485760}, db: {status: "up", base de datos: "h2", hola: 1}}Si acaba de devolver el estado
{Estado: "Up"}Debe agregar una nueva configuración para la aplicación. Tomando el archivo de configuración YML como ejemplo, debe agregar la siguiente configuración:
Gestión: Seguridad: habilitada: falseEndpoints: salud: sensible: falso
gestión.endpoint.health.show-details = siempre
Resumir
Lo anterior es la verificación y monitoreo de salud del proyecto de implementación de SpringBoot introducido por el editor. Espero que sea útil para todos. Si tiene alguna pregunta, déjame un mensaje y el editor responderá a todos a tiempo. ¡Muchas gracias por su apoyo al sitio web de Wulin.com!