代码拉取完成,页面将自动刷新
本项目是基于rocketmq 事务消息实现的分布式事务解决方案demo
模拟场景:生成订单记录 -> RocketMQ-> 增加积分
一)事务消息发送及提交
如何保证事务消息在消费方正常消费? 本方案是利用 rocketmq 的两个特性 重试 和 死信队列 来协助消费端处理: 消费端消费失败后,MQ服务端会进行一定次数的重试; 重试后还是失败时消息会进入死信队列DLQ; 消费端需针对DLQ另外启动一个监听消费死信队列中的消息,可以对消息进行记录日志/持久化/预警/通过通知人工处理达保证消费方最终消费成功
【注意】因为消费失败会重试,要求消费方接口需要实现幂等性;
修改rocketmq-transactional
里namesrv-addr
的值为RocketMQ
的服务地址
运行distributed-transaction
的RocketMqTxApplication
测试的场景主要有3个:
流程如下:
http://localhost:11002/success
流程如下:
http://localhost:11002/produceError
流程如下:
http://localhost:11002/consumeError
注意:消费死信队列topic,必需把topic的perm改成6才能消费,默认是2
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。