分布式系统的数据一致性

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值