우리의 생산은 LB + TOMCAT에서 실행됩니다. 우리는 자체 제작 한 SAFE-DEPLOY 도구를 사용하여 변경 사항을 생산 환경에 배치합니다. 24/7 가용성을 제공하면 도구는 변경 사항을 다음과 같이 배치합니다.Tomcat에서 grace hot-deployment 수행 방법 (논스톱)
특정 서비스에 사용되는 총 서버는 그룹으로 나뉩니다. 우리는 그것이 2 개의 그룹으로 나누어지고 하나의 그룹을 멈추고 변화를 배치하고 그룹을 시작한다고 가정합시다. 첫 번째 그룹이 완료되면 다른 그룹에 변경 사항을 배포합니다. 대부분의 경우 문제없이 잘 작동합니다.
이 문제는 특수한 경우로 인해 발생합니다. 하나의 서비스는 클라이언트가 자격 증명으로 사용하는 토큰을 생성합니다. 이제는 토큰 형식을 변경했습니다. 동일한 배포 방법을 사용하면 몇 가지 잠재적 인 문제가 발생합니다 .ie.group1 새 코드를 중지하고 다시 시작한 다음 (다시 시작하면됩니다), group2 stop (새 코드 배포 준비) 이제 group2가 배포 될 때 오류가 발생할 수 있습니다. 그 시간 동안 group1은 group2에 의해 생성 된 이전 형식의 토큰을받을 수 있습니다 (1. group1이 배포 중일 때 group2가 이전 코드를 실행하고 2.group2가 중지됨 프로세스 요청), 클라이언트는 토큰이 잘못되었음을 나타내는 오류를 얻지 만 실제로 잘못된 토큰은 아닙니다.
나는 우리 코드가 새로운 형식 토큰과 이전 형식 토큰을 모두 처리 할 수 있지만 새로운 형식 토큰 만 생성 할 수 있도록하고, 1 일 후에 새로운 형식 토큰 만 처리하는 배포를 할 수 있습니다. 나는 그것이 잘 작동한다고 생각하지만 은혜가 아닙니다.
제 질문은 서버가 생성 된 이전 형식의 토큰과 코드가 변경되지 않은 새 형식의 토큰을 모두 처리 할 수있는 유예 배포 방법이 있습니까?
BTW : 참조 번호가 best practice hot deploy on tomcat인데, 이는 tomcat 7에서만 작동하며, 우리 작업 tomcat은 6.0.26입니다.