开发者生态
morning
Cloudflare推出Meerkat,实现全球强一致性协调
摘要
Cloudflare 最近推出了 Meerkat ",这是其内部一个基于 QuePaxa 共识算法的全球一致性控制平面服务。与 Raft 不同,它允许无领导者的写入操作,同时仍然可以保持强一致性,从而提高了 Cloudflare 全球网络的可用性。 Cloudflare 高级研究工程师 James Larisch "、首席研究工程师 Bob Halley " 以及研究工程师 João Pedro ...
Meerkat
Cloudflare
QuePaxa
Raft
Larisch
Halley
Leite
Paxos
最近推出了
这是其内部一个基于
2026-08-06
1 阅读
约5分钟阅读
作者:Renato Losio
字号:
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 的其中一个不变性是:如果任意两个副本对某个槽的值做了决定,那么这些值必须相同。换言之,任何两个副本都不会对已决槽的值产生分歧。 图片来源:Cloudflare 博客 在 Hacker News 上一个热门的帖子 "中,一些从业者认为这篇文章难以理解,而另一些人则质疑,在典型部署场景下,额外的往返通信是否值得。一位用户评论道: 有趣的是,这将是异步共识算法(QuePaxa)的首次生产环境部署。Paxos、Raft 等算法都是部分同步的,这意味着它们依赖超时机制,只有当消息延迟相对于超时时间足够短时,才能推进执行。QuePaxa 则不依赖超时机制,即使在消息延迟剧烈波动的情况下也能推进执行。问题在于,在正常情况下,其性能是否足够具有竞争力。 在评估 Meerkat 的性能时,Larisch、Halley 和 Leite 警告说: Meerkat 存在局限性。它并非为构建数据库这类通用数据系统而设计的。所有共识算法都伴随着代价:大量的往返通信。特别是 QuePaxa,在初始提议者与多数副本之间,需要进行一到三次往返通信(通常如此,尽管有时可能更多),才能就一项提议达成一致并将事件添加到日志中。 尽管一些开发者要求 Cloudflare 将用于设计和验证 Meerkat 的规范 开源 ",但 KPIT 的软件工程师 Aniket Ray 写道 ": QuePaxa 在延迟与一致性权衡方面采取的方法非常精妙。研究表明,在多区域 Paxos 部署中,共识开销通常会增加 40% 至 60% 的延迟。因此,Meerkat 的优化对于强一致性系统至关重要。 Meerkat 目前尚未投入生产环境,但 Cloudflare 表示已完成了多项概念验证,其中最多时包含 50 个分布于全球各地的副本。 原文链接: https://www.infoq.com/news/2026/08/cloudflare-meerkat-consensus/ "
这篇文章对您有帮助吗?
订阅66必读
每日精选科技资讯,直达你的邮箱