同城双活架构中 RTO、RPO、流量切换和数据一致性之间的约束关系
旗舰版来源:alibaba中级工程师RTO与RPO异地多活数据同步机房级故障切换同城双活
草稿
答案解析
同城双活里,RTO、RPO、流量切换和数据一致性是互相制约的,不能单独看某一个指标。
RTO 指的是故障发生后业务恢复服务的时间,RPO 指的是最多允许丢失多少数据。双活架构的目标通常是把 RTO 做到分钟级甚至秒级,把 RPO 尽量做到 0 或接近 0,但这取决于数据同步方式和切流能力。
流量切换决定了 RTO 的上限。比如一个机房故障后,如果依赖人工判断、手工改 DNS,RTO 可能是分钟级甚至更长;如果有全局流量调度、健康检查、自动摘除故障节点,RTO 就可以做到秒级到分钟级。但切流越自动,越要避免误切和脑裂,否则可能两个机房同时写入,带来数据冲突。
数据一致性主要影响 RPO。强一致方案,比如同步复制、分布式事务、共识协议,可以做到 RPO 接近 0,但会增加写入延迟,并且同城机房之间虽然延迟低,也会受到网络抖动影响,整体可用性和性能会下降。异步复制性能更好,系统可用性更高,但故障时可能存在复制延迟,这时 RPO 就不一定为 0,可能丢失最近几秒的数据。
所以它们之间的典型约束关系是:
要更小的 RTO,就需要更快的流量探测、决策和切换能力,但自动切换必须配合防脑
登录后查看完整内容
