2010-07-15 135 views
4

我想知道是否有辦法做彈性負載平衡。我已經閱讀了HAProxy,但似乎我需要將HAProxy重新配置爲使用更多或更少的機器。彈性負載平衡

爲了讓圖片更清晰:我有一個web後端集羣(可以說apache + mod_rails)。如果流量非常高,我可以監控後端的使用情況,並快速調出另一臺具有相同內容的機器(時間大約爲幾秒)。但是,我不知道如何讓HAProxy使用額外的後端,而無需重新啓動它(損害可用性)。有沒有辦法使用HAProxy或其他負載平衡器來做到這一點?

我在想有可能有一種方法可以有兩個負載均衡器用於冗餘。然後,我可以降低一個,更新它的配置,使它恢復,然後取下另一個。但是我不知道如何做到這一點。

回答

2

如果您需要添加新服務器,則必須重新啓動它,但當您使用「-sf $ oldpid」啓動新進程時幾乎無法檢測到,因爲新進程和舊進程都在 並行工作。

如果您需要暫時禁用一臺服務器,你有幾種選擇:

1)(首選之一):啓用「選項HTTP-禁用-ON-404」和處理服務器的檢查響應返回404這將禁用新的連接,但仍然允許現有用戶完成他們的會話。然後你安排返回500,你可以停止你的過程。這種方法的優點是你永遠不必碰LB,一切都從你操作的服務器來控制。大多數合理的基礎設施就是這樣做的。

2)容易的:使用socat,連接到插座的統計信息,並禁用服務器你打算工作:

printf "disable server 1\n" | socat stdio unix-connect:/var/state/haproxy.stat 

然後啓用它,一旦你完成:

printf "enable server 1\n" | socat stdio unix-connect:/var/state/haproxy.stat 

只要你沒有修改配置,即使沒有檢測到 ,也沒有理由重新啓動。

0

如果您有此預算,請訪問www.Zeus.com。新版本在幾周內即可提供,但您也可以使用現有版本來提供服務級別監控,然後使用腳本語言和API爲您的後端服務器創建自動配置功能。

免費evals可以作爲開發者許可證使用,因此您可以免費模擬您試圖達到的目標。

如果您想要在某個點上沿着該路線行駛,也可以從多個雲提供商處獲得Zeus軟件。

+0

我沒有任何預算,所以它不是一個選項。即便如此,我在他們的網站上看不到任何符合我要求的功能。 – dschatz 2010-07-16 13:30:25