共計 2388 個字符,預計需要花費 6 分鐘才能閱讀完成。
怎樣實現 Mycat 讀寫分離與負載均衡,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面丸趣 TV 小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
我們來學習讀寫分離與負載均衡
先看一下 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 沒有。
writeType 屬性
負載均衡類型,目前的取值有 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
for((i=1;i =1000;i++))
do
mysql -uroot -p123456 -P8066 -h227.0.0.1 -e select name from company TESTDB;
done
root@localhost logs]# sort test-blance.log |more |uniq -c
30 this is 119
17 this is 119:3307
28 this is 120
23 this is 120:3307
36 this is 121
26 this is 121:3307
如上:6 臺機器全部都有讀到,讀負載均衡成功
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注丸趣 TV 行業資訊頻道,感謝您對丸趣 TV 的支持。