我在用于负载平衡的Apache Web服务器反向代理后面有两个Tomcat节点。
我是否有办法配置工作人员,以便仅在一天中的某些时间将其他主机添加到群集中?
答案 0 :(得分:0)
虽然mod_jk
和mod_proxy_ajp
(或mod_proxy_http
)都没有任何针对高负载重新调整大小的特定功能(我知道),但我确实知道{{1}可以为许多后端实例(Tomcat节点)配置它们,并且它们不一定都必须一直运行。
例如,采用以下配置:
mod_jk
如果您只是关闭(或不启动)worker.list=T1lb, T2lb, T3lb, T4lb
worker.T1lb.type-lb
worker.T1lb.balance_workers=h1t1, h2t1, h3t1, h4t1
worker.T2lb.type-lb
worker.T2lb.balance_workers=h1t2, h2t2, h3t2, h4t2
[etc for other combinations of TXlb]
worker.h1t1.host=host1.internal
worker.h1t1.port=1111
worker.h1t1.ping_mode=A
worker.h1t2.host=host1.internal
worker.h1t2.port=2222
worker.h1t2.ping_mode=A
worker.h1t3.host=host1.internal
worker.h1t3.port=3333
worker.h1t3.ping_mode=A
worker.h1t4.host=host1.internal
worker.h1t4.port=4444
worker.h1t4.ping_mode=A
[etc for other combinations of hXtY]
和h1t3
的Tomcat节点,那么h1t4
将知道它们不可用且不会发送请求给他们。当你启动它们时,它们会开始接受请求。
此配置还有另一种选择。它有点干净,但需要更多的工作。
您具有与上述相同的配置,但是您明确将mod_jk
通常不在线的节点的状态设置为activation
,如下所示:
disabled
如果要启动节点worker.h1t3.host=host1.internal
worker.h1t3.port=3333
worker.h1t3.ping_mode=A
worker.h1t3.activation=S
worker.h1t4.host=host1.internal
worker.h1t4.port=4444
worker.h1t4.ping_mode=A
worker.h1t4.activation=S
和h1t3
,那么您将使这些节点联机,然后将这些工作程序的激活状态从h1t4
(已停止)更改为S
(有效)。然后,A
将开始向这些可用节点发送请求。如果要使它们脱机,请将节点再次置于mod_jk
状态(已停止),然后停止这些Tomcat实例。
Apache Tomcat Connectors load balancing howto中记录了很多此类内容,并在Apache Tomcat Connectors worker reference中提供了完整的参考。