分布式系统的数据一致性

来源:互联网 发布:水利工程造价软件 编辑:程序博客网 时间:2024/04/25 09:02

1, 什么是分布式系统的数据一致性

在分布式应用系统中,同一份数据保存在各个子系统中,当其中一份数据发生变化的时候,需要确保其他系统中的相同数据保持一致。即关联数据逻辑关系是否正确和完整,数据的一致性模型就是存储系统与数据使用者的一个约定,遵守这个约定,使用者就能得到预期的结果。

2,数据一致性的模型

常用的数据一致性模型有严格一致性,顺序一致性,因果一致性,最终一致性等等。其中严格一致性的约定为读出的数据需要时最近更新的,这个很难做到,目前比较普遍的模型为最终一致性,最终一致性的约定是,不要求读出的数据马上为最新的,但是过了某个时间窗口之后,读出的数据为最新的,

3,数据一致性的常用的应用场景

noSql的数据更新,MQ,

4,数据一致性会遇到哪些问题,

如果数据同步的过程中没发送成功或者信息丢失怎么办,如何确保发送信息的顺序?如果发送了重复发送,如何确保幂等?

如果A向B发送消息,如何确保一定发送到呢?

   这个可以参考tcp 建立连接的原理,A发送一条询问消息给B,我发送了消息123,你收到了么?

如果B收到了,则给A一个反馈,我收到了你的消息,这是A可以将本地的消息删除,如果A没有收到B的回复确认,那么A会一直重复发送,这是B端需要保持幂等性,

    如果A发送了3条消息给B,有几种可能的情况发生?

 (1)B接受到全部数据,然后执行,

  (2)B接收到了一部分数据,向A发送回执,说信息未发送完成,请继续发送,

 除了确保信息发送的可靠性之外还要 确保发送的顺序性,就是这个可以在发送的消息中添加一个序列号。

5,proxs 算法是什么

  就是集群中的每个server都收到了一些操作命令,如果每个server都能确保这些命令的顺序执行,那么最终的结果就是一致的,proxs算法就是提出了一个约定来保证各个操作时顺序执行的,在执行这些命令之前,对这些命令进行排序,排序由各个server投票产生。

0 0
原创粉丝点击