mycat 两主N从且读写分离配置如何写?

假设有5台机器分别为

master1:192.168.0.1
master2:192.168.0.2
node1:192.168.0.3
node2:192.168.0.4
node3:192.168.0.5

目的:我需要两台主库master1,master2为写库且互为主备,三个node节点均为从库,读的时候,优先读不忙的主库以及从库,因为有主从延迟的问题,所以从库可能没有数据,这种情况下选择balance="1"还是balance="0"???

如果是balance="1"是随机在一个不忙的主库和三个从库中随机读还是优先读writeHost???

是否有更好的解决方案?同时最好能附上配置的写法,谢谢!!!

阅读 3.2k
1 个回答

读写分离当然就选balance=1啊,等于0就是不开启读写分离了,并且双主模式建议写不是真的非常高的话writeType=0,只写一个主master1,避免一些网络或者其他不可预知的bug导致数据不一致的情况,读写分离就用另一个master2和剩下的slave分担读请求,这时候读请求在master2和slave上没有谁比谁优先的问题
另外如果网络或者磁盘io跟不上导致主从延迟的情况,而读请求又要求比较高的实时性,那就使用事务控制吧,mycat会把事务发送到负责写的主库上。我的配置:

<dataHost name="db1" maxCon="2000" minCon="50" balance="1" writeType="0" dbType="mysql" dbDriver="native" >
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题