Percona XtraDB Cluster 搭配 HAProxy
- - 小惡魔 - 電腦技術 - 工作筆記 - AppleBOY本篇文章紀錄安裝 Percona XtraDB Cluster (簡稱 PXC) 及搭配 HAProxy 做分散流量系統,其實在業界已經很常看到 HAProxy + MySQL Cluster Database 解決方案,HAProxy 幫您解決負載平衡,並且偵測系統是否存活,管理者也就不用擔心 MySQL 服務是否會掛掉.
在 Percona XtraDB Cluster 推出 5.5.28 以前,最簡單的啟動方式就是打開 my.cnf
設定 wsrep_urls
在 [mysqld_safe]
section 內。假設我們有三台 Node 分別為底下 IP:
以前的設定方式為
wsrep_urls=gcomm://192.168.1.100:4567,gcomm://192.168.1.101:4567,gcomm://192.168.1.102:4567
當啟動 MySQL 時,Percona 會先去偵測 Cluster 內的 192.168.1.100 是否存在,如果不存在就在往下找,最後偵測 192.168.1.102 也不存在時,這時候 MySQL 就是啟動失敗,為了避免這情形,也就是全部的 Node Crash 狀況下,還是可以將 Cluster 啟動,可以改成底下設定
wsrep_urls=gcomm://192.168.1.100:4567,gcomm://192.168.1.101:4567,gcomm://192.168.1.102:4567,gcomm://
這在網路上很常看到此設定,如果全部的 Node 都不存在,表示此 Cluster 也就不存在,這時候我們就重新啟動 Cluster。但是 wsrep_urls
在 5.5.28 版本已經被列為 deprecated,所以請改用 wsrep_cluster_address
參數
wsrep_cluster_address=gcomm://192.168.1.100,192.168.1.101,192.168.1.102
大家看到此設定可以知道,不用在重複宣告 4567
port 以及 gcomm://
,但是這時候也會遇到如果全部的 Node 都關閉了,這樣 Cluster 也就消失了,有兩種方式可以啟動 Cluster。
wsrep_cluster_address
改成 gcomm://
,但是這樣很麻煩,等其他 Node 啟動後,還是要在改回來$ /etc/init.d/myslqd start --wsrep-cluster-address="gcomm://"
此方式不用修改 my.cnf
設定,其他 Node 啟動成功後,再將此 Node 重新啟動即可。
Reference: How to start a Percona XtraDB Cluster