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>