实战从零开始实现Raft|得物技术
Source :
mp.weixin.qq.com
Author :
古月方块
Raft算法是一种分布式一致性算法,由Diego Ongaro和John Ousterhout在2013年提出。它主要用于分布式系统中,保证系统中的数据在多个节点间保持一致性。 Raft算法被广泛应用于众多分布式系统中,尤其是在需要强一致性保证的场景中,例如: 分布式存储系统:如ETCD、Consul等键值存储系统,它们利用Raft算法来保证数据的强一致性和高可用性。 分布式数据库:一些分布式数据库管理系统(DBMS),如CockroachDB等。 分布式锁服务:例如Google的Chubby以及微软的Azure Service Bus等。 得物的多个内部中间件也是使用Raft算法作为多分片一致性的保证。 长期以来,大部分开发者都是将Raft作为一个黑盒使用,只知道它能保证多分片的一致性,对其运行原理也停留在纸面。当面临Raft性能调优或者奇怪的Raft问题排障的时候则束手无策。 费曼说过:“What I cannot create, I do not understand。” 我们中国先贤也强调“知行合一,以致良知”。如果我们不能亲手编写一次Raft算法,对这个东西就不能算作理解。