Tomcat Parallel Deployment, 기존 애플리케이션을 자동으로 배포 해제


10

나는 Tomcat 8의 병렬 배포를 한동안 무중단 연속 배포 설정의 일부로 사용하고 있습니다.

테스트 건틀릿이 실행되면 CI 서버는 자동으로 .war 파일의 이름을 application ## {version-number} .war로 바꾸고 war을 / webapp 폴더에 복사합니다. application ## 333은 application ## 332와 공존 할 것입니다.

내가 겪고있는 유일한 문제는 모든 트래픽 (새 세션)이 자동으로 새 트래픽으로 전환되면 이전 응용 프로그램을 수동으로 배포 취소해야한다는 것입니다.

Tomcat에 "이 서비스가 세션이 0이되면 제거해야합니다"라는 기본 메커니즘이 있습니까? 내가 막을 수있는 일종의 "마지막 세션이 만료되었습니다"이벤트 일 수도 있습니다.

다른 사람이 이런 종류의 응용 프로그램 배포를 자동화하지 않았다면 그 소식을 듣고 싶습니다. 감사!

답변:


9

이전 애플리케이션을 제거하도록 Tomcat을 구성 할 수 있습니다. 요소에 undeployOldVersions속성 을 추가 Host하고로 설정해야합니다 true. server.xml에서 호스트를 다음과 같이 수정해야합니다.

<Host undeployOldVersions="true" ...>
   ...
</Host>

자세한 내용은 호스트 설명서 를 참조하십시오. 특히 자동 배포가 활성화 된 경우에만 작동합니다.


어떤 버전의 Tomcat을 실행하고 있습니까? Tomcat 8.5.6이 있는데 작동하지 않습니다. FarmWarDeployer를 활성화했으며 새 릴리스가 자동으로 배포됩니다. 그러나 Host 태그에서 undeployOldVersions를 활성화 한 후에는 이전 war 파일 (및 배포)이 삭제되지 않습니다.
Piko

Tomcat 8에 대한 진행 상황이 있습니까?
JimmyD

1
이 기능은 Tomcat 8 용으로 구현되었습니다. FarmWarDeployer를 사용할 때 문제가 발생하면 재현 단계를 통해 버그를 열어보십시오.
Mark Thomas
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.