采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
我个人的想法是
1.可能导致消息堆积
2.或者您说消费端进行nack几次才会进行ack,于是requeue需要消费端进行记录次数操作增加了复杂性?
hi,小伙伴,重回队列,就是消息消费失败然后重新回到队列的尾部,消费者后续还会监听到这个消息,假设你队列里只有一条消息,取出来消费,消费失败后重回队列(这就是个循环呀)所以很少去做重回队列,一般都是如果消息消费失败,我们设置延迟消息,然后指定时间去处理即可!因为重回队列不好把控哦
噫,谢谢老师回复。大概懂您的意思了,意思是如果服务端不能处理那么会将这条消息发送至延迟消息队列过一段时间进行消费这样子么。 对了,想问下nack跟reject都什么区别吗···感觉都是拒绝
不是将这条消息发送到延迟队列,而是还会回到原来的队列中去,排到尾部,然后消费端继续消费。如果想做延迟队列这种,需要延迟队列插件自己实现,一般工作中不会设置重回队列这个属性,我们都是自己去做补偿或者投递到延迟队列里的,nack表示服务器(mq broker)没有收到消费端的应答,可以使用api调用, reject表示直接拒绝,二者的区别是:nack需要配合死信队列去使用,这样nack的消息会被录用到死信队列了。而reject表示直接拒绝,这个消息我不去处理了的意思
噫,懂了,谢谢老师您嘞~
登录后可查看更多问答,登录/注册
从0到1,全面深入掌握RabbitMQ消息中间件技术
1.4k 14
3.2k 13
1.8k 11
1.1k 9
1.4k 9