HaProxy介紹
HaProxy是一款提供高可用性、負載均衡以及基于TCP(第四層)和HTTP(第七層)應(yīng)用的代理軟件纱耻,HaProxy特別適用于負載特大的web站點,完全可以支持數(shù)以萬計的并發(fā)連接
構(gòu)建
創(chuàng)建兩個容器分別為:rabbitmq-haproxy8100坛芽、rabbitmq-haproxy8101
- 創(chuàng)建容器rabbitmq-haproxy8100掛載配置文件haproxy.cfg的目錄
/data/haproxy/8100
- 創(chuàng)建容器rabbitmq-haproxy8101掛載配置文件haproxy.cfg的目錄
/data/haproxy/8101
復制8100的haproxy.cfg把5677崩掘、8100、8000端口改成5678惩激、8101店煞、8001即可
- 配置文件
#logging options
global
log 127.0.0.1 local0 info
maxconn 5120
chroot /usr/local/etc/haproxy
uid 99
gid 99
daemon
quiet
nbproc 20
pidfile /var/run/haproxy.pid
defaults
log global
#使用4層代理模式蟹演,”mode http”為7層代理模式
mode tcp
#if you set mode to tcp,then you nust change tcplog into httplog
option tcplog
option dontlognull
retries 3
option redispatch
maxconn 2000
timeout connect 5s
#客戶端空閑超時時間為 60秒 則HA 發(fā)起重連機制
timeout client 60s
#服務(wù)器端鏈接超時時間為 15秒 則HA 發(fā)起重連機制
timeout server 15s
#front-end IP for consumers and producters
listen rabbitmq_cluster
bind 0.0.0.0:5677
#配置TCP模式
mode tcp
#balance url_param userid
#balance url_param session_id check_post 64
#balance hdr(User-Agent)
#balance hdr(host)
#balance hdr(Host) use_domain_only
#balance rdp-cookie
#balance leastconn
#balance source //ip
#解決ckient連接時,mq2秒無活動被haproxy刪除的情況( 這里代理用的是tcp 顷蟀,默認tcp 2小時活動一次酒请,大于它即可 )
timeout client 3h
timeout server 3h
#簡單的輪詢
balance roundrobin
#rabbitmq集群節(jié)點配置
#inter 每隔五秒對mq集群做健康檢查, 2次正確證明服務(wù)器可用鸣个,2次失敗證明服務(wù)器不可用
server master5672 192.168.5.155:5672 check inter 5000 rise 2 fall 2
server slave5673 192.168.5.155:5673 check inter 5000 rise 2 fall 2
server slave5674 192.168.5.155:5674 check inter 5000 rise 2 fall 2
#配置haproxy web監(jiān)控羞反,查看統(tǒng)計信息
listen stats
bind 0.0.0.0:8100
mode http
option httplog
stats enable
#設(shè)置haproxy監(jiān)控地址為http://localhost:8100/rabbitmq-stats
stats uri /rabbitmq-stats
stats refresh 5s
#設(shè)置訪問賬戶和密碼
stats auth admin:qwg-haproxy
listen rabbitmq_admin #監(jiān)聽8000端口轉(zhuǎn)發(fā)到rabbitmq的客戶端
bind 0.0.0.0:8000
server master5672 192.168.5.155:15672 check inter 5000 rise 2 fall 2
server slave5673 192.168.5.155:15673 check inter 5000 rise 2 fall 2
server slave5674 192.168.5.155:15674 check inter 5000 rise 2 fall 2
分別創(chuàng)建并且運行容器
docker run -it --name rabbitmq-haproxy8100 -p 5677:5677 -p 8100:8100 -p 8000:8000 --net=rabbitmqnet -v /data/haproxy/8100/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg:ro haproxy:latest
docker run -it --name rabbitmq-haproxy8101 -p 5678:5678 -p 8101:8101 -p 8001:8001 --net=rabbitmqnet -v /data/haproxy/8101/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg:ro haproxy:latest
容器啟動成功后, 訪問HaProxy界面
http://192.168.5.155:8100/rabbitmq-stats
http://192.168.5.155:8101/rabbitmq-stats
可以看到RabbitMQ的3個節(jié)點為綠色,表示服務(wù)正常
訪問以下地址也可以跳轉(zhuǎn)到RabbitMQ客戶端(代理)
http://192.168.5.155:8000
http://192.168.5.155:8001
端口說明
-p 5678:5678 Haproxy的端口
-p 8101:8101 Haproxy管理界面端口
-p 8001:8001 Haproxy代理Mq端口