内容提要
Uber重新设计了MySQL基础设施,采用MySQL组复制(MGR)替代外部故障转移,故障恢复时间缩短至秒。新架构通过共识复制确保数据一致性,支持自动节点管理和负载均衡,提升系统的可靠性和可用性。
关键要点
-
Uber重新设计了MySQL基础设施,采用MySQL组复制(MGR)替代外部故障转移。
-
故障恢复时间从分钟缩短至秒,同时保持强一致性。
-
新架构通过共识复制消除外部依赖,支持自动节点管理和负载均衡。
-
Uber之前使用单主异步复制模型,外部系统检测故障并提升副本,导致故障转移时间较长。
-
新架构采用Paxos协议的MySQL组复制,形成三节点MGR集群。
-
一个节点作为写入主节点,其他两个节点参与共识但不直接写入。
-
可扩展的读取副本从次要节点分散,分离读取扩展与写入可用性。
-
MGR中的流控制监控每个次要节点的事务队列,防止节点落后。
-
基准测试显示新设计在写入延迟上略有增加,但主要故障时的写入不可用性显著减少。
-
Uber使用自动控制平面进行集群的自动化管理和拓扑变化时的重新平衡。
-
实施MySQL组复制时,选择单主模式以简化操作和提高可预测性。
-
共识复制、自动化工作流和可扩展读取副本的结合提供高可用性和强一致性。
延伸问答
Uber是如何提升MySQL集群的可用性的?
Uber通过重新设计MySQL基础设施,采用MySQL组复制(MGR)替代外部故障转移,从而将故障恢复时间从分钟缩短至秒。
MySQL组复制(MGR)是如何工作的?
MySQL组复制采用Paxos协议,形成三节点集群,其中一个节点作为写入主节点,其他两个节点参与共识但不直接写入,确保数据一致性。
Uber在实施新架构时遇到了哪些挑战?
Uber在实施MySQL组复制时需要处理节点替换、避免分裂脑现象以及确保事务顺序等挑战。
新架构对写入延迟有什么影响?
基准测试显示新设计在写入延迟上略有增加,但在主要故障时的写入不可用性显著减少。
Uber如何管理MySQL集群的自动化?
Uber使用自动控制平面进行集群的自动化管理,包括节点的自动化加入、离开和拓扑变化时的重新平衡。
MySQL组复制如何确保数据一致性?
MySQL组复制通过共识复制机制,确保所有节点的数据保持一致,并能自动选举新的主节点。