Docker Haproxy搭建PXC負載均衡

pxc集群信息

<code>pxc-node1 172.30.0.100 3306
pxc-node2 172.30.0.101 3306

pxc-node3 172.30.0.102 3306
/<code>

拉取docker鏡像

<code>dcoker pull haproxy:1.9.3 
/<code>
  • 創建數據卷掛載目錄
<code>mkdir -p /pxc/haproxy
/<code>

配置文件

在/pxc/haproxy目錄下,新建haproxy.cfg

<code>global
\t#工作目錄
\tchroot /usr/local/etc/haproxy
\t#日誌文件,使用rsyslog服務中local5日誌設備(/var/log/local5),等級info
\tlog 127.0.0.1 local5 info
\t#守護進程運行
\tdaemon

defaults
\tlog\tglobal
\tmode\thttp
\t#日誌格式
\toption\thttplog
\t#日誌中不記錄負載均衡的心跳檢測記錄
\toption\tdontlognull
#連接超時(毫秒)
\ttimeout connect 5000
#客戶端超時(毫秒)
\ttimeout client 50000
\t#服務器超時(毫秒)
timeout server 50000


#監控界面\t
listen admin_stats
\t#監控界面的訪問的IP和端口
\tbind 0.0.0.0:8888
\t#訪問協議
mode http
\t#URI相對地址
stats uri /dbs
\t#統計報告格式
stats realm Global\\ statistics
\t#登陸帳戶信息
stats auth admin:abc123456
#數據庫負載均衡
listen proxy-mysql
\t#訪問的IP和端口
\tbind 0.0.0.0:3306
#網絡協議
\tmode tcp
\t#負載均衡算法(輪詢算法)
\t#輪詢算法:roundrobin
\t#權重算法:static-rr
\t#最少連接算法:leastconn
\t#請求源IP算法:source
balance roundrobin
\t#日誌格式
option tcplog
\t#在MySQL中創建一個沒有權限的haproxy用戶,密碼為空。Haproxy使用這個賬戶對MySQL數據庫心跳檢測
option mysql-check user haproxy

server pxc-node1 172.30.0.100:3306 check weight 1 maxconn 2000
server pxc-node2 172.30.0.101:3306 check weight 1 maxconn 2000
server pxc-node3 172.30.0.102:3306 check weight 1 maxconn 2000

/<code>
  • 創建鏡像
<code>docker run -d -p 4001:8888 -p 4002:3306 --name haproxy --net host -v /pxc/haproxy/:/usr/local/etc/haproxy haproxy:1.9.3
/<code>

數據庫中創建haproxy賬號

<code>創建haproxy 密碼為空
create user 'haproxy'@'%' identified by '';
/<code>

驗證

打開http://192.168.10.100:8888/dbs 查看監控頁面看到三個pxc節點的狀態均為up,即配置成功

Docker Haproxy搭建PXC負載均衡


分享到:


相關文章: