
互联网基础设施巨头 Cloudflare 近日正式推出了一款名为 Meerkat(Cloudflare Meerkat 工具介绍)(Cloudflare Meerkat 工具介绍) 的全新分布式协调服务。该服务基于 QuePaxa 共识算法,是全球范围内首次将该算法投入生产环境的实践。与传统 Raft 等共识协议依赖单一领导者不同,Meerkat 实现了无领导者写入操作,在保持强一致性的同时大幅提升了广域网的可用性。
一、Raft协议的局限性
当前主流的分布式一致性协议,如 Raft,在广域网环境中存在天然的缺陷。Raft 依赖领导者来处理写入请求,一旦领导者因网络延迟或崩溃而不可达,整个系统必须等待其他节点超时并重新选举出新领导者,才能恢复写入能力。
遗憾的是,像 Raft 这样广泛部署的共识算法在 Cloudflare 这样的广域网中表现欠佳,因为它们依赖于领导者和超时机制。如果领导者因崩溃或网络质量下降而出现故障,系统将无法正常运行,直到其他某个副本超时并选出新的领导者为止。
二、QuePaxa算法原理
Meerkat 的核心是基于 QuePaxa 共识算法的无领导者协调机制。与 Raft 不同,QuePaxa 允许所有副本在不依赖领导者超时的情况下接受写入操作,从而彻底避免了广域网中因领导者不可达而导致的可用性损失。
Meerkat 的核心架构是一组全局复制的共识日志。该日志由一系列槽组成,关键不变式是:任意两个副本对同一槽的值所做决定必须相同,即任何两个副本都不会对已决槽的值产生分歧。
三、性能测试与落地验证
Cloudflare 团队坦诚地指出了 Meerkat 的局限性:所有共识算法都伴随着代价——大量的往返通信。特别是 QuePaxa,在初始提议者与多数副本之间,通常需要进行 1 到 3 次往返通信,才能就一项提议达成一致并将其添加到日志中。Meerkat 目前尚未投入生产,但 Cloudflare 已完成了包含最多 50 个全球分布副本的概念验证。这意味着 QuePaxa 算法将从理论走向大规模生产验证,成为该算法诞生以来的首次商业实践。
有工程师评论指出,在多区域 Paxos 部署中,共识开销通常会增加 40% 至 60% 的延迟。因此,Meerkat 的优化对于强一致性系统至关重要——用额外的通信换取确定性的强一致性。
对于需要跨数据中心、跨区域强一致性的分布式系统来说,Meerkat 的出现意味着一个重要的新选择——无需在强一致性和高可用性之间做痛苦的取舍。


