请稍等 ...
×

采纳答案成功!

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

老师您有说到重回队列会有一些小问题,请问下会有什么问题呢?

我个人的想法是

1.可能导致消息堆积

2.或者您说消费端进行nack几次才会进行ack,于是requeue需要消费端进行记录次数操作增加了复杂性?

正在回答 回答被采纳积分+3

1回答

阿神 2018-08-05 11:41:01

hi,小伙伴,重回队列,就是消息消费失败然后重新回到队列的尾部,消费者后续还会监听到这个消息,假设你队列里只有一条消息,取出来消费,消费失败后重回队列(这就是个循环呀)所以很少去做重回队列,一般都是如果消息消费失败,我们设置延迟消息,然后指定时间去处理即可!因为重回队列不好把控哦

0 回复 有任何疑惑可以回复我~
  • 提问者 慕斯7071380 #1
    噫,谢谢老师回复。大概懂您的意思了,意思是如果服务端不能处理那么会将这条消息发送至延迟消息队列过一段时间进行消费这样子么。
    对了,想问下nack跟reject都什么区别吗···感觉都是拒绝
    回复 有任何疑惑可以回复我~ 2018-08-05 12:05:17
  • 阿神 回复 提问者 慕斯7071380 #2
    不是将这条消息发送到延迟队列,而是还会回到原来的队列中去,排到尾部,然后消费端继续消费。如果想做延迟队列这种,需要延迟队列插件自己实现,一般工作中不会设置重回队列这个属性,我们都是自己去做补偿或者投递到延迟队列里的,nack表示服务器(mq broker)没有收到消费端的应答,可以使用api调用, reject表示直接拒绝,二者的区别是:nack需要配合死信队列去使用,这样nack的消息会被录用到死信队列了。而reject表示直接拒绝,这个消息我不去处理了的意思
    回复 有任何疑惑可以回复我~ 2018-08-18 22:11:06
  • 提问者 慕斯7071380 回复 阿神 #3
    噫,懂了,谢谢老师您嘞~
    回复 有任何疑惑可以回复我~ 2018-08-24 11:34:50
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信