HAproxy指南之haproxy介紹(介紹篇)

2021-07-27 22:43:23 字數 1995 閱讀 5081

一.haproxy簡介

haproxy

提供高可用性負載均衡以及基於

tcp和

應用的**,支援虛擬主機,它是免費、快速並且可靠的一種解決方案。

根據官方資料,其最高極限支援10g的併發。

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

(2)haproxy 實現了一種事件驅動、單一程序模型,此模型支援非常大的併發連線數。多程序或多執行緒模型受記憶體限制 、系統排程器限制以及無處不在的鎖限制,很少能處理數千併發連線。事件驅動模型因為在有更好的資源和時間管理的使用者端(user-space) 實現所有這些任務,所以沒有這些問題。此模型的弊端是,在多核系統上,這些程式通常擴充套件性較差。這就是為什麼他們必須進行優化以 使每個cpu時間片(cycle)做更多的工作。

(3)haproxy 支援連線拒絕 : 因為維護乙個連線的開啟的開銷是很低的,有時我們很需要限制攻擊蠕蟲(attack bots),也就是說限制它們的連線開啟從而限制它們的危害。 這個已經為乙個陷於小型ddos攻擊的**開發了而且已經拯救了很多站點,這個優點也是其它負載均衡器沒有的。

(4)haproxy 支援全透明**(已具備硬體防火牆的典型特點:可以用客戶端ip位址或者任何其他位址來連線後端伺服器. 這個特性僅在

linux 2.4/2.6核心打了cttproxy補丁後才可以使用. 這個特性也使得為某特殊伺服器處理部分流量同時又不修改伺服器的位址成為可能。

二.haproxy效能  

haproxy借助於os上幾種常見的技術來實現效能的最大化。

1,單程序、事件驅動模型顯著降低了上下文切換的開銷及記憶體占用。

2,o(1)事件檢查器(event checker)允許其在高併發連線中對任何連線的任何事件實現即時探測。

3,在任何可用的情況下,單緩衝(single buffering)機制能以不複製任何資料的方式完成讀寫操作,這會節約大量的cpu時鐘週期及記憶體頻寬;

4,借助於linux 2.6 (>= 2.6.27.19)上的splice()系統呼叫,haproxy可以實現零複製**(zero-copy forwarding),在linux 3.5及以上的os中還可以實現零複製啟動(zero-starting);

5,記憶體分配器在固定大小的記憶體池中可實現即時記憶體分配,這能夠顯著減少建立乙個會話的時長;

6,樹型儲存:側重於使用作者多年前開發的彈性二叉樹,實現了以o(log(n))的低開銷來保持計時器命令、保持執行佇列命令及管理輪詢及最少連線佇列;

7,優化的http首部分析:優化的首部分析功能避免了在http首部分析過程中重讀任何記憶體區域;

8,精心地降低了昂貴的系統呼叫,大部分工作都在使用者空間完成,如時間讀取、緩衝聚合及檔案描述符的啟用和禁用等;

所有的這些細微之處的優化實現了在中等規模負載之上依然有著相當低的cpu負載,甚至於在非常高的負載場景中,5%的使用者空間佔用率和95%的系統空間佔用率也是非常普遍的現象,這意味著haproxy程序消耗比系統空間消耗低20倍以上。因此,對os進行效能調優是非常重要的。即使使用者空間的佔用率提高一倍,其cpu佔用率也僅為10%,這也解釋了為何7層處理對效能影響有限這一現象。由此,在高階系統上haproxy的7層效能可輕易超過硬體負載均衡裝置。

9,在生產環境中,在7層處理上使用haproxy作為昂貴的高階硬體負載均衡裝置故障故障時的緊急解決方案也時長可見。硬體負載均衡裝置在「報文」級別處理請求,這在支援跨報文請求(request across multiple packets)有著較高的難度,並且它們不緩衝任何資料,因此有著較長的響應時間。對應地,軟體負載均衡裝置使用tcp緩衝,可建立極長的請求,且有著較大的響應時間。

rabbitmq之HAProxy負載均衡

官網 wget download 1.7 src haproxy 1.7.8.tar.gz2 安裝 檢視系統核心版本 uname r 如下圖 根據下圖選擇編譯引數 3 解壓安裝 4 配置 複製haproxy檔案到 usr sbin下 cp usr local haproxy sbin haproxy...

Haproxy示例之訪問內網mongoDB

haproxy示例之訪問內網mongodb 請參考官方doc usr share doc haproxy 1.4.24 環境 centos6.5 x64 haproxy 1.4.24 一.安裝haproxy yum y install haproxy 二.配置haproxy 說明 172.16.0....

知識補充之Haproxy介紹與集群部署

下一節我們講述 lamp haproxy案例,故這一節我們先補充部分關於haproxy的知識。如果各位對這一節比較了解,可以初略的回顧一遍或者直接跳過。本節課共分為以下幾個板塊 1.集群概述 2.集群實現方法及排程演算法 3 集群檔案儲存及總結 4 haproxy簡介 5 haproxy自動化部署 ...