分布式系统中容错问题以及Paxos 算法(一)

2018-11-08  本文已影响0人  日月神父

在客户端服务器系统中,每一台计算机都是一个节点,客户端希望通过网络操作服务器上的数据。在分布式系统中可能遇到的问题是:

消息丢失和损坏

多服务器和多客户端的情况下,由于网络的不确定性,可能导致不一致的状态

解决一致性的问题的方法:

1. 串行化命令

如果对于一组服务器,所有的节点按照相同的顺序执行一组命令,同样的数据,同样的算法得到的结果应该是相同的,也就是说这组节点是可以实现状态复制。
在系统中设计一个节点为串行化器,所有需要发送命令都发送到串行化器,然后由串行化器同步到其他服务器,保证相同的顺序;

2. 两段式提交

另外一种保证一致性的思路是,客户端向服务器提交请求或者数据的时候确保只有一个客户端在发送命令,完成这条命令之后,才接受其他的请求;也就是使用分布式锁;

  1. 客户端向所有的服务器请求锁
  2. if 客户端获取所有服务器的锁 then
   向每台服务发送命令,然后释放锁
   else 
       释放已经获取到的锁
       随机等待一段时间,重新获取锁
  end
屏幕快照 2018-11-08 17.15.47.png

本节结束,后来我们继续分析分布式一致性算法Paxos。

上一篇 下一篇

猜你喜欢

热点阅读