Comprobación del estado del ejecutor de Spring Boot 2.0
En la arquitectura Service Mesh actualmente popular, el marco de arranque Spring es particularmente adecuado como marco de desarrollo de aplicaciones debido a sus diversas ventajas.
Hablando de la arquitectura de microservicios de Service Mesh, su característica principal es separar el desarrollo de servicios y la gobernanza de servicios, y luego fusionarlos con la plataforma Paas en contenedores, que depende de la cooperación tácita entre ellos. Es decir, cada servicio expone interfaces estándar a través de las cuales pueden entrelazarse entre sí.
Uno de los puntos clave del diseño de la arquitectura Service Mesh es el "monitoreo omnipotente", por lo que, en términos generales, el marco de desarrollo de servicios que elegimos debe tener un soporte de monitoreo simple y potente. Habilitar la supervisión en una aplicación Spring Boot es muy sencillo y el alcance de la supervisión es muy amplio y muy flexible de personalizar.
En las aplicaciones Spring Boot, confiamos en el componente Spring-boot-starter-actuator para implementar funciones de monitoreo. Proporciona una serie de puntos finales HTTP o JMX para monitorear y administrar su aplicación Spring Boot, y puede activar o desactivar selectivamente algunas de estas funciones. Cuando introduce las siguientes dependencias en su aplicación Spring Boot, automáticamente obtendrá capacidades de auditoría, verificación de estado y monitoreo de métricas.
Uso específico:
El símbolo "*" significa habilitar todos los puntos finales de monitoreo. Estos puntos finales se pueden habilitar individualmente, como estado, información, métricas, etc.
La información de configuración general del punto final de monitoreo es la siguiente:
La información de configuración anterior es solo como referencia; consulte la documentación oficial para obtener más detalles.
Hoy nos centraremos en las capacidades de verificación del estado de la supervisión y gestión del actuador. Es importante poder realizar un seguimiento del estado de las aplicaciones en línea, especialmente aquellas en plataformas de nube de contenedores populares, que dependen de capacidades de verificación de estado para la recuperación automática y la expansión de la capacidad.
Cuando abrimos el punto final de salud del estado de salud, podemos ver que la información de salud de la aplicación se ha resumido, y cuando ingresamos http://127.0.0.1:10111/actuator/health, obtenemos {"status":"UP"}, mientras que el valor del estado puede ser ABAJO.
Para ver información detallada sobre el estado de la aplicación, debe configurar management.endpoint.health.show-details para siempre, después de lo cual visitaremos http://127.0.0.1:10111/actuator/health nuevamente. obtendrá la siguiente información
De la información de estado detallada de la aplicación anterior, encontramos que la información de estado incluye espacio en disco, redis y base de datos, y la aplicación Spring Boot con la función de monitoreo habilitada está realmente conectada a redis y Oracle DB, y el actuador los monitoreará automáticamente, lo cual es realmente muy conveniente y útil.
Después de las pruebas, descubrimos que el estado de salud de cualquier proyecto de monitoreo detallado está INACTIVO, y el estado general de la aplicación también está INACTIVO.
La información de estado de Spring Boot se recopila de varios HealthIndicator
Beans en ApplicationContext. El marco de Spring Boot contiene una gran cantidad de clases de implementación de HealthIndicators. Por supuesto, también puede usarlo de acuerdo. a tus propias necesidades. Logra tu propio estado de salud.
De forma predeterminada, HealthAggregator agrega el estado final de la aplicación de arranque Spring y el algoritmo de agregación es:
Los indicadores de salud actuales que vienen con el marco de arranque Spring incluyen: p>
A veces es necesario proporcionar comprobaciones de estado de salud personalizadas. Debe implementar el método health() y devolver un mensaje de respuesta de estado de salud personalizado, que debe incluir el código de estado y los detalles que se mostrarán. Por ejemplo, la siguiente es la implementación de la interfaz HealthIndicator:
Además, además de varios tipos de estado definidos por Spring Boot, también podemos personalizar los tipos de estado para representar el nuevo estado del sistema. En este caso, también deberá implementar la interfaz HealthAggregator o continuar usando la implementación predeterminada de HealthAggregator configurando management.health.status.order.
Por ejemplo, en la clase de implementación de un HealthIndicator de verificación de estado personalizado que utiliza el tipo de estado personalizado FATAL, para configurar la gravedad de este tipo de estado, debe agregar la siguiente configuración en la configuración de la aplicación. archivo:
Al realizar una verificación de estado, el código de estado HTTP en la respuesta refleja el estado de salud general (por ejemplo, ARRIBA corresponde a 200 y OUT_OF_SERVICE y DOWN corresponden a 503). Asimismo, debe configurar el código de estado HTTP para el tipo de estado personalizado. Por ejemplo, la siguiente configuración asigna FATAL a 503 (Servicio no disponible):
Aquí hay una lista de códigos de estado HTTP para los tipos de estado de salud integrados:
Este artículo explica cómo y por qué utilizar la funcionalidad de verificación del estado de la aplicación Spring Boot proporcionada. Este artículo presentará cómo utilizar la función de verificación del estado de la aplicación proporcionada en Spring Boot y cómo funciona, y presentará algunos conocimientos relacionados con el Actuador en el proceso. El contenido principal proviene de la documentación oficial y el código fuente de Spring Boot 2.0.1, así como de algunas de mis propias ideas, con la esperanza de obtener más soporte.