使用负载均衡器部署 Apache tomcat

标签 apache tomcat load-balancing release-management

我正在尝试为生产部署提出一个简单的过程。我有 2 个 tomcat 节点,前端有 2 个 apache 节点,在 apache 节点之上有一个负载均衡器。出于某种原因,我无法在 Tomcat 上进行并行部署。我正在尝试在部署期间使用平衡器管理器,我将确保在应用程序更改之前耗尽 tomcat 节点 1。我想确保在将节点置于事件状态之前验证 tomcat 节点上的更改。我知道,在这一点上,我可以使 apache 节点 1 从负载均衡器脱机,并将 balancer-manager 更改为仅将请求路由到 tomcat 节点 1,并将我的所有请求指向 Apache 节点 1,以便在我上线之前进行验证。我认为这是一个复杂的实现过程,我想知道是否有更好的方法可以实现这一点。仅供引用,我们在 F5 的两个 apache 节点之间负载平衡请求,我们使用 Apache 在 2 个 tomcat 节点之间负载平衡请求。

有什么帮助吗?

最佳答案

我知道有3种方式:

  1. 使用像 consul.io 这样的服务注册/服务发现工具
  2. 在您的应用程序中实现健康检查,您可以在运行时对其进行控制。然后 F5 将访问健康检查资源并决定节点是否健康。在部署之前,您将节点的健康状态更改为不健康,并且该节点将在几秒钟后从负载平衡中删除。
  3. 使用红/蓝部署:这意味着每个主机都带有两个 tomcat(红色和蓝色 tomcat)。您的 Apache 指向红色或蓝色。通过这种方法,您可以在红色 tomcat 上部署并确保您的应用程序已启动。然后,您将 Apache 的配置切换为指向红色的配置并正常重启 - 没有请求被丢弃。蓝色现在处于非事件状态,下次部署时,您将部署到蓝色 tomcat 并重复该过程。

我在生产环境和大型 ISP 中使用了所有方法。取决于您的基础架构、应用程序以及您希望如何处理 HA 问题。

HTH,马克

关于使用负载均衡器部署 Apache tomcat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30738719/

相关文章:

node.js - 为什么我不能在 apache 中阻止单个 node.js 文件?

php - apache服务器如何处理对数据库的并发请求

python - 导入错误: Could not import settings 'mysite.settings' (Is it on sys.路径?): No module named mysite.设置

json - 有些资源不是由 cloudformation 创建的

java - 使用 Mina 和 Java DSL 的 Camel 负载平衡示例

apache - 重写规则放置在虚拟主机文件中时会导致 "Bad request"

java - 在独立的 Tomcat 服务器上部署 Java Spring、REST 和 Angular JS 应用程序

java - 在 Java REST 服务中浏览 IBM MQ 时出现 ResourceException

tomcat - EC2 实例的稳定服务器名称

asp.net - 将 Asp.net 应用程序移至负载平衡环境