开发者社区> 问答> 正文

如果选用了raft,又是怎么克服它自身的缺点的呢?比如性能问题

如果选用了raft,又是怎么克服它自身的缺点的呢?比如性能问题

展开
收起
OSC开源社区 2024-05-11 17:10:06 38 0
1 条回答
写回答
取消 提交回答
  • 对于分布式协议,在选型的时候会考虑算法本身的复杂度,使用场景,工程实现等因素。Paxos 算法比较晦涩难懂,同时 Paper 当中也缺少必要的工程实现细节,在业界的使用程度不太高。而对于 Raft 而言,本身 Paper 在发布之初就把易于理解做为了目标之一,同时业界也有成熟的工业实现,如 etcd,积累了大量的优化和实践经验。但不管是 Paxos 还是 Raft 抑或是 ZAB 协议,在跨云场景下都是不适合的,其原因在于不同数据中心之间的网络延迟非常高,可达几十甚至上百毫秒,而这些协议都要求 2 个 RTT 已达到强一致性的要求。基于这些因素,Xline 选择使用 Curp 协议作为共识协议。在 fast path 的条件下可以相比 Raft 等算法可以节省 1 个 RTT,在 slow path 条件下则退化为 Raft 算法,需要 2 个 RTT 来达成共识。关于 Curp 算法具体可以参看 Paper:Exploiting Commutativity For Practical Fast Replication

    2024-05-11 18:49:53
    赞同 1 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载