如果选用了raft,又是怎么克服它自身的缺点的呢?比如性能问题
对于分布式协议,在选型的时候会考虑算法本身的复杂度,使用场景,工程实现等因素。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
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。