请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

mq问题

老师,从mq中取数据的时候,如果因为网络问题,同一个数据接收了两次这个是有可能的吧,对于判断重复问题,虽然我知道要加唯一值来处理,但是具体的判断重复实现,老师能讲一下吗

正在回答

1回答

若鱼1919 2018-05-02 09:29:36

消息出队以后的处理必须要做幂等处理,防止消息重复消费。比如:收到退款的消息给用户退款,那么在执行退款的操作之前首先要判断订单的状态是不是已经退款了,如果已经退了就不需要再退一次。程序需要保证,同一笔订单无论执行多少次退款的操作,只有一笔能退成功,这就是所谓的幂等性。

0 回复 有任何疑惑可以回复我~
  • 提问者 qq_红_14 #1
    老师,那我是否可以通过在redis中添加唯一值,mq的消息根据redis值处理,来保证幂等性呢?
    回复 有任何疑惑可以回复我~ 2018-05-02 18:19:07
  • 若鱼1919 回复 提问者 qq_红_14 #2
    当然可以 同时你要考虑如果消息出队 但是操作失败的时候要把Redis的标志清空
    回复 有任何疑惑可以回复我~ 2018-05-03 08:31:04
  • 提问者 qq_红_14 回复 若鱼1919 #3
    老师,往mq发信息的时候的幂等性,是由mq自己控制的吗?
    回复 有任何疑惑可以回复我~ 2018-05-05 10:33:38
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信