MySQL 負載均衡

配合上篇文章 MySQL集

 

使用Haproxy做負載均衡,請求被均勻分發給每個節點,單節點負載低,性能好

 

1.下載Haproxy

docker pull haproxy

2.編輯haproxy配置文件

放在 /home/soft/haproxy/haproxy.cfg

global
	#工作目錄
	chroot /usr/local/etc/haproxy
	#日誌文件,使用rsyslog服務中local5日誌設備(/var/log/local5),等級info
	log 127.0.0.1 local5 info
	#守護進程運行
	daemon

defaults
	log	global
	mode	http
	#日誌格式
	option	httplog
	#日誌中不記錄負載均衡的心跳檢測記錄
	option	dontlognull
    #連接超時(毫秒)
	timeout connect 5000
    #客戶端超時(毫秒)
	timeout client  50000
	#服務器超時(毫秒)
    timeout server  50000

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

運行鏡像

docker run -it -d -p 4001:8888 -p 4002:3306 -v /home/soft/haproxy:/usr/local/etc/haproxy --name h1 --privileged --net=net1 --ip 172.18.0.7 haproxy

進入容器命令

docker exec -it h1 bash    #進入h1容器

haproxy -f /usr/local/etc/haproxy/haproxy.cfg 執行

 

要在數據庫創建一個用戶 haproxy(因爲haproxy配置文件有數據庫驗證)

CREATE USER 'haproxy'@'%' IDENTIFIED BY '';

進入 haproxy監控後臺關聯

賬戶配置文件裏面 有賬戶和密碼
admin:abc123456

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章