标准答案
- 先确认客户端支持拓扑发现、重连、退避和连接池刷新,并观察切换期间错误率、超时和重试放大。
- 验证写入确认边界:未确认写是否可能重复或丢失,业务幂等和状态查询能否恢复最终结果。
- 检查副本延迟、日志或消息追平、缓存数据一致性、索引状态和备份恢复点。
- 用小流量、故障注入和真实业务探针验证,再决定放量、回滚或进入下一阶段。
题目解析
节点存活只证明进程或网络可达,不能证明客户端发现了新拓扑、连接池丢弃了旧连接,也不能证明未确认写入的最终结果。升级和切主必须把客户端行为纳入验收。
切换时要关注复制延迟、时间线、连接重建、读写角色和重试放大。对结果未知的写操作,依靠幂等键、状态查询和业务对账判断是否重复或丢失。
验证应从小流量和真实业务探针开始,保留切换前后的数据校验、备份恢复点和回滚条件。只有节点、客户端、数据和业务四层都通过,才能扩大流量。
常见误区
- 误区:只 ping 节点就宣布升级成功。改正:验证客户端重连、连接池刷新、读写角色、复制和业务探针。
- 误区:切换期间无限重试写请求。改正:限制重试并使用幂等和状态查询处理未确认写入。
- 误区:没有保存切换前后的数据校验和。改正:保留关键表、事件、索引和业务对账证据,支持回滚和恢复判断。