分布式事务协议

目录

一、ACID

二、CAP

三、BASE

四、分布式事务协议

1、2PC

2、3PC

3、TCC

4、本地消息表

5、MQ事务

6、saga


一、ACID

传统的事务属性

(1)原子性

(2)一致性

(3)隔离性

(4)持久性

  Mysql的事务保证

二、CAP

一致性:数据在多个副本直接保持一致性,一个副本的更新成功,其他副本也必须更新成功,此特性要求客户端可获取到最新的数据,

可用性:系统在合理时间内返回

分区容忍性:在分布式网络遇到分区故障时,依然可以提供满足一致性和可用性的服务

三者不可兼得。并不是说整个系统都只能选择一种CP or AP,根据不同的业务特定选择

三、BASE

基本可用、软状态、最终一致性

采用合适的方式最终一致

 

四、分布式事务协议

1、2PC

优点:实现简单、原理简单

缺点:数据不一致,脑裂、单点问题、同步阻塞

2、3PC

优点:减小了参与者阻塞的范围;出现单点问题后,仍然可以提交

缺点:数据不一致

3、TCC

try-confirm-cancel

  • 试着预留资源
  • 全部成功则confirm
  • 预留失败,则cancel

4、本地消息表

  • 业务A写业务的同时维护一张消息表(这个操作是事务的);
  • 操作成功之后发送到消息中间件,
  • 被动方B消费消息,之后将结果通过消息中间件,业务A消费消息。

5、MQ事务

利用消息中间件的事务性,业务不再维护消息表

6、saga

Saga 事务基本协议如下:

  • 每个 Saga 事务由一系列幂等的有序子事务(sub-transaction) Ti 组成。
  • 每个 Ti 都有对应的幂等补偿动作 Ci,补偿动作用于撤销 Ti 造成的结果。

https://maimai.cn/article/detail?fid=1122653559&efid=jewbG8cL4Wikr2CJ3r_fAw

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值