2016-03-03 93 views
0

我有兩個Tomcat節點背後的Apache Web服務器反向代理用於負載平衡。基於時間的Apache Web服務器負載均衡

有沒有辦法讓我配置工作人員,使其他主機只在一天的特定時間內添加到羣集中?

+0

這是用於某種自動縮放嗎?如果你有服務器,爲什麼你不希望他們一直被配置? –

+0

是的,我想設置自動縮放。 我有很多應用程序在多個主機上運行,​​並且我有多個在同一主機上運行的tomcat。 所以 主機H1有2個雄貓服務應用T1,T2 主機H2具有2個雄貓服務應用T1,T2 主機H3具有2雄貓服務應用T3,T4 主機H4具有2個雄貓服務應用T3,T4 Apache服務器負載平衡b/w H1和H2爲T1服務。例如,在一天中的某些時候,T3的負載很低。我想知道如果我啓動另一個tomcat在主機H3上爲T1服務,我可以動態地將它添加到羣集中。 – myth

回答

0

雖然既不mod_jk也不mod_proxy_ajp(或mod_proxy_http)具有用於高負荷大小調整(即我知道),我肯定知道mod_jk可以被配置爲多個後端實例(Tomcat的節點)和任何特定的特徵他們並不都必須一直運行。

看看下面的配置,例如:

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] 

如果你只是關機(或不啓動),用於h1t3h1t4 Tomcat的節點,然後將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 

如果你想加速旋轉節點h1t3h1t4,然後您將使這些節點聯機,然後將這些工作人員的激活狀態從S(已停止)更改爲A(活動)。然後,mod_jk將開始向這些可用節點發送請求。當您想讓它們脫機時,再次將節點置於S狀態(停止),然後停止這些Tomcat實例。

大量的這一點記錄在Apache Tomcat連接器load balancing howto中,並在Apache Tomcat連接器worker reference中有完整的參考。