什么是MyCAT
MyCAT關(guān)鍵特性
1、這里是在mysql主從復(fù)制實(shí)現(xiàn)的基礎(chǔ)上,利用mycat做讀寫分離,架構(gòu)圖如下:

2、Demo
2.1 在mysql master上創(chuàng)建數(shù)據(jù)庫(kù)創(chuàng)建db1
2.2 在數(shù)據(jù)庫(kù)db1創(chuàng)建表student

同時(shí),因?yàn)榕渲煤昧薽ysql主從復(fù)制,在mysql slave上也有一樣數(shù)據(jù)庫(kù)和表
2.3 編輯 mycat的配置文件server.xml
<!--表示mycat的登錄用戶名--> <user name="test"> <!--表示mycat的登錄密碼--> <property name="password">test</property> <!--表示mycat的邏輯數(shù)據(jù)庫(kù)名稱,可以自定義--> <property name="schemas">TESTDB</property> </user> <user name="user"> <property name="password">user</property> <property name="schemas">TESTDB</property> <property name="readOnly">true</property> </user>
2.4編輯mycat的配置文件schema.xml
<!--TESTDB表示mycat的邏輯數(shù)據(jù)庫(kù)名稱 當(dāng)schema節(jié)點(diǎn)沒(méi)有子節(jié)點(diǎn)table的時(shí)候,一定要有dataNode屬性存在(指向mysql真實(shí)數(shù)據(jù)庫(kù)),--><schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1"> </schema> <!--指定master的數(shù)據(jù)庫(kù)db1--> <dataNode name="dn1" dataHost="192.168.0.4" database="db1" /> <!--指定mastet的ip --> <dataHost name="192.168.0.4" maxCon="1000" minCon="10" balance="3" writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100"> <!--表示mysql的心跳狀態(tài)--> <heartbeat>select user()</heartbeat> <!-- master負(fù)責(zé)寫 --> <writeHost host="hostM1" url="192.168.0.4:3306" user="root" password="admin"> <!--slave負(fù)責(zé)讀--> <readHost host="hostS2" url="192.168.0.5:3306" user="root" password="admin" /> </writeHost></dataHost>
到這里,利用mycat做讀寫分離就已經(jīng)配置完了
注意 dataHost節(jié)點(diǎn)的下面三個(gè)屬性
balance, switchType, writeType
balance="0", 不開啟讀寫分離機(jī)制,所有讀操作都發(fā)送到當(dāng)前可用的writeHost上。
balance="1",全部的readHost與stand by writeHost參與select語(yǔ)句的負(fù)載均衡,簡(jiǎn)單的說(shuō),當(dāng)雙主雙從模式(M1->S1,M2->S2,并且M1與M2互為主備),正常情況下,M2,S1,S2都參與select語(yǔ)句的負(fù)載均衡。
balance="2",所有讀操作都隨機(jī)的在writeHost、readhost上分發(fā)。
balance="3",所有讀請(qǐng)求隨機(jī)的分發(fā)到writeHost下的readhost執(zhí)行,writeHost不負(fù)擔(dān)讀壓力
writeType表示寫模式
writeType="0",所有的操作發(fā)送到配置的第一個(gè)writehost
writeType="1",隨機(jī)發(fā)送到配置的所有writehost
writeType="2",不執(zhí)行寫操作
switchType指的是切換的模式,目前的取值也有4種:
switchType=‘-1‘ 表示不自動(dòng)切換
switchType=‘1‘ 默認(rèn)值,表示自動(dòng)切換
switchType=‘2‘ 基于MySQL主從同步的狀態(tài)決定是否切換,心跳語(yǔ)句為show slave status
switchType=‘3‘基于MySQL galary cluster的切換機(jī)制(適合集群)(1.4.1),心跳語(yǔ)句為show status like ‘wsrep%‘。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持VeVb武林網(wǎng)。
新聞熱點(diǎn)
疑難解答
圖片精選