Вы можете установить два экземпляра tomcat с Apache mod_proxy_balancer
перед ним, как описано здесь . Для повторного развертывания приложения может быть применена стратегия «скользящего обновления» (при условии, что app1 и app2 являются вашими двумя экземплярами tomcat):
- Отключить tomcat @ app1 в диспетчере балансировки Apache
- Повторное развертывание приложения на tomcat @ app1
- Проведите некоторое тестирование с помощью app1 и посмотрите, все ли работает
- Включить tomcat @ app1 в балансировщик-менеджер
- Отключить tomcat @ app2 в балансировщик-менеджер
- Повторное развертывание приложения на tomcat @ app2
- Включить tomcat @ app2 в балансировщик-менеджер
И все готово. Для этого вам не нужно несколько физических или виртуальных машин - это также возможно в одной коробке. Если обновление вашего приложения подразумевает изменения базы данных, будьте осторожны.
Выше может быть заключено в капсулу, например в сценарии gant , так что простой "grails cluster-redeploy" делает все, что вам нужно. Такой сценарий в настоящее время находится в моем списке, но я не знаю, когда это будет закончено.