您好,登錄后才能下訂單哦!
怎樣實現Mycat讀寫分離與負載均衡,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
我們來學習讀寫分離與負載均衡
先看一下balance 屬性
負載均衡類型,目前的取值有3種:
1. balance="0", 不開啟讀寫分離機制,所有讀操作都發送到當前可用的writeHost上。
2. balance="1",全部的readHost與stand by writeHost參與select語句的負載均衡,簡單的說,當雙主雙從模式(M1->S1,M2->S2,并且M1與 M2互為主備),正常情況下,M2,S1,S2都參與select語句的負載均衡。
3. balance="2",所有讀操作都隨機的在writeHost、readhost上分發。
4. balance="3",所有讀請求隨機的分發到wiriterHost對應的readhost執行,writerHost不負擔讀壓力,注意balance=3只在1.4及其以后版本有,1.3沒有。
負載均衡類型,目前的取值有3種:
1. writeType="0", 所有寫操作發送到配置的第一個writeHost,第一個掛了切到還生存的第二個writeHost,重新啟動后已切換后的為準,切換記錄在配置文件中:dnindex.properties .
2. writeType="1",所有寫操作都隨機的發送到配置的writeHost。
3. writeType="2",沒實現。 <dataNode name="dn1" dataHost="localhost1" database="examdb" />
<dataNode name="dn2" dataHost="localhost2" database="examdb" />
<dataNode name="dn3" dataHost="localhost3" database="examdb" />
<dataHost name="localhost1" maxCon="1000" minCon="10" balance="2"
writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<!-- can have multi write hosts -->
<writeHost host="hostM1" url="192.168.6.121:3306" user="root"
password="ESBecs00">
<!-- can have multi read hosts -->
</writeHost>
<writeHost host="hostS1" url="192.168.6.121:3307" user="root"
password="ESBecs00">
<!-- can have multi read hosts -->
</writeHost>
</dataHost>
<dataHost name="localhost2" maxCon="1000" minCon="10" balance="2"
writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<!-- can have multi write hosts -->
<writeHost host="hostM1" url="192.168.6.120:3306" user="root"
password="ESBecs00">
<!-- can have multi read hosts -->
</writeHost>
<writeHost host="hostS1" url="192.168.6.120:3307" user="root"
password="ESBecs00">
<!-- can have multi read hosts -->
</writeHost>
</dataHost>
<dataHost name="localhost3" maxCon="1000" minCon="10" balance="2"
writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<!-- can have multi write hosts -->
<writeHost host="hostM1" url="192.168.6.119:3306" user="root"
password="ESBecs00">
<!-- can have multi read hosts -->
</writeHost>
<writeHost host="hostM1" url="192.168.6.119:3307" user="root"
password="ESBecs00">
<!-- can have multi read hosts -->
</writeHost>
</dataHost>
#!/usr/bin/bash
root@localhost logs]# sort test-blance.log |more |uniq -c
30 this is 119
writeType屬性
所以我們根據第二種方式做負載均衡
測試
如上:6臺機器全部都有讀到,讀負載均衡成功
for((i=1;i<=1000;i++))
do
mysql -uroot -p123456 -P8066 -h227.0.0.1 -e "select name from company" TESTDB;
done
17 this is 119:3307
28 this is 120
23 this is 120:3307
36 this is 121
26 this is 121:3307
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。