Наше производство работает на LB + TOMCAT. Мы используем наш собственный инструмент SAFE-DEPLOY для развертывания изменений в производстве. Поскольку наша система обеспечивает круглосуточную доступность, инструмент развертывает изменения следующим образом
Общее количество серверов, используемых для конкретной службы, разделено на группы.Предположим, что он разделен на 2 группы, и они останавливают одну группу, внедряют изменения и запускают группу.После завершения первой группы они внедряют изменения в другую группу. В большинстве случаев она работает без каких-либо проблем.
Проблема вызвана особым случаем.Одна служба генерирует токен, который клиент принимает в качестве учетных данных, теперь мы изменили формат токена. Если мы используем тот же подход к развертыванию, должны быть некоторые потенциальные проблемы .ie.group1 остановите и разверните новый код, затем перезапустите (все в порядке), остановите group2(подготовьтесь к развертыванию нового кода), теперь ошибка может возникать при развертывании group2, потому что в течение этого времени group1 может получить маркер старого формата, сгенерированный group2 (1. при развертывании group1, group2 запускает старый код, 2.group2 остановлен не можетобработать запрос), клиент получает ошибку, которая показывает, что токен неверен, но это не совсем неправильный токен.
У меня есть решение: заставить наш код обрабатывать токен нового формата и токен старого формата, но генерирует толькотокен нового формата, после 1 дня работы мы можем выполнить развертывание, которое обрабатывает только токен нового формата.Я думаю, что это работает нормально, но это не льготный.
Мой вопрос, есть ли какой-либо подход грациозного развертывания, который позволяет серверу обрабатывать как старый отформатированный токен, который был сгенерирован, так и новый отформатированный токен без какого-либо изменения кода.
Кстати: я нахожу ссылку, рекомендация горячего развертывания на tomcat , она работает только для tomcat 7, наш рабочий tomcat - 6.0.26.