RabbitMQ开发需要考虑到的问题

技术分享
191 0

前言:仅提供解决问题的思路具体可以按照自己的业务代码进行调整

需要使用消费失败处理

1.在消息重试几次后业务消息还是执行报错失败时,可以将失败消息发送到error.derect这个交换机中,在用交换机反送到队列,可以将错误进行人工处理等方法

2.我们可以在交易服务设置定时任务,定期查询订单支付状态。这样即便MQ通知失败,还可以利用定时任务作为兜底方案,确保订单支付状态的最终一致性

幂等性问题

1例如多次减少余额

2.多次删除(例如删除购物车,不影响)

3.可以使用流水表解决

比如创建一个mysql的流水表,在发送队列消息的时候插入到流水表中,下次插入时需要查询表中是否有记录,无记录才能插入,可以使用redis做记录不用mysql也可以

最后更新 2023-11-28
评论 ( 0 )
OωO
隐私评论