分布式事务本地消息解决方案
2020-10-26 17:11:32 5 举报
分布式事务
作者其他创作
大纲/内容
插入消息表(订单id,状态(status)为待处理)
定时任务
消息表(已接收,已受理)
pull消息
存入消息表
分布式事务(本地消息表+mq+定时任务实现)
消费者
拉取表中状态为待处理的订单
读取已接收的消息
订单服务的状态变为已放款
执行积分发放,本地事务,将消息表改为已受理
1.订单服务的本地事务,订单状态修改为已放款。在消息表中插入数据。(本地事务)2.定时任务:读取消息表未处理的数据,然后发送到mq中。 修改消息表中的状态3.消费者线程,监听mq,拉取消息,存入到本地数据库中。4.定时任务读取消息表,处理消息表中的数据,然后修改消息表状态。1个本地事务。 1个消费者线程。 两个定时任务读取数据并且修改状态。
消息表(待处理,已发送)
用户/积分服务
MQ(kafka)
订单服务
修改事件状态
事务完成
只要该本地事务完成,则其他肯定能成功
定时将消息推送到mq中
0 条评论
下一页