shan

負載平衡器

介紹

負載平衡(Load balancing)是一種電腦技術,用來在多個電腦(電腦集群)、網路連接、CPU、磁碟驅動器或其他資源中分配負載,以達到最佳化資源使用、最大化吞吐率、最小化回應時間、同時避免過載的目的。 使用帶有負載平衡的多個伺服器元件,取代單一的元件,可以通過冗餘提高可靠性。負載平衡服務通常是由專用軟體和硬體來完成。 主要作用是將大量作業合理地分攤到多個操作單元上進行執行,用於解決網際網路架構中的高並行和高可用的問題。

假設今天同時啟動了五台機器,不可能讓相同的DNS同時對到五台機器的IP,所以為了讓五台機器可以平均被活用,必須在五台機器前,架設一台Load Balance的機器,來達到分流的效果。
分流設計圖

Load Balance設計

從上圖可見,多了一台Load Balance機器,來管理後方的五台機器。在LB上有幾個必須做的設定:

1.設定後端機器的IP,這樣Load Balance才知道要管理那幾台機器。

2.設定判斷後端機器是否正常。通常有幾種方式來判斷後端的機器是否處於正常服務狀態,例如透過SSH、HTTP(S)等,來判斷後端是否是處於一個正常狀態。在Web開發時,建議使用HTTP(S)方式來判斷,畢竟機器正常(SSH可連入),不代表Server程式也正常(HTTP可連入)。

3.HTTPS的設定,因為HTTPS不單單是放在後端機器了,所以在Load Balance上,也必需針對HTTPS做設定。

4.設定分流的基準,可以用CPU或記憶體的用量(usage),來判斷這台後端機器是否是忙錄,決定要不要將使用者導向這台後端機器。