【问题标题】:Slightly sticky load-balancing with Apache and mod_proxy_balancer使用 Apache 和 mod_proxy_balancer 的负载平衡有点棘手
【发布时间】:2016-09-08 04:30:45
【问题描述】:

我们有一个设置,我们希望会话在大多数时间保持粘性,但我们希望能够重新平衡流量。例如,假设只有一台后端服务器启动。 100% 的用户被路由到该服务器。当另一台服务器出现时,我们希望将负载重新平衡 50%-50%。我们正在使用带有 mod_proxy_balancer 的 Apache 2.4。

使用 JSESSIONID cookie 很容易设置粘性会话,但它们太粘了 - 一旦为会话分配了一个路由,它就会保留该路由,除非该路由变得无效。也很容易配置轮询或其他没有粘性的平衡方案并动态控制不同后端服务器的负载,但是如果我们更改负载因子对配置为粘性的会话没有影响,除了新会话和我们的用户通常全天登录。

是否可以使用 mod_proxy_balancer 配置“稍微粘滞”的会话,如果没有任何更改,会话被分配相同的路由,但是由于修改负载因子或添加服务器或使用命令,现有会话可以重新路由?

NGINX 似乎通过 ip-hash 和哈希平衡方法支持这一点。有 Apache 的解决方案吗?

【问题讨论】:

    标签: apache load-balancing mod-proxy-balancer


    【解决方案1】:

    您必须使用与 BalancerMember 中相同的路由 ID 配置 tomcat 实例。

    在Tomcat的server.xml中添加一个jvmRoute参数。这必须添加到引擎名称标签中。 Tomcat实例配置8080端口

    【讨论】:

    • 我不认为你有这个问题。我们有负载平衡工作,问题是如何适应变化和移动会话。 Nginx 支持这一点,但到目前为止我还没有在 Apache 中看到它。更改 Tomcat 肯定没有帮助。
    猜你喜欢
    • 1970-01-01
    • 2011-04-15
    • 2023-03-09
    • 2011-03-12
    • 2017-10-09
    • 2018-03-12
    • 2012-06-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多