Tomcat 远程并行部署

Tomcat 远程并行部署

我们正在使用 TeamCity 构建服务器上的 Maven 将应用程序部署到多个 Jelastic Tomcat 环境。这种方法效果很好,而且已经持续了相当长一段时间。

现在,我们希望更接近零停机部署,并希望找到一种简单的方法来最大限度地减少或消除停机时间。Tomcat 的并行部署功能似乎很合适。

但是,Jelastic Maven 插件似乎无法处理并行部署或非标准(即<artifact-name>##<artifact-version>.war)存档名称。tomcat-maven-plugin 与我们的 Nginx 代理/负载均衡器配合不佳,声称请求(PUT)太大。100 MB 应该不是问题,对吧……?:)

当我尝试使用 Postman 进行部署时,我也收到一条错误消息,提示上下文/已被使用。没错,这就是我想要并行部署的原因……

我已经在本地尝试了所有操作并且效果很好但是远程操作又是另一个问题,有没有人成功完成这种设置或者我遗漏了什么?

答案1

您说得对,Jelastic Maven 目前不支持 Tomcat 中的并行部署。该功能请求已添加到增强功能列表中。作为目前的替代选项,您可以通过以下方式部署 war 存档直接 SSH 连接到容器.或者你可以玩交换域- 创建一个新环境,将新版本部署到这个新环境,测试它,如果一切正常,则在新旧环境之间交换域。

除此之外,我们还将发布 Traffic Distributor - 一个用于零停机部署复杂应用的特定模块。它是一种负载平衡器,允许通过拖放或 API 调用在环境之间重新路由部分或全部流量。它将在一个月内公开。

答案2

如果您在负载均衡器上使用公共 IP 地址,还有另一种选择(推荐)。

在这种情况下,您可以创建一个具有相同拓扑的全新/独立的环境,在那里部署更新的代码,然后在测试之后移动公共 IP从旧的负载均衡器迁移到新的负载均衡器。迁移过程非常快(只有少量数据包丢失)。

此工作流程非常适合蓝绿部署

相关内容