分布式共识:Paxos 与 Raft 及现代实现

主要观点:分布式共识是分布式计算中的基本概念,能让多个节点在存在故障或网络分区时对单一数据值或动作序列达成一致,确保一致性。其在当今技术领域很重要,是可靠性、容错性、一致性和协调的基础,应用广泛。
关键信息

  • Paxos 由 Leslie Lamport 于 1998 年提出,是分布式系统研究和实现的基础,共识过程涉及提议者、接受者和学习者等角色,分准备和接受阶段。
  • Raft 由 Diego Ongaro 和 John Ousterhout 于 2014 年提出,旨在解决 Paxos 的理解问题,将问题分为领导选举、日志复制和安全,采用更简单的方法和强领导模型。
  • Paxos 和 Raft 在领导选举、投票行为、日志复制、复杂度与效率等方面存在差异,研究表明 Raft 的可理解性更多来自清晰呈现而非算法差异。
  • Kafka Raft(KRaft)是 Apache Kafka 架构的重大发展,通过新的仲裁控制器服务和事件驱动的 Raft 协议,消除了对 ZooKeeper 的依赖,简化了架构,提高了性能和可维护性。
    重要细节
  • 分布式共识可用于领导选举、区块链、分布式数据库、负载平衡和状态机复制等领域。
  • Raft 的领导选举在选举过程中不需要交换日志条目,相对较轻量级。
  • KRaft 的事件源存储模型通过事件日志存储状态,定期压缩防止无限增长,节点恢复时可快速访问日志,领导变更时新控制器已有所有提交的元数据记录。
  • 未来分布式共识的发展趋势包括简化实现、专门变体、集成到应用框架和提高可扩展性等。
阅读 34
0 条评论