rocketMQ-6-2-半事务消息结合项目架构落地
2023-08-03 17:48:16 0 举报
rocketMQ半事务消息,结合项目架构落地。清晰看到spring、业务代码、MQ做了啥。
作者其他创作
大纲/内容
4.返回消费状态CONSUME_SUCCESS成功RECONSUME_LATER重试
TransactionMQProducer bean初始化 init()
TransactionMQProducer
6.查询本地事务状态checkLocalTransaction
RocketMQ
3.执行本地事务executeLocalTransaction
spring 启动
轮询
success
业务自定义并实现
rocketMQ半事务消息结合项目架构落地
生产者group
消费者group
RMQ_SYS_TRANS_HALF_TOPIC半消息队列
commit
生产者
定义生产者群组
MQ定义业务实现
开始
查询本地事务记录状态
SingleMessageListenerConcurrently消息监听器<MessageListener>
%DLQ%+consumerGroup死信队列
1.保存本地事务记录state=处理中
2.发送prepare事务消息sendMessageInTransaction
commitrollback
3.消费消息consumeMessage()最终执行步骤1定义的消费行为
消费者
bean初始化
%RETRY%+consumerGroup重试队列
MessageModel集群消费CLUSTERING
业务
unknow
spring实现
TransactionListener
5.定时任务轮询比较half、op的 offset
半消息事务(rocketMQ只分析数据流,没有拆分client\\broker去看,主要分析生产者、消费者如何使用)
执行业务方法,更新本地事务状态
查询
4.返回事务状态unknow未知commit提交rollback回滚
1.抽象init()子类实现addCinsumerAction添加消费行为
ConsumerEntry.start()
初始化监听器
2.DefaultMQPushConsumer消费者
SCHEDULE_TOPIC_延迟队列
MQ实现业务调用
CommandLineRunner启动消费者startConsumer()
回查
pull
REAL_TOPIC真实待消费队列
RMQ_SYS_TRANS_OP_HALF_TOPIC完结队列
MQ队列
RECONSUME_LATER
0 条评论
下一页