微服务背景下如何保证分布式系统数据的一致性

基本概念:

CAP理论:

  • C:Consistency,一致性,所有数据变动都是同步的。

  • A:Availability,可用性,即在可以接受的时间范围内正确地响应用户请求。

  • P:Partition tolerance,分区容错性,即某节点或网络分区故障时,系统仍能够提供满足一致性和可用性的服务。

BASE理论:

BASE 理论主要是解决 CAP 理论中分布式系统的可用性和一致性不可兼得的问题。BASE 理论包含以下三个要素:

  • BA:Basically Available,基本可用。

  • S:Soft State,软状态,状态可以有一段时间不同步。

  • E:Eventually Consistent,最终一致,最终数据是一致的就可以了,而不是时时保持强一致。

传统的解决分布式数据一致性的方案采取的是2PC模型,即二阶段提交,在这个模型里面,有三个角色:

  • AP:Application,应用程序,业务层。

  • RM:Resource Manager,资源管理器,关系型数据库或支持 XA 接口(XA 规范是 X/Open 组织定义的分布式事务规范)的组件。

  • TM: Transaction Manager ,事务管理器,负责各个 RM 的提交和回滚。

简单来说就是第一阶段是对分布式事务进行准备,都准备好以后,进入第二阶段,进行提交或者回滚。举例来说就是首先让所有运动员都在跑道上准备好,大家都准备好了之后,大家一起跑。

但是2PC的弊端就是容易出现资源死锁的现象,比如一个事务需要依赖于另一个事务,二在2PC模型中,必须所有事务一起提交后才能进行下一步操作,这种现象会随着项目模块的复杂度增加而频繁出现。

微服务框架下,分布式数据一致性的方案也就应运而生,基本思路也是2PC模型,但是为了解决事务依赖的问题,引入了可靠消息系统,本质上就是消息组件MQ的使用,第三方插件的介入,成为上下游系统之间的枢纽,MQ组件中接收上游的消息,下游系统监控着MQ,根据MQ中对应的状态来决定下游系统的事务执行。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值