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>