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>