標籤:
本文主要講述通過haproxy實現mysql從庫間的負載平衡,至於mysql主從的搭建,本文不再重述,可以參考我之前寫的部落格。1.首先下載haproxy包
wget http://haproxy.1wt.eu/download/1.4/src/haproxy-1.4.13.tar.gz
2.安裝
tar zxvf haproxy-1.4.13.tar.gzcd haproxy-1.4.13/make TARGET=linux26 PREFIX=/usr/local/haproxy ##我的系統核心為2.6,所以target=linux26make install PREFIX=/usr/local/haproxy
3.進行配置
mkdir /etc/haproxytouch /etc/haproxy/haproxy.cfgvi /etc/haproxy/haproxy.cfg
##寫入以下內容:
global daemon nbproc 1 pidfile /var/run/haproxy.piddefaults mode tcp #預設的模式mode { tcp|http|health },tcp是4層,http是7層,health只會返回OK retries 2 #兩次串連失敗就認為是伺服器不可用,也可以通過後面設定 option redispatch #當serverId對應的伺服器掛掉後,強制定向到其他健康的伺服器 option abortonclose #當伺服器負載很高的時候,自動結束掉當前隊列處理比較久的連結 maxconn 4096 #預設的最大串連數 timeout connect 5000ms #連線逾時 timeout client 30000ms #用戶端逾時 timeout server 30000ms #伺服器逾時 #timeout check 2000 #=心跳檢測逾時 log 127.0.0.1 local0 err #[err warning info debug]########test1配置#################listen test1 bind 0.0.0.0:3306 mode tcp #maxconn 4086 #log 127.0.0.1 local0 debug server s1 192.168.103.59:3306 server s2 192.168.103.52:3306########frontend配置############## 在test1配置下添加server s1 192.168.103.59:3306和server s2 192.168.103.52:3306,即mysql從庫的ip和連接埠號碼,多個從庫在下面繼續添加。 4.啟動haproxy在解壓目錄下執行haproxy -f /etc/haproxy/haproxy.cfg 先將佔用3306連接埠的程式停掉haproxy -f /etc/haproxy/haproxy.cfg(若提示錯誤:bash: haproxy: 未找到命令執行 1 cd /usr/local/haproxy/sbin 2 ./haproxy -f /etc/haproxy/haproxy.cfg ) 5.測試使用navicat串連安裝haproxy的機器第一次連的52 關閉串連,重新連103.55 可見實現了mysql的負載平衡。 6.其他注意事項查看haproxy的進程ps -ef | grep haproxy kill -9 28924幹掉haproxy啟動並執行進程 再連55失敗 查看所有進程ps -ef 修改設定檔:重新啟動haproxy:
haproxy實現mysql從庫負載平衡