我已使用 mod_jk 设置了 apache/tomcat8 并实现了负载平衡。假设我想更新其中一个 tomcat8 实例,也许更新 tomcat 本身,那么我该如何告诉 mod_jk 停止向该 tomcat 实例发送任何新请求,同时让现有用户完成他们正在做的事情(粘性会话)。
答案1
您可以使用“激活”属性来控制工人的状态/行为。
出于维护目的,你可以告诉负载均衡器不允许某些成员上有任何新会话,甚至根本不使用它们。这由成员属性控制激活。 价值积极的允许正常使用成员,已禁用不会创建新的会话,但仍允许粘性请求,并且停止将不再向成员发送任何请求。在维护前将激活状态从“活动”切换为“禁用”将耗尽工作器上的会话并最大限度地减少中断。根据应用程序的使用模式,耗尽会话需要几分钟到几小时的时间。在维护前立即将工作器切换为停止状态将减少 mod_jk 记录的虚假错误。