如何让RabbitMQ按预期工作(死信与错误时重新入队)
我的RabbitMQ环境运行状况分享
嘿各位,我刚搭好一个简单的RabbitMQ环境,目前运行完全符合预期,给大家拆解下它的核心逻辑:
- 按消息类型分配独立队列:我做了消息路由的配置,不同类型的消息会被投递到对应的专属队列里,这样不同业务类型的消息不会混在一起,后续处理起来更清晰。
- 无消费者时消息永久留存:特意测试了下,如果某个队列暂时没有消费者在线,发过去的消息会一直存在队列里,不会被自动清理,完美契合我需要消息持久化的场景。
- 单消费者处理全队列消息:目前只部署了一个消费者实例,它会负责消费所有队列中的消息,以当前的业务量来看,这种单消费模式完全够用。
- 处理失败时通过
nack重入队列:遇到比如子消息先于父消息到达这类无法即时处理的情况时,我会调用nack方法把消息重新放回队列,等后续条件满足后再重新尝试消费,确保消息不会因为处理失败就丢失。
内容的提问来源于stack exchange,提问作者Loofer
相关产品推荐
相关产品推荐

