阿帕奇·拉蒂斯(Apache Ratis) 是一个Java库,实现了Raft协议[1],在上可以找到Raft论文的扩展版本。 本文介绍了Raft,并用以下几句话陈述了它的动机: Raft是用于管理复制日志的共识算法。 它产生的结果等效于(multi-)Paxos,它的效率与Paxos相同,但其结构与Paxos不同。 这使Raft比Paxos更易于理解,并且为构建实用系统提供了更好的基础。 Ratis的目标是使Raft作为Java库可用,任何需要使用复制日志的系统都可以使用。 它为状态机实现提供了可插入性,以管理复制状态。 它还为Raft日志和rpc实现提供了可插入性,以使其易于与其他项目集成。 另一个重要目标是支持高吞吐量数据提取,以便可以将其用于更一般的数据复制用例。 要构建工件,请参阅 。 要运行示例,请参见 。 参考 Diego Ongaro和John Ousterhout