有定义如下:
- agent:上报数据库的实例,最新的信息同步到某存储。
- manager:定期从存储中获取数据,决策是否做主备切换以及主备切换策略。
- router:路由,指向master。
切换过程:
- 正常上报:所有agent上报自身的角色,与master的连接情况,同步进度等
- 发现故障:master agent没有响应,所有的slave agent上报连接master失败。
- 决策切换:上一部的故障持续一段时间(需要设置)后,则判断master故障,manager根据策略选出新的master,启动切换流程。
- 关闭同步:manager通知所有slave停止半同步,尝试通知master设置只读。
- 调整主从:通知slave将半同步指向新的master,通知旧的master调整主从。
- 开启读写:新的master开始读写。
- 调整路由:路由指向新的master。