switchType="2"

  1. 设置 switchType="2" 与slaveThreshold="100"

switchType 目前有三种选择:

-1:表示不自动切换

1 :默认值,自动切换

2 :基于MySQL主从同步的状态决定是否切换

“Mycat心跳检查语句配置为 show slave status ,dataHost 上定义两个新属性: switchType="2" 与slaveThreshold="100",此时意味着开启MySQL主从复制状态绑定的读写分离与切换机制。Mycat心跳机制通过检测 show slave status 中的 "Seconds_Behind_Master", "Slave_IO_Running", "Slave_SQL_Running" 三个字段来确定当前主从同步的状态以及Seconds_Behind_Master主从复制时延。“

mycat会自动剔除从节点,因为这时的从节点无法保证和主节点的一致性,读写都会路由到主节点保证数据的准确。

switchType=2,基于MySQL主从同步的状态决定是否切换,心跳语句为show slave status。此时设置slaveThreshold=100表示从节点落后主库100秒就会剔除这个从节点

 

根据主从延时切换:
1.4开始支持MySQL主从复制状态绑定的读写分离机制,让读更加安全可靠,配置如下:
MyCAT心跳检查语句配置为 show slave status ,dataHost 上定义两个新属性:
switchType="2" 与 slaveThreshold="100",此时意味着开启MySQL主从复制状态绑定的
读写分离与切换机制,Mycat心跳机制通过检测 show slave status 中的
"Seconds_Behind_Master", "Slave_IO_Running", "Slave_SQL_Running" 三个字段来确定
当前主从同步的状态以及Seconds_Behind_Master主从复制时延,
Seconds_Behind_Master>slaveThreshold时,读写分离筛选器会过滤掉此Slave机器,防
止读到很久之前的旧数据,而当主节点宕机后,切换逻辑会检查Slave上的
Seconds_Behind_Master是否为0,为0时则表示主从同步,可以安全切换,否则不会切换。
<dataHost name="localhost1" maxCon="1000" minCon="10" balance="0"
writeType="0" dbType="mysql" dbDriver="native" switchType="2"
slaveThreshold="100"> <heartbeat>show slave status </heartbeat>
<!-- can have multi write hosts -->
<writeHost host="hostM1" url="localhost:3306" user="root" password="123456">
</writeHost>
<writeHost host="hostS1" url="localhost:3316" user="root" password="123456" />
</dataHost>
posted @ 2023-03-24 15:41  滴滴滴  阅读(64)  评论(0编辑  收藏  举报