나는 Tomcat 8의 병렬 배포를 한동안 무중단 연속 배포 설정의 일부로 사용하고 있습니다.
테스트 건틀릿이 실행되면 CI 서버는 자동으로 .war 파일의 이름을 application ## {version-number} .war로 바꾸고 war을 / webapp 폴더에 복사합니다. application ## 333은 application ## 332와 공존 할 것입니다.
내가 겪고있는 유일한 문제는 모든 트래픽 (새 세션)이 자동으로 새 트래픽으로 전환되면 이전 응용 프로그램을 수동으로 배포 취소해야한다는 것입니다.
Tomcat에 “이 서비스가 세션이 0이되면 제거해야합니다”라는 기본 메커니즘이 있습니까? 내가 막을 수있는 일종의 “마지막 세션이 만료되었습니다”이벤트 일 수도 있습니다.
다른 사람이 이런 종류의 응용 프로그램 배포를 자동화하지 않았다면 그 소식을 듣고 싶습니다. 감사!
답변
이전 애플리케이션을 제거하도록 Tomcat을 구성 할 수 있습니다. 요소에 undeployOldVersions
속성 을 추가 Host
하고로 설정해야합니다 true
. server.xml에서 호스트를 다음과 같이 수정해야합니다.
<Host undeployOldVersions="true" ...>
...
</Host>
자세한 내용은 호스트 설명서 를 참조하십시오. 특히 자동 배포가 활성화 된 경우에만 작동합니다.