← 文章 / 云原生与基础设施
InfoQ 7小时前 · 2026-08-06 18:56:11 · 3 阅读

Cloudflare 推出 Meerkat,实现全球强一致性协调

Cloudflare 最近推出了 Meerkat,这是其内部一个基于 QuePaxa 共识算法的全球一致性控制平面服务。与 Raft 不同,它允许无领导者的写入操作,同时仍然可以保持强一致性,从而提高了 Cloudflare 全球网络的可用性。

Cloudflare 高级研究工程师 James Larisch、首席研究工程师 Bob Halley 以及研究工程师 João Pedro Leite 写道:

遗憾的是,像 Raft 这样广泛部署的共识算法在 Cloudflare 这样的广域网中表现欠佳,因为它们依赖于领导者和超时机制。领导者是唯一被允许进行写入操作的副本,如果它因崩溃或网络质量下降而出现故障,系统将无法正常运行,直到其他某个副本超时并选出新的领导者为止。

为了避免在基于共识的系统中因领导者不可用而引发进一步的故障,该团队一直在开发一种基于 QuePaxa 共识算法的新型分布式共识服务。

与 Raft 不同,QuePaxa 允许所有副本在不依赖领导者超时的情况下接受写入操作,从而避免了在广域网中领导者不可达时,基于领导者的系统所面临的可用性损失。Meerkat 提供了一个共识日志,支持事务型键值存储和租约管理等服务。Cloudflare 表示,这预计将成为 QuePaxa 在全球范围内首次投入生产部署的案例。

在概述了一致性和容错性要求之后,该文解释了 Meerkat 如何通过全局复制的共识日志来实现强一致性。该日志确保所有副本就已提交操作的顺序和值达成了一致,从而保证读写操作可线性化。Larisch、Halley 和 Leite 补充道:

Meerkat 日志是由一系列槽组成的序列。一个槽是一个可能包含事件也可能不包含事件的“盒子”。包含事件的槽被称为已决槽。日志中所有的槽均为已决槽,唯独最后一个槽除外,它当前正在被决定。Meerkat 的其中一个不变性是:如果任意两个副本对某个槽的值做了决定,那么这些值必须相同。换言之,任何两个副本都不会对已决槽的值产生分歧。

图片

原始来源: InfoQ

评论 (0)