Windows XP Windows 7 Windows 2003 Windows Vista Windows教程綜合 Linux 系統教程
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟件教程
 Windows教程網 >> Linux系統教程 >> Linux教程 >> 千萬級並發HAproxy均衡負載系統介紹

千萬級並發HAproxy均衡負載系統介紹

日期:2017/2/7 9:20:54      編輯:Linux教程

HAProxy提供高可用性負載均衡以及基於TCP和HTTP應用的代理,支持虛擬主機,它是免費、快速並且可靠的一種解決方案。根據官方數據,其最高極限支持10G的並發。

HAProxy特別適用於那些負載特大的web站點, 這些站點通常又需要會話保持或七層處理。HAProxy運行在當前的硬件上,完全可以支持數以萬計的並發連接。並且它的運行模式使得它可以很簡單安全的整 合進您當前的架構中, 同時可以保護你的web服務器不被暴露到網絡上。

 

 

其支持從4層至7層的網絡交換,即覆蓋所有的TCP協議。就是說,Haproxy 甚至還支持 Mysql 的均衡負載。。

如果說在功能上,能以proxy反向代理方式實現 WEB均衡負載,這樣的產品有很多。包括 Nginx,ApacheProxy,lighttpd,Cheroke 等。

但要明確一點的,Haproxy 並不是 Http 服務器。以上提到所有帶反向代理均衡負載的產品,都清一色是 WEB 服務器。簡單說,就是他們能自個兒提供靜態(html,jpg,gif..)或動態(php,cgi..)文件的傳輸以及處理。而Haproxy 僅僅,而且專門是一款的用於均衡負載的應用代理。其自身並不能提供http服務。

但其配置簡單,擁有非常不錯的服務器健康檢查功能還有專門的系統狀態監控頁面,當其代理的後端服務器出現故障, HAProxy會自動將該服務器摘除,故障恢復後再自動將該服務器加入。自1.3版本開始還引入了frontend,backend,frontend根 據任意HTTP請求頭內容做規則匹配,然後把請求定向到相關的backend。

另外, 版本1.3 是處於活躍開發階段的版本, 它支持如下新特性:

內容交換 : 可以根據請求(request)的任何一部分 來選擇一組服務器, 比如請求的 URI , Host頭(header) , cookie , 以及其他任何東西. 當然,對那些靜態分離的站點來說,對此特性還有更多的需求。

全透明代理 : 可以用 客戶端IP地址 或者任何其他地址來連接後端服務器. 這個特性僅在Linux 2.4/2.6內核打了cttproxy 補丁後才可以使用. 這個特性也使得為某特殊服務器處理部分流量同時又不修改服務器的地址成為可能。

基於樹的更快的調度器 : 1.2.16以上的版本要求所有的超時都設成同樣的值以支持數以萬計的全速連接. 這個特性已經移植到1.2.17.

內核TCP拼接 : 避免了內核到用戶然後用戶到內核端的數據拷貝, 提高了吞吐量同時又降低了CPU使用率 . Haproxy 1.3支持Linux L7SW 以滿足在商用硬件上數Gbps 的吞吐的需求。

連接拒絕 : 因為維護一個連接的打開的開銷是很低的,有時我們很需要限制攻擊蠕蟲(attack bots),也就是說限制它們的連接打開從而限制它們的危害。 這個已經為一個陷於小型DDoS攻擊的網站開發了而且已經拯救了很多站點。

細微的頭部處理 : 使得編寫基於header的規則更為簡單,同時可以處理URI的某部分。

快而可靠的頭部處理 : 使用完全RFC2616 兼容的完整性檢查對一般的請求全部進行分析和索引僅僅需要不到2ms 的時間。

模塊化設計 : 允許更多人加入進此項目,調試也非常簡單. poller已經分離, 已經使得它們的開發簡單了很多. HTTP已經從TCP分離出來了,這樣增加新的七層特性變得非常簡單. 其他子系統也會很快實現模塊化

投機I/O 處理 : 在一個套接字就緒前就嘗試從它讀取數據。poller僅推測哪個可能就緒哪個沒有,嘗試猜測,並且如果成功,一些開銷很大的系統調用就可以省去了。如果失 敗,就會調用這些系統調用。已知的使用Linux epoll()已經淨提升起碼10%了。

ACLs : 使用任意規則的任意組合作為某動作的執行條件。

TCP 協議檢查 : 結合ACL來對請求的任意部分進行檢查,然後再進行轉發。這就可以執行協議驗證而不是盲目的進行轉發。比如說允許SSL但拒絕SSH。

更多的負載均衡算法 : 現在,動態加權輪循(Dynamic Round Robin),加權源地址哈希(Weighted Source Hash),加權URL哈希和加權參數哈希(Weighted Parameter Hash)已經實現。其他算法比如Weighted Measured Response Time也很快會實現。

Copyright © Windows教程網 All Rights Reserved