我正在尝试为生产部署提出一个简单的过程。我有 2 个 tomcat 节点,前端有 2 个 apache 节点,在 apache 节点之上有一个负载均衡器。出于某种原因,我无法在 Tomcat 上进行并行部署。我正在尝试在部署期间使用平衡器管理器,我将确保在应用程序更改之前耗尽 tomcat 节点 1。我想确保在将节点置于事件状态之前验证 tomcat 节点上的更改。我知道,在这一点上,我可以使 apache 节点 1 从负载均衡器脱机,并将 balancer-manager 更改为仅将请求路由到 tomcat 节点 1,并将我的所有请求指向 Apache 节点 1,以便在我上线之前进行验证。我认为这是一个复杂的实现过程,我想知道是否有更好的方法可以实现这一点。仅供引用,我们在 F5 的两个 apache 节点之间负载平衡请求,我们使用 Apache 在 2 个 tomcat 节点之间负载平衡请求。
有什么帮助吗?
最佳答案
我知道有3种方式:
- 使用像 consul.io 这样的服务注册/服务发现工具
- 在您的应用程序中实现健康检查,您可以在运行时对其进行控制。然后 F5 将访问健康检查资源并决定节点是否健康。在部署之前,您将节点的健康状态更改为不健康,并且该节点将在几秒钟后从负载平衡中删除。
- 使用红/蓝部署:这意味着每个主机都带有两个 tomcat(红色和蓝色 tomcat)。您的 Apache 指向红色或蓝色。通过这种方法,您可以在红色 tomcat 上部署并确保您的应用程序已启动。然后,您将 Apache 的配置切换为指向红色的配置并正常重启 - 没有请求被丢弃。蓝色现在处于非事件状态,下次部署时,您将部署到蓝色 tomcat 并重复该过程。
我在生产环境和大型 ISP 中使用了所有方法。取决于您的基础架构、应用程序以及您希望如何处理 HA 问题。
HTH,马克
关于使用负载均衡器部署 Apache tomcat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30738719/