Mycat學(xué)習(xí)實(shí)戰(zhàn)-Mycat基本功能

Mycat學(xué)習(xí)實(shí)戰(zhàn)-Mycat基本功能

創(chuàng)新互聯(lián)公司長期為上千多家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為婺城企業(yè)提供專業(yè)的網(wǎng)站設(shè)計(jì)制作、網(wǎng)站設(shè)計(jì),婺城網(wǎng)站改版等技術(shù)服務(wù)。擁有10多年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。

學(xué)習(xí) mycat MySQL

  • Mycat學(xué)習(xí)實(shí)戰(zhàn)-Mycat基本功能
  • 1. Mycat高可用-讀寫分離

    • 1.1 讀寫分離配置參數(shù)

    • 1.2 心跳配置參數(shù)

  • 2. Mycat高可用-多主切換

    • 2.1 主從切換配置參數(shù)

    • 2.2 主從切換標(biāo)記

  • 3 注解

1. Mycat高可用-讀寫分離

Mycat學(xué)習(xí)實(shí)戰(zhàn)-Mycat基本功能

1.1 讀寫分離配置參數(shù)

Schema.dataHost 參數(shù)balance設(shè)置值:

  1. balance=”0”, 不開啟讀寫分離機(jī)制,所有讀操作都發(fā)送到當(dāng)前可用的writeHost上。

  2. balance=”1”,全部的readHost與stand by writeHost參與select語句的負(fù)載均衡, 
    簡(jiǎn)單的說,當(dāng)雙主雙從模式(M1->S1,M2->S2,并且M1與 M2互為主備), 
    正常情況下,M2,S1,S2都參與select語句的負(fù)載均衡。

  3. balance=”2”,所有讀操作都隨機(jī)的在writeHost、readhost上分發(fā)。

  4. balance=”3”,所有讀請(qǐng)求隨機(jī)的分發(fā)到wiriterHost對(duì)應(yīng)的readhost執(zhí)行,writerHost不負(fù)擔(dān)讀壓力

事務(wù)內(nèi)的SQL,默認(rèn)走寫節(jié)點(diǎn),以注釋/balance/開頭,則會(huì)根據(jù)balance=“1”或“2”去獲取 b. 
非事務(wù)內(nèi)的SQL,開啟讀寫分離默認(rèn)根據(jù)balance=“1”或“2”去獲取,以注釋/balance/開頭則會(huì)走寫解決部分已 
經(jīng)開啟讀寫分離,但是需要強(qiáng)一致性數(shù)據(jù)實(shí)時(shí)獲取的場(chǎng)景走寫

1.2 心跳配置參數(shù)

switchType=“1” :基于基本的表訪問判斷 
schema.xml

<dataHost name="localhost1" maxCon="1000" minCon="10" balance="0" writeType="0"dbType="mysql" dbDriver="native" switchType=“1" slaveThreshold="100"><heartbeat>select user()</heartbeat><writeHost host="hostM1" url="localhost:3306" user="root“ password="123456" /><writeHost host="hostS1" url="localhost:3316" user="root“ password="123456" /></dataHost>

switchType=“2” : show slave status會(huì)顯示主從同步狀態(tài) 
schema.xml

<dataHost name="localhost1" maxCon="1000" minCon="10" balance="0" writeType="0"dbType="mysql" dbDriver="native" switchType="2" slaveThreshold="100"><heartbeat>show slave status </heartbeat><writeHost host="hostM1" url="localhost:3306" user="root“ password="123456" /><writeHost host="hostS1" url="localhost:3316" user="root“ password="123456" /></dataHost>

Mycat心跳機(jī)制通過檢測(cè) show slave status 中的 “Seconds_Behind_Master”, “Slave_IO_Running”, “Slave_SQL_Running” 三個(gè)字段來確定當(dāng)前主從同步的狀態(tài)以及Seconds_Behind_Master主從復(fù)制時(shí)延,當(dāng)Seconds_Behind_Master>slaveThreshold時(shí),讀寫分離篩選器會(huì)過濾掉此Slave機(jī)器。

