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 开源方案

Last updated