rocket mq 消息投递状态

本文解析了消息队列中消息消费的四种状态:NOT_ONLINE、CONSUMED、CONSUMED_BUT_FILTERED和NOT_CONSUME_YET,详细说明了每种状态的触发条件及解决办法,帮助读者理解消息队列的工作机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天发现消息生产者发出了消息,但是消费者没有消费,开始以为开了多个客户端被别人消费掉了,后来上控制台一看,消费者就一个,又去查看消息消费状态发现是CONSUMED_BUT_FILTERED,检查了下消费者配置,才发现消费者的topic 与生产者相同,但是tag配置的与生产者不一致导致此消息沒有消費者消费,最终消息状态就是CONSUMED_BUT_FILTERED。

 

1. NOT_ONLINE 订阅端不在线

2. CONSUMED 消息已经被投递

订阅端返回ReconsumerLater,或者返回NULL,或者抛出异常,消息都会走重试流程,消息投递状态都是CONSUMED。

3. CONSUMED_BUT_FILTERED 消息已经被投递且被过滤

比如,发布端发布消息topicA,tagA,订阅端订阅topicA,tagB, tagA的消息就被集群消费的消费者忽略掉了;

4. NOT_CONSUME_YET 消息未被投递

有可能消息发生了堆积,还未被消费;也有可能消费线程hang住了,导致消费线程迟迟没有返回。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值