스프링 부트에서 서비스를 우아하게 종료하기(Graceful Shutdown)
·
Spring Boot
서비스를 운영하다 보면 배포, 장비 교체 등을 위해서 서비스를 내리고 다시 올려야 하는 경우가 생긴다.여기서 등장하는 Graceful Shutdown은 말 그대로 서비스를 우아하게 중지한다는 의미다. 서비스를 종료하기 전에 진행 중이던 작업들은 완료하고, 리소스까지 정리한 후에 종료되는 로직을 의미한다. 즉, 종료 신호를 받으면 아래의 과정이 모두 이뤄진 후에 종료되어야 한다는 것이다.새로운 요청을 막기 위해 connection을 모두 닫기애플리케이션이 진행 중인 작업을 모두 완료파일은 마저 저장작업 중이던 DB는 커밋 or 롤백 처리사용자 요청에 응답은 끝까지 주기... 이러한 Graceful Shutdown은 애플리케이션 단에서는 물론이고, 서비스를 컨테이너로 감싸고 있다면 이를 고려한 컨테이너 오케..