為了提高系統的可用性實現系統7*24小時運行的目標,我們的項目搭建了1個mysql集群來增加系統的可靠性,下面說1下項目中mysql集群的搭建進程。
先談談對搭建各種集群、散布式、負載均衡的理解,1個高可用、高性能、伸縮性強的散布式系統其實不是一揮而就,1下搭出這樣的架構也有點不可能,最少個人覺得對系統的運行狀態沒有1個可靠地保證,你不能保證架構中不會出現甚么紕漏的地方,因此架構師也是1點1點成長起來的,在小的架構解決不了目前的問題時、在不斷的高并發、每一年的雙101等這樣的問題中成長起來的。
在我們這個項目中重視高可用,當1臺數據庫服務器出現故障后不允許系統停止運行,也就是說需要多搭建幾臺服務器讓它們可以自由切換,服務器集群很好的解決了我們對高可用的需求。下面說1下我們是如何搭建mysql集群。
下載地址:http://dev.mysql.com/downloads/cluster/
3種節點:
1.管理節點(即集群的核心利用)
2.SQL節點(mysql Service)
3.數據節點 (數據文件)
1.管理節點
它是全部集群環境的核心類似于集群中起調度作用的關鍵,由它來負責管理其它節點的開啟、關閉等等,該節點也是從mysql 5.6版本以后才出現,可見數據庫對搭建集群這個方向正在提出新的需求和新的挑戰,或許在以后的版本中搭建集群將變的非常簡單,期待后續版本功能更強大。
開始對是SQL 節點是甚么?總有很多疑問,有無必要從mysql service中分離出來搭建完以后有點理解為何要把服務器和數據分離,結合mysql集群部署圖覺得有以下好處:
對圖的理解:
所有的SQL nodes、data nodes要看成1個整體對待,任意1個sql node節點對data node的操作都是對所有data node節點的操作,會對所有的data node產生影響,例如向集群中某1個數據插入數據,其它數據節點也會插入相同的數據。
好處
耦合性小:如果1個sql節點壞掉,不會影響這個節點下面的數據節點,它和數據節點1點關系也沒有
同步問題:多個數據節點之間需要時刻同步數據
可用性最高:集群中只要有1個SQL節點、1個data節點可用,全部集群就是可用的,不需要斟酌它們都部署在哪里。也就是說集群中各個節點之間是透明的誰也不知道誰,它們都由管理節點來調和管理。
2.SQL節點
即mysql Service服務器,為數據庫提供各種服務,如操作數據庫、安全、備份、MySQL所使用的SQL語言是用于訪問數據庫的最經常使用標準化語言。
通過mysql 服務器來對數據進行管理、保護工作,這里就不在多說。
3.數據節點
用戶的數據、數據庫、表、視圖、存儲進程等都保存在數據節點中。
PS:
對數據庫集群通常需要上面3個節點,管理節點負責管理其它的節點,這3類節點可以任意部署在1臺或好幾臺電腦上,為了方便部署和管理我把服務節點和數據節點部署在1起,分別部署在兩臺電腦上,管理節點單獨部署在1臺電腦上,盡可能不要讓管理節點同數據節點、服務節點部署在1起,否則那臺電腦壞掉后,其它節點就都不會運行了。
總結:
參考資料:
如何在Linux下搭建mysql 集群:http://www.cnblogs.com/seesea125/archive/2012/03/28/2421277.html
搭建問題:http://bbs.chinaunix.net/thread⑴841962⑴⑴.html
對搭建集群的詳細步驟這里不在多說,已整理成文檔,下載地址: