Alibaba Seata 学习日记(一致性)

Alibaba Seata 学习日记(一致性)

一致性可以分为强一致性与弱一致性。所谓强一致性,即复制是同步的,弱一致性,即复制是异步的。

强一致性

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

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

两个要求:

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

简言之,在任意时刻,所有节点中的数据是一样的。例如,对于关系型数据库,要求更新过的数据能被后续的访问都能看到,这是强一致性。

弱一致性

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

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

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

最终一致性

是弱一致性的特殊形式,存储系统保证在没有新的更新的条件下,最终所有的访问都是最后更新的值。

不保证在任意时刻任意节点上的同一份数据都是相同的,但是随着时间的迁移,不同节点上的同一份数据总是在向趋同的方向变化。

简单说,就是在一段时间后,节点间的数据会最终达到一致状态。

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

弱一致性即使过了不一致的时间窗口,后续的读取也不一定保证一致,而最终一致性到了不一致窗口后,后续的读取一定一致。

Base 理论
  • BA:Basic Available(基本可用)
    • 整个系统再某些不可抗力的情况下, 仍然能够保证"可用性",即一定时间内仍然能够返回一个明确的结果,只不过"基本可用"和"高可用"的区别是:
      • "一定时间"可以适当延长。如响应时间可以适当延长
      • 给部分用户返回一个降级页面,给部分用户直接返回一个降级页面,从而缓解服务器压力。但要注意,返回降级页面仍然是返回明确结果。
  • S: Soft State(柔性状态): 是指允许系统中的数据存在中间状态,并认为中间状态存在不会影响系统的整体可用性,即允许系统不同节点的数据副本之间进行数据同步的过程存在延时。
  • E: Eventual consistency (最终一致性): 同一数据的不同副本的状态,可以不需要实时一致,但一定要保证经过一定时间后仍然是一致的。

BASE 理论是对 CAP 中的一致性和可用性进行一个权衡的结果,理论的核心思想就是: 我们无法做到强一致,但每个应用都可以根据自身的业务特点,采用适当的方式来达到最终一致性(Eventual consistency)。

reference

https://www.bilibili.com/video/BV1uJ411h7px?from=search&seid=17886022887642019485

https://www.it235.com/%E9%AB%98%E7%BA%A7%E6%A1%86%E6%9E%B6/SpringCloudAlibaba/seata.html#%E4%BA%8B%E5%8A%A1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值