1 schema.xml配置文件
- Balance屬性
負載均稱類型
0:不開啟讀寫分離機制,所有讀操作都發送到當前可用的writeHost上
1:全部的readHost與stand by writeHost參與select語句的負載均衡,簡單的說,當雙主雙從模式(M1-S1,M2-S2 並且M1 M2互為主備),正常情況下,M2,S1,S2都參與select語句的負載均衡。
2:所有讀操作都隨機的在writeHost、readHost上分發
3:所有讀請求隨機的分發到writeHst對應的readHost執行,writeHost不負擔讀寫壓力。
- SwitchType屬性
-1不自動切換
1 默認值 自動切換
2 基於MySql主從同步的狀態決定是否切換
心跳語句為 show slave status
3 基於mysql galary cluster 的切換機制(適合集群)1.4.1
心跳語句為 show status like 'wsrep%'
[root@mycat conf]# cat schema.xml
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
<!-- 邏輯庫配置 DB1,DB2是邏輯庫並不是真的數據庫-->
<schema name="uusafe-core" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1"/>
<schema name="uusafe_paas_mos0105" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn2"/>
<!-- 表分片配置在這些 -->
<!--</schema> -->
<!-- 節點配置 db1,db2才是真正的數據庫 -->
<dataNode name="dn1" dataHost="host01" database="uusafe-core" />
<dataNode name="dn2" dataHost="host01" database="uusafe_paas_mos0105" />
<!-- 讀寫分離的配置 -->
<dataHost name="host01" maxCon="1000" minCon="10" balance="1"
writeType="0" dbType="mysql" dbDriver="native" switchType="3" slaveThreshold="100">
<heartbeat> show status like 'wsrep%'</heartbeat>
<writeHost host="hostM1" url="10.0.0.51:3306" user="root" password="123456">
<!-- 可以在這配置它對應的多個讀庫 -->
<readHost host="hostS1" url="10.0.0.52:3306" user="root" password="123456" />
<readHost host="hostS2" url="10.0.0.53:3306" user="root" password="123456" />
</writeHost>
<!--主故障,頂替寫節點,主正常是分擔讀壓力-->
<writeHost host="hostS2" url="10.0.0.52:3306" user="root" password="123456" > </writeHost>
</dataHost>
</mycat:schema>
