引言
- 本文介紹幾種負載均衡架構及算法。
總體政策
- DNS負載均衡用于實作地理級别的負載均衡;
- 硬體負載均衡用于實作叢集級别的負載均衡;
- 軟體負載均衡用于實作機器級别的負載均衡;
硬體負載均衡
- 類似路由器、交換機;
- 優點:
- 支援各種負載均衡算法;
- 支援100萬并發(一般軟體負載均衡也就支援10萬并發);
- 很多裝置同時支援負載均衡、防火牆、防DDOS攻擊功能;
- 缺點:
- 價格高昂;
軟體負載均衡
- 優點:
- 便宜;
- 維護和部署簡單(安裝Ngnix軟體即可);
- 缺點:
- 并發量遠小于硬體負載均衡,Linux伺服器上裝一個Nginx大概能到5萬每秒;
- 一般不具備防火牆、防DDOS攻擊等功能;
DNS負載均衡
- 實作地理級别的負載均衡;
- DNS伺服器将域名解析為最靠近使用者的主機的IP位址,提升通路速度;
- 缺點:
- DNS緩存不能及時更新,有可能定位到一個已經移走的主機;
- 除了映射IP位址,沒有提供其他的負載均衡算法和政策;
均衡算法
- 輪詢:
- 負載均衡系統收到請求後,按照順序輪流配置設定到伺服器上;
- 算法簡單,沒有考慮機器的狀态;
- 權重輪詢:
- 分給32核機器的機率是分給16核機器的機率的兩倍;
- 考慮了機器性能,但無法根據機器狀态動态調整;
- 負載最低優先:
- 根據及其具體狀态決定負載均衡政策;
- 考慮:機器連接配接數、機器的HTTP連接配接數、CPU占用率、IO占用率;
- 性能最佳優先:
- 根據及其具體狀态決定負載均衡政策;
- 考慮:伺服器響應時間;
- Hash:
- 對源IP位址hash決定任務配置設定到哪台伺服器;
- 對session ID進行hash決定任務配置設定到哪台伺服器,可以保證同一個會話的包都發送到同一台伺服器處理;
source: //changsiyuan.github.io/2018/07/15/2018-7-15-Architecture-4
複制