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

2021-06-05 17:27:00 字數 2178 閱讀 7606

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也很快會實現。

Haproxy負載均衡部署

haproxy安裝 useradd haproxy wget tar zxvf haproxy 1.4.25.tar.gz cd haproxy 1.4.25 make target linux26 prefix usr local haproxy arch x86 64 make install ...

ha proxy負載均衡架構

屬於7層 haproxy 提供高可用性 負載均衡以及基於 tcp 和 http 應用的 支援虛擬主機,它是免費 快速並且可靠的一種解決方案。根據官方資料,其最高極限支援 10g 的併發。haproxy 特別適用於那些負載特大的 web 站點,這些站點通常又需要會話保持或七層處理。haproxy 執行...

haproxy負載均衡演算法

haproxy負載均衡演算法 1 roundrobin 表示簡單的輪詢,每個伺服器根據權重輪流使用,在伺服器的處理時間平均分配的情況下這是最流暢和公平的演算法。該演算法是動態的,對於例項啟動慢的伺服器權重會在執行中調整。2 leastconn 連線數最少的伺服器優先接收連線。leastconn建議用...