mycat配置mysql簡單的讀寫分離


安裝mycat在這裏就不說了。。。


1,配置mysql主從複製(見上一篇)

主庫:192.168.0.25:3306

從庫:192.168.0.107:3306

 

2,修改schema.xml文件


<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://org.opencloudb/">


<schema name="TESTDB" checkSQLschema="true" sqlMaxLimit="100" dataNode="dn1">

</schema>
  

    
<dataNode name="dn1" dataHost="mycat25" database="test"/>

<dataHost name="mycat25" maxCon="1000" minCon="10" balance="1"
writeType="0" dbType="mysql" dbDriver="native">


<heartbeat>show SLAVE status</heartbeat>


<!-- can have multi write hosts -->
<writeHost host="hostM1" url="192.168.0.25:3306" user="XXXX" password="XXXXX">
<!-- can have multi read hosts -->
<readHost host="hostS1" url="192.168.0.107:3306" user="XXXX" password="XXXXX"/>
</writeHost>


</dataHost>
 
</mycat:schema>


java 項目直接連接mycat的TESTDB 即可。用戶名密碼使用mycat的server.xml裏頭配置的即可。





這裏要說下,mycat讀寫分離的一些關鍵配置,按照官方文檔說明:

a. balance 屬性負載均衡類型,目前的取值有 4 種: 
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 沒有。

b. writeType 屬性,負載均衡類型,目前的取值有 3 種: 
1. writeType=”0”, 所有寫操作發送到配置的第一個 writeHost,第一個掛了切到還生存的第二個 
writeHost,重新啓動後已切換後的爲準,切換記錄在配置文件中:dnindex.properties . 
2. writeType=”1”,所有寫操作都隨機的發送到配置的 writeHost。 
3. writeType=”2”,沒實現。

c. switchType 屬性 
- -1 表示不自動切換 
- 1 默認值,自動切換 
- 2 基於MySQL 主從同步的狀態決定是否切換



發佈了32 篇原創文章 · 獲贊 37 · 訪問量 48萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章