打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
分布式架构之Consistency(一致性、强一致性,弱一致性,顺序一致性,最终一致性)

一致性(Consistency)

是指多副本(Replications)问题中的数据一致性。可以分为强一致性、顺序一致性与弱一致性。

强一致性(Strict Consistency)

系统中的某个数据被成功更新后,后续任何对该数据的读取操作都将得到更新后的值;

也称为:原子一致性(Atomic Consistency)线性一致性(Linearizable Consistency)

两个要求:

  • 任何一次读都能读到某个数据的最近一次写的数据。
  • 系统中的所有进程,看到的操作顺序,都和全局时钟下的顺序一致。

简言之,在任意时刻,所有节点中的数据是一样的。

例如,对于关系型数据库,要求更新过的数据能被后续的访问都能看到,这是强一致性。

总结:

  • 一个集群需要对外部提供强一致性,所以只要集群内部某一台服务器的数据发生了改变,那么就需要等待集群内其他服务器的数据同步完成后,才能正常的对外提供服务。
  • 保证了强一致性,务必会损耗高可用性。

顺序一致性(Sequential Consistency)

两个要求:

  • 任何一次读都能读到某个数据的最近一次写的数据。
  • 系统的所有进程的顺序一致,而且是合理的。即不需要和全局时钟下的顺序一致,错的话一起错,对的话一起对。

弱一致性

系统中的某个数据被更新后,后续对该数据的读取操作可能得到更新后的值,也可能是更改前的值。

但即使过了“不一致时间窗口”这段时间后,后续对该数据的读取也不一定是最新之;

所以说,可以理解为数据更新后,如果能容忍后续的访问只能访问到部分或者全部访问不到,则是弱一致性。

最终一致性

  • 是弱一致性的特殊形式,存储系统保证在没有新的更新的条件下,最终所有的访问都是最后更新的值。
  • 不保证在任意时刻任意节点上的同一份数据都是相同的,但是随着时间的迁移,不同节点上的同一份数据总是在向趋同的方向变化。
  • 简单说,就是在一段时间后,节点间的数据会最终达到一致状态。

弱一致性与最终一致性区别

弱一致性即使过了不一致时间窗口,后续的读取也不一定能保证一致,而最终一致过了不一致窗口后,后续的读取一定一致,才能说清楚弱一致和最终一致的区别

总结

来源:https://www.icode9.com/content-4-841851.html
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
强一致性、顺序一致性、弱一致性和共识
高并发架构系列:详解分布式一致性ACID、CAP、BASE,以及区别
说透分布式事务
分布式理论(二)
ACID, BASE和CAP(转)
系统架构设计理论与原则、负载均衡及高可用系统设计速记
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服