단계적 서버 종료

새 유입을 먼저 막은 뒤 연결과 작업을 정리해야 종료 집합이 계속 늘지 않는다.

  1. readiness 중단

    로드밸런서의 새 요청을 줄인다.

  2. listener close

    accept 블로킹을 IOException으로 깨운다.

  3. session close

    활성 Socket read를 해제한다.

  4. worker 대기

    deadline 안 완료 후 강제 중단한다.

핵심: 모든 단계가 하나의 절대 종료 deadline을 공유한다.