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

一致性(Consistency)

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

强一致性(Strict Consistency)

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

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

两个要求:

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

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

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

总结:

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

顺序一致性(Sequential Consistency)

两个要求:

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

弱一致性

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

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

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

最终一致性

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

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

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

总结

来源:https://www.icode9.com/content-4-841851.html

(0)

相关推荐

  • 为啥这么多公司用 ZooKeeper?它到底解决了什么问题?

    回复"669"获取独家整理的精选资料集 回复"加群"加入全国服务端高端社群「后端圈」 ZooKeeper 很流行,有个基本的疑问: ZooKeeper 是用来做 ...

  • 万字详解 Zookeeper 的五个核心知识点

    Java高级架构师2021-01-15 15:20:57 1 ZooKeeper简介 ZooKeeper 是一个开源的分布式协调框架,它的定位是为分布式应用提供一致性服务,是整个大数据体系的管理员.Z ...

  • 分布式系统的CAP定理

    CAP定理|理论 在一个分布式系统中, Consistency(数据一致性) Availability(服务可用性) Partition tolerance(分区容错性) 三者不可兼得,最多只能同时满 ...

  • 图解分布式之:最终一致性,一致只会迟到,但绝不缺席

    这篇文章我们继续聊分布式相关的内容. 提到分布式系统,就一定绕不开"一致性",这次我们说说:最终一致性. 最终一致性是现在大部分高可用的分布式系统的核心思路. 估计有人对最终一致性 ...

  • 分布式事务之解决方案(可靠消息最终一致性)

    5. 分布式事务解决方案之可靠消息最终一致性 5.1. 什么是可靠消息最终一致性事务 可靠消息最终一致性方案是指当事务发起执行完全本地事务后并发出一条消息,事务参与方(消息消费者)一定能够接收消息并处 ...

  • 微服务架构-利用事件驱动实现最终一致性

    事务一致性 首先,我们来回顾一下ACID原则: Atomicity:原子性,改变数据状态要么是一起完成,要么一起失败 Consistency:一致性,数据的状态是完整一致的 Isolation:隔离线 ...

  • 一文了解四种软件架构:Serverless架构、微服务架构、分布式架构、单体架构

    如果一个软件开发人员,不了解软件架构的演进,会制约技术的选型和开发人员的生存.晋升空间.这里我列举了目前主要的四种软件架构以及他们的优缺点,希望能够帮助软件开发人员拓展知识面. 一.单体架构 单体架构 ...

  • 【分布式】分布式架构

    一.前言 1.前言 转载:添加链接描述 上篇文章,我们聊到了分布式架构的演进过程,那本文我们就来聊一聊目前主流的分布式架构以及分布式架构中常见理论以及如何才能设计出高可用的分布式架构好了.分布式架构中 ...

  • 负载均衡 (Load balancing) 在分布式架构中是怎么玩起来的?

       正文    什么是负载均衡(Load balancing) 在网站创立初期,我们一般都使用单台机器对台提供集中式服务,但随着业务量越来越大,无论性能还是稳定性上都有了更大的挑战.这时候我们就会想 ...

  • 集中式架构与分布式架构,你了解多少?

    公众号回复'架构'获取架构师电子书及视频课程 什么是集中式 集中式架构就是将项目集中存储在中央服务器中,在工作的时候,大家只要自己电脑上操作,从同一个地方下载最新版本,然后开始工作,做完的工作再提交给 ...

  • 基于CRDT的数据最终一致性

    对于分布式系统的架构师来说,CAP 定理所描述的一致性和可用性是一个较大的挑战.网络远程跨机房是不可避免的,数据中心之间的高延迟总是导致数据中心之间在短时间内出现某种断开.因此,传统的分布式应用体系结 ...

  • 分布式架构心得

    分布式架构心得