【问题描述】Learner副本发生故障或断开连接时会发生什么?
1 个赞
Learner 副本故障或断开连接时的影响
Learner(只读副本)作为非 Paxos 成员,其故障对集群的影响非常有限,具体表现如下:
对集群核心功能无影响
- 不影响 Leader 选举:Learner 不参与 Paxos 投票,故障后不会触发选举流程。
- 不影响事务提交:Learner 不参与日志投票(多数派确认),事务提交的强一致性由全功能副本(F)和日志型副本(L)保障,Learner 故障不会阻塞写入。
- 不影响多数派判断:多数派的计算不包含 Learner,因此其故障不会改变集群的可用性状态。
对业务的实际影响
- 只读查询受影响:如果有业务将读请求路由到了该 Learner 副本(如读写分离场景),这些查询会失败或超时,需要将流量切换到其他可用副本。
- 数据延迟追赶中断:Learner 通过异步方式追赶 Paxos 成员的日志并在本地回放,故障期间日志追赶停止。
故障恢复后的行为
- 自动日志追赶:Learner 副本恢复连接后,会自动从 Leader 或其他 Paxos 成员处追赶缺失的日志,逐步追平数据。
-
自动补副本机制:如果 Learner 所在节点故障时间超过阈值(由
server_permanent_offline_time参数控制,默认 1 小时),系统会将其永久下线,并在同可用区的其他节点上重建该副本。
1 个赞