Skip to content

[开发]集群管理

zwyqz edited this page Dec 24, 2020 · 2 revisions

集群选择器(ReplicaSelector)

功能

完成集群名字到数据源名字的映射

原理

如何把集群名字映射到数据源名字

根据集群名字找到对应的数据源列表,剔除不可用,存在延迟的数据源,然后使用负载均衡算法选择

检测数据源可用与主从延迟

可用性

使用定时器触发心跳,即发送SQL查询到数据源指向的数据库,如果返回响应正确,就认为数据源可用

检测主从延迟

数据库的元信息,里面会带有主从、进程的状态.Mycat会使用数据库发送sql查询获取这些信息,然后进行判断,一旦检测到binlog的延迟大于某个阈值,就把这个从节点的状态设置成延迟,后续的负载均衡算法就不能选择他们.直到定时器检查到延迟正常,就把它恢复

主从切换

如果集群中的主节点挂了,则触发主从切换,根据集群的类型(单一节点,主从节点,多主)中把可选的主节点变成主节点,剔除不可用的主节点,然后记录日志,通知Mycat集群.

失效的数据源恢复

定时器会检查所有的数据源,无论他们是否正常,如果它们是有延迟问题,或者不可用,定时器都会不断的进行检查,如果主从的延迟恢复正常,则恢复可读,如果数据源正常,则设置为可用.

主节点挂了如何恢复?从节点挂了,如何恢复?
Clone this wiki locally