RabbitMQ实现分布式事务方案:
1.生产者一定要把消息发送到MQ服务器中
- 生产者采用Confirm确认应答机制
- 如果发送到MQ服务器失败,采用重试机制
2.消费者能够正常消费MQ的消息
- 采用手动ack模式和重试机制,需要采用死信补偿机制,同时采用redis方式重复消费问题
3.采用补单机制
- 在创建一个补单消费者进行监听,如果订单创建后,最后又发送异常事务回滚,就需要将订单进行补偿
- 采用交换机路由健模式,补单和排单都采用相同的路由健
在rabbitmq服务单建立交换机 和 Queues
order_exchange_name :交换机
order_create_queue :补单序列
order_dic_queue :排单序列
对应代码如下: