分布式事务

随着网站的不断扩大,系统架构由传统模式-负载均衡-分布式微服务的架构进行演变。

传统数据库事务是由数据库锁来确保事务的ACID特性。当数据库变成分布式时,就需要分布式事务来解决存在的问题

分布式事务的理论基础,CAP理论 (Consistency/一致性,Availability/可用性,Partition toleranc/分区容错性),一致性,可用性,分区容忍性。三者不可兼得,由于分布式系统天生占有分区容错性,又可用性是大多数系统的追求,这样就不能确保数据的 强一致性,但可以使用最终一致性来对数据的一致性进行保障。

BASE理论(Basically Available(基本可用)、Soft state(软状态)和Eventually consistent(最终一致性))是对CAP中一致性和可用性权衡的结果,其来源于对大规模互联网系统分布式实践的总结, 是基于CAP定理逐步演化而来的。BASE理论的核心思想是:即使无法做到强一致性,但每个应用都可以根据自身业务特点,采用适当的方式来使系统达到最终一致性

所以分布式系统的问题焦点在最终一致性的实现方式:

通过日志和消息实现最终一致性:

此方案的核心是将需要分布式处理的任务通过消息日志的方式来异步执行。消息日志可以存储到本地文本、数据库或消息队列,再通过业务规则自动或人工发起重试。人工重试更多的是应用于支付场景,通过对账系统对事后问题的处理。

消息日志方案的核心是保证服务接口的幂等性。

考虑到网络通讯失败、数据丢包等原因,如果接口不能保证幂等性,数据的唯一性将很难保证。

1.基于XA协议的两阶段三阶段提交 2PC 3PC

2.本地消息表

案例:转账操作(不同数据库A,B)

数据库A 添加消息表,在A进行扣款的同时将 B增加金额的数据插入到消息表(或者使用MQ),数据库B轮询A消息表,若发现新数据,执行扣减金额的操作

3.MQ

将业务操作 与 添加消息的操作 事务化,保证数据最终一致性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值