美文网首页
分布式系统中的一致性

分布式系统中的一致性

作者: LumiaXu | 来源:发表于2018-03-02 14:15 被阅读39次

算法:Raft

对象:

复制状态机集群

主要问题:

保证一个状态机集群里面的机子一致性良好 

两个关键问题:

1. 没有 Master 时需要选举出下一个 Master,且要保证同时只有一个 Master
2. 机器重连后的 log(状态机命令序列) 同步

解决方案:

问题 1 的解决方案:

  1. 集群的数量(sum) 必须是大于 1 的奇数。

  2. 每个机器都启动一个定时器,当一定时间内没有收到来自 Leader 的消息,则视为 Leader 已不可用,从 Follower 转换成 Candidate,准备选举 Leader。

  3. 选举过程中,每个机器只可选一个 Candidate,而且必须得到大于 sum/2 个投票才可当选为 Leader。

  4. 当同时有两个 Candidate 竞选 Leader 时,有可能每个 Candidate 都拿不到多数选票,因为选举也有 timeout,而且是一定范围的随机,所以只要出现多个 Candidate,就简单的重置定时器而已。性能不一定最高,但简单且健壮。

问题 2 的解决方案

  1. 对于一个集群来说,每次从无 Leader 到进行选举是一个阶段(Term),所以在旧阶段失联的机器重连后,判断当前集群所在的阶段,若已落后,则无条件用 Leader 的 log 覆盖自己的,成为一个 Follower。

  2. 所以在 Raft 中,只有 Leader 向 Follower 发送 log,这简化了复制过程,但在某些条件下,系统的复制性能会下降。

  3. 对于每个客户端请求,只有在超过半数机器复制成功(log 写入成功)时,才能向客户端响应成功。

  4. 同样在选举时,log 数量多的 Candidate 拥有更高的权重。

解决一致性的开源解决方案Zookeeper

基于Raft算法的基础服务,相当于TCP/IP下面的下层协议,为上层的应用提供服务。

基础服务目标:提供基础的文件服务

基础服务Zookeeper 可以看做提供了一个分布式且保证了操作一致性的文件系统,其设计目标不是像 GFS 一样管理大量大文件,而是以文件系统的目录文件作为基本数据结构,提供一系列 API,方便用户构建自己的分布式服务。

两阶段提交:多个集群的分布式实务算法

用处

保证一个集群实务的原子性。

两步提交

  1. 预提交,让协调者给参与者,让参与者预执行。
  2. 通过预执行的结果反馈,协调者来判断参与者们是否需要全部commit:如果结果反馈全部为OK,那么就commit上去。如果参与者结果反馈有一个不行,那就让协调者

多个集群在 并发 和 一致性 之间的平衡

算法:OOC 乐观并发控制

背景:有很多集群的操作不是互斥的。比如A集群进行操作A1,B集群进行操作B1,然而A和B操作不影响整个系统的一致性。

上面的两阶段提交过程:

参与者预执行->把结果发给协调者->协调者协调(需要等待所有节点)->发送协调结果给所有节点->所有节点统一进行提交/回滚。

现在的提交过程:

参与者预执行->结果发给协调者->协调者判定是否和其他集群操作冲突->协调者发结果参与者->

相关文章

  • 区块链技术(P3)算法的探索

    分布式系统的一致性问题 区块链作为一个分布式系统,首先碰到的问题就是一致性的保障。 在分布式系统中,一致性是指对于...

  • 深入浅析分布式系统的一致性模型

    本文是《如何学习分布式系统》中,关于一致性模型的相关介绍。 什么是一致性模型 一致性模型指的是分布式系统对外界承诺...

  • paxos算法

    paxos算法是为了解决分布式系统的一致性问题而生的。 分布式系统的一致性问题表现为在一个分布式系统中,所有的节点...

  • 云计算及分布式系统

    期末论文: 分布式系统的核心问题:1,一致性问题在分布式系统中,一致性(Consistency,早期也叫 Agre...

  • 2018-07-05

    分布式一致性问题 分布式系统中的数据一致问题 线程池的核心原理 设计秒杀系统

  • 区块链学习之分布式系统核心问题(四)

    区块链系统首先是一个分布式系统,分布式系统的核心问题包括一致性、共识 一致性问题 一致性问题是分布式领域最为基础也...

  • zk(2)-- 分布式事务

    1.分布式事务一致性 1.1.分布式一致性 在分布式系统中,为了保证数据的高可用,通常我们会将数据保留多个副本(r...

  • GFS的分布式哲学:HDFS的一致性成就,归功于我的失败……

    截取了本人新书《分布式系统与一致性》中的一章,发在dbaplus上(GFS的分布式哲学:HDFS的一致性成就,归功...

  • 图解比原链Tensority算法:如何让POW做到人工智能友好

    共识算法说起 区块链系统首先是分布式系统,而一致性是分布式系统的基础问题,要保证系统满足不同程度的一致性,则就要用...

  • 分布式锁

    1.分布式CAP原则 在一个分布式系统中,Consistency(一致性)、 Availability(可用性)、...

网友评论

      本文标题:分布式系统中的一致性

      本文链接:https://www.haomeiwen.com/subject/wndaxftx.html