Red de conocimiento informático - Problemas con los teléfonos móviles - Reinicie la aplicación SpringBoot correctamente - Actuator

Reinicie la aplicación SpringBoot correctamente - Actuator

La característica más importante de SpringBoot es simplificar la configuración y mejorar la eficiencia del desarrollo. La forma de lograr una implementación simple es integrar contenedores web, como Tomcat, Jettty, etc.

Para aplicaciones SpringBoot, simplemente empaquetarlas en un paquete Jar simple y luego ejecutar java -jar para iniciar. Esta es una forma muy elegante, pero también oculta algunos problemas, como: Cómo detener una aplicación. ? Para las aplicaciones Java tradicionales (aplicaciones que no son Spring Boot) implementadas en contenedores, puede usar los scripts proporcionados por el contenedor para reiniciarse correctamente, pero el contenedor de las aplicaciones SpringBoot está integrado y no tendrá scripts de contenedor. Elimine el proceso, pero esto es muy poco elegante. Finalizar el proceso a la fuerza provocará la pérdida de datos o el terminal no podrá volver a la normalidad. La terminación forzada de un proceso resultará en la pérdida de datos o en la imposibilidad de que el terminal vuelva a su estado normal.

SpringBoot proporciona una variedad de métodos de detención. Este artículo se centrará en el método de punto final del ejecutor. El capítulo sobre puntos finales del documento oficial de SpringBoot presenta la función lista para producción de lanzamiento de aplicaciones a través del punto final HTTP. , los desarrolladores pueden monitorear y administrar aplicaciones fácilmente.

Después de configurar de acuerdo con el método anterior, el proyecto SpringBoot se puede cerrar correctamente. Simplemente simule una solicitud POST y acceda a la siguiente ruta en Postman u otras herramientas.

Nota: use su. propio El elemento para reemplazar el host y el puerto debe ser posterior

Regresar

Esto significa que la aplicación SpringBoot se ha cerrado correctamente

Aunque la aplicación SpringBoot se puede cerrado con gracia, todavía existe un gran riesgo de seguridad, pero todavía existe un gran riesgo de seguridad. Si hay un saboteador que conoce la IP y el número de puerto, puede simular una solicitud para detener el servicio, por lo que se necesitan algunas restricciones de seguridad. para agregar

Inicie sesión en el servidor donde está implementada la aplicación SpringBoot.

Inicie sesión en el servidor donde está implementada la aplicación SpringBoot y realice una solicitud POST a través de curl localmente

Luego podrá ver el siguiente resultado

Esto significa que la aplicación SpringBoot se ha detenido de forma elegante y segura

kill -9 pid no espera ningún juicio. Puede entenderse como el sistema operativo que mata por la fuerza un proceso desde el nivel del kernel. una eliminación a nivel de kernel. Se puede simular como una eliminación a nivel de kernel. Matar un proceso puede simular situaciones especiales como tiempo de inactividad del sistema y puntos de interrupción del sistema

kill -15 pid es realizar una operación de bloqueo mientras se espera que la aplicación se cierre. A veces, la aplicación no se cierra (esta línea es. una situación ideal, es un error que debe rastrearse hasta su origen)