vlambda博客
学习文章列表

你应该知道的分布式事务之BASE理论

1.为什么BASE理论会出现?

在之前的博文中详解了分布式事务中的CAP理论,Consistency(一致性)、Availability(可用性) 和 Partition tolerance(分区容忍性)。但是我们知道只能三选二,由于互联网公司,分布式架构,必须要满足P也就是好分区容忍性。这就带来如下问题:

  1. 互联网公司toC的用户体验性是很重要的。

  2. 对于大量用户的APP,系统不可用,每秒都会失去很多用户。

所以,可用性也是必须满足的。但是分布式架构中的,数据一致性也是很重要的,如果数据一致性不能满足,数据就不可信。

基于以上原因,产生了BASE理论。

2.什么是BASE理论?

既然分布式事务强一致性不能满足,根据业务特点,最终数据达到一致也是可接受的。

BASE理论由一下组成:

Basically Available(基本可用)、Soft state(软状态)和Eventually consistent(最终一致性)。三个特性字母缩写组成。

  1. Basically Available(基本可用)

在分布式架构中,当出现故障时,系统基本可用,允许部分功能不可用,保证核心功能。

比如秒杀系统、服务降级。

  1. Soft state(软状态)

    软状态是相对于分布式系统的原子性而说的,一个事务允许出现中间状态,分布式架构中数据副本可以有数据延迟。

    比如支付宝和余额宝之间的转账的过程,支付宝转账100元到余额宝,中间状态可以有,转账中,而不是转账成功。

  2. Eventually consistent(最终一致性)

    CAP理论强调的是强一致性,BASE理论强调的是最终一致性,也就是弱一致性。

    允许我们存在数据延迟,存在中间状态,但是我们要保证在一定的时间内达到最终一致性,比如秒级。也就是有个容忍期限,这个可以根据业务形式、网络状况、系统架构不同而设计。


3.BASE理论一般如何实现?

一般通过MQ(消息),来完成最终一致性。RocketMQ前期的版本是支持分布式事务的,比如有预发消息,后期版本没有了。

    




    


推荐阅读: