MySQL HA
1 名词说明
Switchover, Failover和Failback
当一个系统宕掉之后,手动的切换到冗余或者备份系统,这个过程称之为 Switchover。
如果是自动切换,不需要人工干预,那么称之为 Failover。
When a manual process is used to switch from one system to a redundant or standby system in case of a failure, we are talking about switchover. Automatic switchover, without human intervention, is called failover.
原系统恢复之后,从备份系统切换回去的过程称之为Failback。
2 常见方案
组件类型
GitHub
XDB
负载均衡
load blance
dbproxy
配置中心
consul(一个KV存储,K是cluster_id, V是master是谁)
zonemaster + zookeeper
配置推送
consul的钩子脚本
xagent-operate/config_update
故障感知
orchestrator 集中式向实例拉取
xagent 本地感知后通过 zk 协调相互通信
切换后拓扑变更
orchestrator 的钩子脚本联动consul
xagent 写 zk 联动配置中心
选leader策略
orchestrator多实例部署,并使用raft协议保证只有leader在切
依赖zookeeper进行选主
拓扑信息backend
mysql/sqlite
zookeeper
3 开源方案
https://github.com/yandex/mysync (依赖 zk or etcd)
Last updated