switchType=”3” ,MyCAT心跳檢查語句配置為 show status like ‘wsrep%’ ,開啟MySQL集群復(fù)制狀態(tài)狀態(tài)綁定的讀寫分離與切換機(jī)制 
schema.xml

<dataHost name="localhost1" maxCon="1000" minCon="10" balance="0" writeType="0"dbType="mysql" dbDriver="native" switchType="3" ><heartbeat> show status like ‘wsrep%’</heartbeat><writeHost host="hostM1" url="localhost:3306" user="root“ password="123456"> </writeHost><writeHost host="hostS1“ url="localhost:3316"user="root“ password="123456" ></writeHost></dataHost>

配置文件:conf/log4j2.xml 
日志文件:logs/mycat.log 
說明:修改log4j日志收集為debug方式,通過log信息可以分析出來是否讀寫分離發(fā) 
生在那個(gè)節(jié)點(diǎn)

2. Mycat高可用-多主切換

Mycat學(xué)習(xí)實(shí)戰(zhàn)-Mycat基本功能

2.1 主從切換配置參數(shù)

schema.xml

<dataHost name="dh-01" maxCon="1000" minCon="10" balance="1“ writeType="0"dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100"><heartbeat>select user()</heartbeat><writeHost host="hostM1" url="localhost:3306" user="root“ password="root"></writeHost><writeHost host="hostS1" url="localhost:3306" user="root“ password="root"></writeHost></dataHost>

需要配置多個(gè)writeHost節(jié)點(diǎn)

switchType屬性 
-1 表示不自動(dòng)切換 
1 默認(rèn)值,自動(dòng)切換 
2 基于MySQL主從同步的狀態(tài)決定是否切換 ,心跳語句為show slave status 
3 基于MySQL galary cluster的切換機(jī)制(適合集群)心跳語句為 show status like ‘wsrep%’

2.2 主從切換標(biāo)記

conf/dnindex.properties

#update#Tue Jul 25 14:20:40 CST 2017dh-01=0

使用中注意事項(xiàng): 
前提是的配置至少2個(gè)writeHost 
并且開啟自動(dòng)切換 
能不自動(dòng)切就別自動(dòng)切 
能手動(dòng)執(zhí)行就不要自動(dòng) 
數(shù)據(jù)丟失問題 
原主加入后當(dāng)從

3 注解

mycat對(duì)不支持的sql提供一種方案即為注解(在要執(zhí)行的sql語句前添加額外的一段由注解sql組成的代碼,這樣sql就能正確執(zhí)行,相當(dāng)于對(duì)不支持的sql語句做了一層透明代理轉(zhuǎn)發(fā)。) 
形式是: 
/*!mycat: sql=Sql語句*/真正執(zhí)行Sql 
注解支持的’!’不被 mysql 單庫兼容, 
注解支持的’#’不被 mybatis 兼容 
新增加 mycat 字符前綴標(biāo)志 Hintsql:”/* mycat: /”

參數(shù)說明整理列表:

Mycat學(xué)習(xí)實(shí)戰(zhàn)-Mycat基本功能

參考資料: 
[1] http://mycat.io/ 
[2] 《分布式數(shù)據(jù)庫架構(gòu)及企業(yè)實(shí)踐——基于Mycat中間件》 
[3] 龍哥官方課程課件

網(wǎng)頁題目:Mycat學(xué)習(xí)實(shí)戰(zhàn)-Mycat基本功能
文章起源:http://muchs.cn/article12/pphdgc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷、網(wǎng)站內(nèi)鏈、移動(dòng)網(wǎng)站建設(shè)、靜態(tài)網(wǎng)站、虛擬主機(jī)用戶體驗(yàn)

廣告

聲明:本網(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í)需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)