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)