加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

图解分布式一致性算法

发布时间:2019-10-14 05:10:10 所属栏目:建站 来源:侯树成
导读:本日的文章,咱们会通过图的方法,来深入进修和领略漫衍式同等性的实现道理。 开始的时辰,咱们先来魂灵一问:什么是漫衍式同等性? 你的应用是单节点吗? 你的体系用户多吗、支持扩容吗? 你的体系扩容后数据能保持同等吗? 你的体系是否行使Raft、Paxos? 是
副问题[/!--empirenews.page--]

本日的文章,咱们会通过图的方法,来深入进修和领略漫衍式同等性的实现道理。

开始的时辰,咱们先来魂灵一问:什么是漫衍式同等性?

  • 你的应用是单节点吗?
  • 你的体系用户多吗、支持扩容吗?
  • 你的体系扩容后数据能保持同等吗?
  • 你的体系是否行使Raft、Paxos?
  • ……

是否领略都不要紧,后头开始咱们的例子,通过图的方法,来描写同等性的事变道理。

图解漫衍式同等性算法

一、前奏

假设咱们有个体系。是个单节点的体系,只陈设在一个实例上。可以把它领略成一个数据库处事(Database Server),实例上只有一个数据X,咱们后续的故事都是要环绕操纵改观X的值开展的。

漫衍式同等性算法

咱们尚有个客户端(Client),它要向节点 (Server) 写数据,这个时辰应用代码写起来也简朴,这个数据的同等性很轻易担保。

图解漫衍式同等性算法

图解漫衍式同等性算法

写哀求执行后,客户端和处事端的X数据都酿成了8。

在用户量少的时辰,还每天劳神啥时辰来个百万万万用户,等用户轻微一多起来才发明,原本的一个实例扛不住了。这个时辰为了支持更多用户会见,又扩容出来了更多的实例。

图解漫衍式同等性算法

那么这下题目来了,当我们有多个实例节点间的时辰,客户端向个中一个节点写了数据,怎样再同步给其他节点呢?奈何担保节点间数据的同等性呢?这就是漫衍式同等性题目。

二、 Raft 协议概览

Raft 就是一个办理上述漫衍式同等性题目的协议。相同的协议尚有Paxos、Zab等等。对比 Paxos,Raft 更易领略和实现。

咱们本次会俯瞰 Raft , 来相识其事变道理。

在 Raft 里, 节点也许存在三种状态:

  • Follower
  • Candidate
  • Leader

在后头的图里内容中,上述三种状态别离和下面三个图逐一对应。

图解漫衍式同等性算法

任何时辰,都只会处于上述三种状态中的一种。初始时辰,以是节点都处于 Follower状态。

图解漫衍式同等性算法

假如follower 节点不再能吸取到 leader 节点的动静, 他们的状态就会酿成 Candidate。

漫衍式同等性算法

Candidate 节点会向其他节点提倡投票哀求,

漫衍式同等性算法

其他节点也会投票举办相应。

漫衍式同等性算法

假如得到了大都节点的投票,那 Candidate节点会成为Leader。

漫衍式同等性算法

上面的这个进程就是漫衍式同等性协议中的「推举」(Leader Election)。

后续全部对付体系的改观,都是通过Leader举办的。经过 Leader 再达到其他节点。

图解漫衍式同等性算法

每次 Client 的改观哀求达到 leader 时,城市视为一个 Entry ,先添加到节点的日记 (Log)里。这个新增的 log entry,今朝还并没有提交,以是不会真的更新节点里 X 的值。

漫衍式同等性算法

leader 起首会复制 log entry 给全部 follower节点。

漫衍式同等性算法

然后, leader 会守候,直到大都节点都写入了entry。

漫衍式同等性算法

(编辑:河北网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读