mycat 用作数据读写分离 , 配置文件 :
<schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn"></schema>
<dataNode name="dn" dataHost="localhost" database="db" />
<dataHost name="localhost" maxCon="1000" minCon="10" balance="3"
writeType="0" dbType="mysql" dbDriver="native" switchType="2" slaveThreshold="100">
<heartbeat>show slave status</heartbeat>
<writeHost host="hostM1" url="192.168.1.50:3306" user="stu” password="123qqq...A">
<readHost host="hostS2" url="192.168.1.51:3306" user="stu" password="123qqq...A" />
<readHost host="hostS3" url="192.168.1.52:3306" user="stu" password="123qqq...A" />
<readHost host="hostS4" url="192.168.1.53:3306" user="stu" password="123qqq...A" />
<readHost host="hostS5" url="192.168.1.54:3306" user="stu" password="123qqq...A" />
<readHost host="hostS6" url="192.168.1.55:3306" user="stu" password="123qqq...A" />
</writeHost>
<writeHost host="hostM2" url="192.168.1.51:3306" user="stu" password="123qqq...A">
<readHost host="hostS1" url="192.168.1.53:3306" user="stu" password="123qqq...A" />
<readHost host="hostS2" url="192.168.1.54:3306" user="stu" password="123qqq...A" />
<readHost host="hostS3" url="192.168.1.50:3306" user="stu" password="123qqq...A" />
<readHost host="hostS4" url="192.168.1.52:3306" user="stu" password="123qqq...A" />
<readHost host="hostS5" url="192.168.1.55:3306" user="stu" password="123qqq...A" />
</writeHost>
<writeHost host="hostM3" url="192.168.1.52:3306" user="stu" password="123qqq...A">
<readHost host="hostS1" url="192.168.1.53:3306" user="stu" password="123qqq...A" />
<readHost host="hostS2" url="192.168.1.54:3306" user="stu" password="123qqq...A" />
<readHost host="hostS3" url="192.168.1.51:3306" user="stu" password="123qqq...A" />
<readHost host="hostS4" url="192.168.1.50:3306" user="stu" password="123qqq...A" />
<readHost host="hostS5" url="192.168.1.55:3306" user="stu" password="123qqq...A" />
</writeHost>
</dataHost>
balance取值有个分别为0,1,2,3
其中balance=0:表示不开启读写分离机制,所有读写发生自writehost上
balance=1:全部的readhost与stand by writehost参与读的负载均衡
balance=2:所有读操作都是随机发生在writehost和readhost上
balance=3:所有读请求随机的分发到writehost对应的readhost执行,writehost不参与读请求
writeType取值可以是0,1
其中writeType=0:表示只写配置文件最前面又是主库的文件段执行读写分离.
writetype=1:所有读操作都随机发送到配置的writehost
switchType取值有4个,其中switchType=2,表示基于主从同步状态决定是否切换.