mysql讀寫主從配置

mysql讀寫主從配置

ID:34724698

大小:121.14 KB

頁數(shù):12頁

時(shí)間:2019-03-10

mysql讀寫主從配置_第1頁
mysql讀寫主從配置_第2頁
mysql讀寫主從配置_第3頁
mysql讀寫主從配置_第4頁
mysql讀寫主從配置_第5頁
資源描述:

《mysql讀寫主從配置》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫

1、最近在研究Web服務(wù)端負(fù)載均衡方面的技術(shù),參考網(wǎng)上資料,總體思路可以分為如下幾類:1.應(yīng)用服務(wù)器集群,典型的代表就是Nginx+Tomcat實(shí)現(xiàn)負(fù)載均衡;2.數(shù)據(jù)庫集群。本文主要關(guān)注數(shù)據(jù)庫集群。實(shí)現(xiàn)思路1.應(yīng)用層解決方案通過應(yīng)用層對(duì)數(shù)據(jù)源做路由來實(shí)現(xiàn)讀寫分離,項(xiàng)目是SpringMVC+myBatis,SQL路由交給Spring,通過AOP或者Annotation由代碼顯示的控制Datasource。優(yōu)點(diǎn)是路由策略的擴(kuò)展性和可控性較強(qiáng)。缺點(diǎn)是耦合到Spring;需要加入控制代碼。2.中間件解決方案通

2、過mysql中間件做主從集群,MysqlProxy、Amoeba、Atlas等中間件貌似都能符合需求。優(yōu)點(diǎn)是與應(yīng)用層解耦。缺點(diǎn)是增加一個(gè)服務(wù)維護(hù)的風(fēng)險(xiǎn)點(diǎn),性能及穩(wěn)定性待測試,需要支持代碼強(qiáng)制主從和事務(wù)。3.驅(qū)動(dòng)解決方案Mysql自帶的ReplicationDriver提供主從庫訪問的驅(qū)動(dòng),是通過保持多個(gè)數(shù)據(jù)源的鏈接并根據(jù)ReadOnlyTrue/False來選擇數(shù)據(jù)源。相當(dāng)于應(yīng)用層解決方案的一個(gè)現(xiàn)有實(shí)現(xiàn),擴(kuò)展性更弱。并且貌似不能使用其他驅(qū)動(dòng)。由于耦合較高暫不考慮。三種實(shí)現(xiàn)思路關(guān)鍵技術(shù)1.在應(yīng)用層使

3、用Spring對(duì)數(shù)據(jù)源做路由,關(guān)鍵字:SpringAOP;2.增加中間代理層,Amoeba就屬于這種情況,此外還有Mysql官方提供的MysqlProxy;3.在驅(qū)動(dòng)層使用Mysql提供的主從庫訪問驅(qū)動(dòng),直接與數(shù)據(jù)庫連接驅(qū)動(dòng)耦合,擴(kuò)展性弱,目前還未做原型嘗試。綜合上述分析,考慮到需要與應(yīng)用層解耦,現(xiàn)采用中間件解決方案,使用Amoeba做SQL路由,實(shí)現(xiàn)數(shù)據(jù)庫讀寫分離。既然選擇使用Amoeba,讓我們先了解什么是Amoeba?它能做什么?要怎么做?最后再看看它不能做什么。AmoebaAmoeba是什

4、么Amoeba(變形蟲)項(xiàng)目,該開源框架于2008年開始發(fā)布一款A(yù)moebaforMysql軟件。詳細(xì)資料可參閱Amoeba官方文檔(需翻墻)。Amoeba能做什么Amoeba致力于MySQL的分布式數(shù)據(jù)庫前端代理層,它主要在應(yīng)用層訪問MySQL的時(shí)候充當(dāng)SQL路由功能,專注于分布式數(shù)據(jù)庫代理層(DatabaseProxy)開發(fā)。座落與Client、DBServer(s)之間,對(duì)客戶端透明。具有負(fù)載均衡、高可用性、SQL過濾、讀寫分離、可路由相關(guān)的到目標(biāo)數(shù)據(jù)庫、可并發(fā)請(qǐng)求多臺(tái)數(shù)據(jù)庫合并結(jié)果。通過A

5、moeba你能夠完成多數(shù)據(jù)源的高可用、負(fù)載均衡、數(shù)據(jù)切片的功能。Amoeba不能做什么既然知道Amoeba能為我們解決什么問題,也要做到Amoeba不擅長的事情。這樣在具體項(xiàng)目技術(shù)方案選擇時(shí),方能權(quán)衡考慮。Amoeba對(duì)于以下幾點(diǎn)暫時(shí)無能為力:1.目前還不支持事務(wù);2.暫時(shí)不支持存儲(chǔ)過程,官方說近期會(huì)支持;3.不適合從Amoeba導(dǎo)數(shù)據(jù)的場景或者對(duì)大數(shù)據(jù)量查詢的query并不合適,比如一次請(qǐng)求返回10w以上甚至更多數(shù)據(jù)的場合;4.暫時(shí)不支持分庫分表,amoeba目前只做到分?jǐn)?shù)據(jù)庫實(shí)例,每個(gè)被切分的

6、節(jié)點(diǎn)需要保持庫表結(jié)構(gòu)一致。若實(shí)際項(xiàng)目中所需要的功能正式Amoeba的短板,建議使用MysqlProxy作為中間件,或者在應(yīng)用層通過程序控制數(shù)據(jù)源,手動(dòng)實(shí)現(xiàn)數(shù)據(jù)庫讀寫分離。原型環(huán)境1.服務(wù)器AIP:1XX.XX.XX.181運(yùn)行Mysql主數(shù)據(jù)庫和Amoeba。2.服務(wù)器BIP:1XX.XX.XX.182運(yùn)行Mysql從數(shù)據(jù)庫。3.服務(wù)器CIP:1XX.XX.XX.183運(yùn)行Mysql從數(shù)據(jù)庫。OS版本。[root@chenllcentos?~]#?cat?/etc/redhat-release?C

7、entOS?release?6.5?(Final)具體實(shí)現(xiàn)Mysql數(shù)據(jù)庫讀寫分離的具體實(shí)現(xiàn)主要包括兩個(gè)部分配置,即數(shù)據(jù)主從復(fù)制和Amoeba代理,現(xiàn)分別進(jìn)行介紹。主從復(fù)制為什么要進(jìn)行主從復(fù)制呢,其實(shí)很容易理解,因?yàn)閿?shù)據(jù)要同步啊。查看服務(wù)器A是否已經(jīng)安裝Mysql數(shù)據(jù)庫。[root@chenllcentos?~]#?rpm?-aq?

8、?grep?mysql若無消息顯示,則進(jìn)行Mysql安裝,否則跳過此步驟。yum?install?-y?mysql-server?mysql?mysql-devel?

9、mysql-libsMysql安裝完畢,默認(rèn)開機(jī)不啟動(dòng)Mysql服務(wù)。[root@chenllcentos?~]#?chkconfig?--list?

10、?grep?mysqldmysqld??????????0:關(guān)閉????1:關(guān)閉????2:關(guān)閉????3:關(guān)閉????4:關(guān)閉????5:關(guān)閉????6:關(guān)閉現(xiàn)在我們更改下配置,讓Mysql開機(jī)啟動(dòng)。[root@chenllcentos?~]#?chkconfig?mysqld?on[root@chenllcentos?~]#?c

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。