標籤:redis mysql 叢集 負載平衡
本篇重點講解haproxy+mysql負載平衡,搭建完成後與之前搭建的redis+ssm進行整合
(註:這裡用到了兩台mysql資料庫,分別安裝兩台虛擬機器上,已經成功實現主主複製,如果有需要,請查看我另外一篇部落格:http://www.cnblogs.com/cuijiale/p/8039421.html)
1、首先下載最新的的haproxy安裝包:haproxy-1.7.9.tar.gz
下載完成後cp到特定的目錄下/usr/local
2、安裝haproxy
解壓“tar -zxvf haproxy-1.7.9.tar.gz”在本目錄,壓縮完成後“cd haproxy-1.7.9”
執行安裝命令“make TARGET=linux3100 CPU=x86_64 PREFIX=/usr/local/haproxy-1.7.9”
“make install PREFIX=/usr/local/haproxy-1.7.9”
3、安裝完成後配置啟動
在安裝目錄的根目錄建立haproxy.cfg設定檔,啟動時需要。
進入haproxy.cfg檔案修改
1 global 2 log 127.0.0.1 local2 #日誌相關 3 maxconn 4096 4 chroot /var/lib/haproxy 5 pidfile /var/run/haproxy.pid 6 user haproxy 7 daemon 8 stats socket /var/lib/haproxy/stats 9 #debug10 #quiet11 12 defaults13 mode tcp #haproxy運行模式(http | tcp | health)14 log global15 option dontlognull16 option redispatch #serverId對應的伺服器掛掉後,強制定向到其他健康的伺服器17 retries 3 #三次串連失敗則伺服器不用18 timeout http-request 10s19 timeout queue 1m20 timeout connect 10s #連線逾時21 timeout client 1m #用戶端逾時22 timeout server 1m #伺服器逾時23 timeout http-keep-alive 10s24 timeout check 10s #心跳檢測25 maxconn 600 #最大串連數26 27 listen mysql28 bind 0.0.0.0:23306 #代理連接埠29 mode tcp #模式 TCP30 option mysql-check user haproxy #mysql健全狀態檢查 root為mysql登入使用者名稱31 balance roundrobin #調度演算法32 server mysql1 192.168.40.128:3306 weight 1 check inter 1s rise 2 fall 2 #健全狀態檢查加上check33 server mysql2 192.168.40.130:3306 weight 1 check inter 1s rise 2 fall 234 listen stats #監控35 mode http36 bind 0.0.0.0:888837 stats enable38 stats uri /dbs39 stats realm Global\ statistics40 stats auth admin:admin
設定檔後,就可以啟動了,不過在這之前,因為資料庫是負載平衡,需要同步資料與訪問資料,需要建立一個一模一樣的帳號來應對訪問需求,並且主主複製的帳號也需要改成一樣的,為了方便直接賦予這個使用者全部許可權。文法查看我mysql相關部落格: http://www.cnblogs.com/cuijiale/p/8034319.html,其中都有提到。ok該排的坑我們已經躺過了,這裡我就啟動服務(為了讓haproxy監控兩個資料庫資訊,需要分別建立一個haproxy使用者,密碼為空白就好)。
./usr/local/haproxy-1.7.9/sbin/haproxy -f /usr/local/haproxy-1.7.9/haproxy.cfg
啟動後可以通過命令去查看。啟動一切正常
遠程使用“http://192.168.40.128:8888/dbs”查看監控情況這裡用到的配置全部來自於
登入密碼這裡配置的是admin/admin可以看到我們配置的兩台mysql已經被監控到了。
4、整合smm
上面配置圖中可以看到我們讓haproxy監聽的23306連接埠,所以設定檔中需要串連這個連接埠
一切就緒,啟動redis叢集
redis主從6個節點全部啟動後,啟動web服務訪問
資料也完美得到。一切ok,這樣我們一個SSM WEB應用+redis叢集+mysql負載平衡的高可用,高效能,高擴充的讀寫分離架構就搭建完成了,其中還有很多瑕疵,之後也會自己慢慢補齊,架構還需要使用nginx對web應用進行負載平衡,減輕應用伺服器壓力。
其中不對地方,還望各位能夠指出,謝謝
05.haproxy+mysql負載平衡 整合 redis叢集+ssm