分布式事务解决方案(本地事件+mq)

博客介绍了分布式事务消息常见解决方案,如两阶段提交、补偿事务等。以新用户注册新增积分记录为例,阐述两阶段提交原理及需考虑的场景。还对比了事件加队列与2PC的优缺点,前者吞吐量大、容错性好,但编程复杂。

分布式事务消息

常见解决方案有:两阶段提交(2PC)、补偿事务(TCC)、本地事件表加消息队列、mq事务消息等。

两阶段提交原理:

在这里插入图片描述

最终一致性解决方案

以新用户注册新增一条积分记录为例,所需考虑的场景:
1、保存用户记录后没来得及想消息队列发送消息就宕机了,如何保证mq消息发送?
2、积分系统收到消息后没来得及保存记录就宕机了,如何保证系统重启后不丢失积分记录?

需要在db1和db2中分别建立user表、event表和point表、event表。
时间类型有新增用户、新增积分。
事件进度有new、published、processed.

事件加队列的方式实际上将事务变成了异步执行,与2PC这种同步事务相比,优点如下:
1、吞吐量大,因为不需要等待其他数据源相应
2、容错性好,比如用户系统发布事件时,积分系统甚至可以挂掉。
缺点也很明显就是编程比较复杂。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值