HAProxy簡介
HAProxy提供高可用性、負載均衡以及基於TCP和HTTP應用的代理,支持虛擬主機,它是免費、快速並且可靠的一種解決方案。
HAProxy特別適用於那些負載特大的web站點,這些站點通常又需要會話保持或七層處理。
HAProxy運行在當前的硬件上,完全可以支持數以萬計的並發連接。並且它的運行模式使得它可以很簡單安全的整合進您當前的架構中, 同時可以保護你的web服務器不被暴露到網絡上。
HAProxy實現了一種事件驅動, 單一進程模型,此模型支持非常大的並發連接數。多進程或多線程模型受內存限制 、系統調度器限制以及無處不在的鎖限制,很少能處理數千並發連接。事件驅動模型因為在有更好的資源和時間管理的用戶空間(User-Space) 實現所有這些任務,所以沒有這些問題。此模型的弊端是,在多核系統上,這些程序通常擴展性較差。這就是為什么他們必須進行優化以 使每個CPU時間片(Cycle)做更多的工作。
一、安裝
#gcc 安裝 yum install gcc-c++
#下載 wget http://fossies.org/linux/misc/haproxy-1.6.9.tar.gz #解壓 tar -zxvf haproxy-1.6.9.tar.gz cd haproxy-1.6.9 #安裝 make TARGET=linux2628 ARCH=x86_64 PREFIX=/usr/local/haproxy make install PREFIX=/usr/local/haproxy
#參數說明
TARGET=linux26 #內核版本,使用uname -r查看內核,如:2.6.18-371.el5,此時該參數就為linux26;kernel大於2.6.28的用:TARGET=linux2628
ARCH=x86_64 #系統位數
PREFIX=/usr/local/haprpxy #/usr/local/haprpxy為haprpxy安裝路徑
二、配置(自己創建)
【/usr/local/haproxy/haproxy.cfg】
global log 127.0.0.1 local0 #log 127.0.0.1 local1 notice #log loghost local0 info maxconn 4096 chroot /usr/local/haproxy pidfile /usr/data/haproxy/haproxy.pid uid 99 gid 99 daemon #debug #quiet defaults log global mode tcp option abortonclose option redispatch retries 3 maxconn 2000 timeout connect 5000 timeout client 50000 timeout server 50000 listen proxy_status bind :48066 mode tcp balance roundrobin server mycat_1 192.168.1.105:8066 check inter 10s server mycat_2 192.168.1.60:8066 check inter 10s frontend admin_stats bind :7777 mode http stats enable option httplog maxconn 10 stats refresh 30s stats uri /admin stats auth mldn:java stats hide-version stats admin if TRUE
a、創建一個haproxy的數據保存路徑:mkdir -p /usr/data/haproxy/
b、找到listen proxy_status配置mycat信息
三、啟動
/usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.cfg
四、查看狀態
ps -ef|grep haproxy http://192.168.1.105:7777/admin
#說明:
7777即haproxy配置文件中監聽端口
/admin 即haproxy的訪問路徑
用戶名/密碼:mldn/java
五、mycat記得啟動
六、通過haproxy進行登錄
在192.168.1.60(mysql master)上登錄haproxy mysql -uroot -p123456 -h192.168.1.105 -P48066 -DTESTDB
#參數說明
-uroot:mycat用戶名
-p123456:mycat密碼
-h192.168.1.105:haproxy ip
-P48066:haproxy端口
-DTESTDB:mycat邏輯庫