讀寫分離在我們配置數(shù)據(jù)庫(kù)集群時(shí)是必然會(huì)考慮的一個(gè)點(diǎn),因?yàn)檫@可以有效的降低主庫(kù)的負(fù)載,并且在讀多余寫的情況下,絕大部分的讀請(qǐng)求都可以分發(fā)到各個(gè)不同的從庫(kù)上。即使從庫(kù)負(fù)載不夠,也可以通過(guò)增加從庫(kù)的方式來(lái)提升整體的查詢效率。本文主要講解MyCat
如何進(jìn)行讀寫分離的配置。
為了搭建讀寫分離數(shù)據(jù)庫(kù)架構(gòu),這里我們需要準(zhǔn)備兩個(gè)數(shù)據(jù)庫(kù),一個(gè)作為主庫(kù),一個(gè)作為從庫(kù)。本文所使用的方式是通過(guò)docker搭建的主從架構(gòu),因而可以在本機(jī)上直接運(yùn)行。具體配置如下:
角色 | 主機(jī)名 | 主機(jī)ip | 主機(jī)端口 |
---|---|---|---|
主庫(kù) | mysql-master | 127.0.0.1 | 3306 |
從庫(kù) | mysql-slave | 127.0.0.1 | 3307 |
關(guān)于docker如何搭建MySQL主從數(shù)據(jù)庫(kù),讀者朋友可以閱讀本人的文章(Docker搭建MySQL主從集群)。讀者朋友也可以通過(guò)虛擬機(jī)的方式搭建主從數(shù)據(jù)庫(kù),這里就不再贅述。
關(guān)于MyCat的配置,其主要是需要在某一個(gè)數(shù)據(jù)庫(kù)節(jié)點(diǎn)上同時(shí)指定主庫(kù)和從庫(kù)。下面是一個(gè)示例:
<?xml?version="1.0"?><!DOCTYPE?mycat:schema?SYSTEM?"schema.dtd"><mycat:schema?xmlns:mycat="http://io.mycat/"> ??<schema?name="mydb"?checkSQLschema="true"?sqlMaxLimit="100"> ????<table?name="t_user"?primaryKey="id"?autoIncrement="true"?dataNode="dn1"/> ??</schema> ??<dataNode?name="dn1"?dataHost="dhost1"?database="db1"/> ?? ??<dataHost?name="dhost1"?maxCon="1000"?minCon="10"?balance="1"?writeType="0"? ????????????switchType="-1"?dbType="mysql"?dbDriver="native"> ????<heartbeat>select?user()</heartbeat> ????<writeHost?host="hostM1"?url="localhost:3306"?user="root"?password="root"/> ????<writeHost?host="hostS1"?url="localhost:3307"?user="root"?password="root"/> ??</dataHost></mycat:schema>
關(guān)于上述配置,主要有如下幾點(diǎn)需要說(shuō)明:
xml的配置順序schema
、dataNode
和dataHost
的順序不能發(fā)生變化;
在dataHost
中通過(guò)writeHost
將主庫(kù)和從庫(kù)都配置進(jìn)去,MyCat
可以通過(guò)show master status
來(lái)檢測(cè)具體哪一個(gè)是主庫(kù),哪一個(gè)是從庫(kù);
在dataHost
上有兩個(gè)參數(shù):balance
和switchType
。
-1表示當(dāng)master掛了的時(shí)候,主從不進(jìn)行自動(dòng)切換;
1表示當(dāng)master掛了的時(shí)候,主從進(jìn)行自動(dòng)切換;
2表示當(dāng)master掛了的時(shí)候,基于MySQL的主從復(fù)制狀態(tài)來(lái)決定是否進(jìn)行自動(dòng)切換;鄭州不孕不育醫(yī)院性價(jià)比哪家好:http://yyk.39.net/zz3/zonghe/1d427.html
3表示當(dāng)master掛了的時(shí)候,基于MySQL galary cluster的模式進(jìn)行自動(dòng)切換。
0表示不開(kāi)啟讀寫分離機(jī)制,所有的讀寫操作都發(fā)送到writeHost上;
1表示開(kāi)始讀寫分離機(jī)制,所有的讀操作都會(huì)發(fā)送到slave和standby-master上,所謂的standby-master指的是當(dāng)前master的備用master節(jié)點(diǎn);
2表示所有的讀操作隨機(jī)的在master和slave上分發(fā);
3表示所有的讀操作都分發(fā)到slave上,而master和standby-master都不負(fù)擔(dān)讀操作;
這里balance
可以指定四個(gè)值,其各個(gè)值的含義如下:
這里switchType
也可以指定四個(gè)值,各個(gè)值的含義如下:https://www.jianshu.com/p/3b9c64fdcec9
在進(jìn)行讀寫分離的時(shí)候,如果master節(jié)點(diǎn)宕機(jī),那么此時(shí),slave節(jié)點(diǎn)還是可以正常提供讀操作的,而對(duì)于客戶端發(fā)送的寫操作,將會(huì)拋出異常。
上述配置是讀寫分離的第一種方式,還有一種配置方式,就是將slave節(jié)點(diǎn)寫到master節(jié)點(diǎn)內(nèi)部,從而表明從屬關(guān)系。其配置方式如下:
<?xml?version="1.0"?><!DOCTYPE?mycat:schema?SYSTEM?"schema.dtd"><mycat:schema?xmlns:mycat="http://io.mycat/"> ??<schema?name="mydb"?checkSQLschema="true"?sqlMaxLimit="100"> ????<table?name="t_user"?primaryKey="id"?autoIncrement="true"?dataNode="dn1"/> ??</schema> ??<dataNode?name="dn1"?dataHost="dhost1"?database="db1"/> ?? ??<dataHost?name="dhost1"?maxCon="1000"?minCon="10"?balance="1"?writeType="0"? ????????????switchType="-1"?dbType="mysql"?dbDriver="native"> ????<heartbeat>select?user()</heartbeat> ????<writeHost?host="hostM1"?url="localhost:3306"?user="root"?password="root"> ??????<readHost?host="hostS1"?url="localhost:3307"?user="root"?password="root"?weight="1"/> ????</writeHost> ??</dataHost></mycat:schema>
對(duì)于這種配置方式,有相關(guān)的文章說(shuō),如果master宕機(jī),那么這種方式配置的slave機(jī)器就無(wú)法提供讀服務(wù),但是根據(jù)筆者的測(cè)試,其還是可以正常提供讀服務(wù)的,因而上述兩種方式?jīng)]有特別大的區(qū)別。
本文主要講解了MyCat
主從模式搭建的兩種方式,并且詳細(xì)講解了其配置方式中需要注意的點(diǎn)。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
名稱欄目:MyCat讀寫分離配置-創(chuàng)新互聯(lián)
網(wǎng)址分享:http://aaarwkj.com/article38/gjjsp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、網(wǎng)頁(yè)設(shè)計(jì)公司、網(wǎng)站排名、靜態(tài)網(wǎng)站、網(wǎng)站改版、標(biāo)簽優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)