鍍金池/ 問(wèn)答/數(shù)據(jù)庫(kù)  網(wǎng)絡(luò)安全/ mycat 兩主N從且讀寫分離配置如何寫?

mycat 兩主N從且讀寫分離配置如何寫?

假設(shè)有5臺(tái)機(jī)器分別為

master1:192.168.0.1
master2:192.168.0.2
node1:192.168.0.3
node2:192.168.0.4
node3:192.168.0.5

目的:我需要兩臺(tái)主庫(kù)master1,master2為寫庫(kù)且互為主備,三個(gè)node節(jié)點(diǎn)均為從庫(kù),讀的時(shí)候,優(yōu)先讀不忙的主庫(kù)以及從庫(kù),因?yàn)橛兄鲝难舆t的問(wèn)題,所以從庫(kù)可能沒(méi)有數(shù)據(jù),這種情況下選擇balance="1"還是balance="0"???

如果是balance="1"是隨機(jī)在一個(gè)不忙的主庫(kù)和三個(gè)從庫(kù)中隨機(jī)讀還是優(yōu)先讀writeHost???

是否有更好的解決方案?同時(shí)最好能附上配置的寫法,謝謝?。?!

回答
編輯回答
我甘愿

讀寫分離當(dāng)然就選balance=1啊,等于0就是不開啟讀寫分離了,并且雙主模式建議寫不是真的非常高的話writeType=0,只寫一個(gè)主master1,避免一些網(wǎng)絡(luò)或者其他不可預(yù)知的bug導(dǎo)致數(shù)據(jù)不一致的情況,讀寫分離就用另一個(gè)master2和剩下的slave分擔(dān)讀請(qǐng)求,這時(shí)候讀請(qǐng)求在master2和slave上沒(méi)有誰(shuí)比誰(shuí)優(yōu)先的問(wèn)題
另外如果網(wǎng)絡(luò)或者磁盤io跟不上導(dǎo)致主從延遲的情況,而讀請(qǐng)求又要求比較高的實(shí)時(shí)性,那就使用事務(wù)控制吧,mycat會(huì)把事務(wù)發(fā)送到負(fù)責(zé)寫的主庫(kù)上。我的配置:

<dataHost name="db1" maxCon="2000" minCon="50" balance="1" writeType="0" dbType="mysql" dbDriver="native" >
2017年2月5日 22:41