「CONSUMED_BUT_FILTERED表示消息已经投递,但是已经被过滤掉了」。例如producer发的是topicA,tagA,但是consumer订阅的却是topicA,tagB。 「CONSUMED_BUT_FILTERED(消息已经被投递但被过滤)是怎么发生的呢?」 这个就不得不提到RocketMQ中的一个概念,「消息消费要满足订阅关系一致性,即一个consumerGroup中的所有消费者订...
「CONSUMED_BUT_FILTERED表示消息已经投递,但是已经被过滤掉了」。例如producer发的是topicA,tagA,但是consumer订阅的却是topicA,tagB。 「CONSUMED_BUT_FILTERED(消息已经被投递但被过滤)是怎么发生的呢?」 这个就不得不提到RocketMQ中的一个概念,「消息消费要满足订阅关系一致性,即一个consumerGroup中的所有消费者订...
例如producer发的是topicA,tagA,但是consumer订阅的却是topicA,tagB。 「CONSUMED_BUT_FILTERED(消息已经被投递但被过滤)是怎么发生的呢?」 这个就不得不提到RocketMQ中的一个概念,「消息消费要满足订阅关系一致性,即一个consumerGroup中的所有消费者订阅的topic和tag必须保持一致,不然就会造成消息丢失」。 如下图场...
CONSUMED_BUT_FILTERED :消息已经被投递且被过滤 比如,发布端发布消息topicA,tagA,订阅端订阅topicA,tagB, tagA的消息就被集群消费的消费者忽略掉了 NOT_CONSUME_YET :消息未被投递 有可能消息发生了堆积,还未被消费;也有可能消费线程hang住了,导致消费线程迟迟没有返回。
最近做了一个java项目,遇到一个MQ得问题,生产者已经发送,但是消费者却提示CONSUMED_BUT_FILTERED(消费...
RocketMQ分为同步刷盘和异步刷盘两种方式,默认的是异步刷盘,就有可能导致消息还未刷到硬盘上就丢失了,可以通过设置为同步刷盘的方式来保证消息可靠性,这样即使MQ挂了,恢复的时候也可以从磁盘中去恢复消息。 虽然我们可以通过配置的方式来达到MQ本身高可用的目的,但是都对性能有损耗,怎样配置需要根据业务做出权衡。
投递到q0的msg-1和msg-3只有msg-1能被正常消费,而msg-3则是CONSUMED_BUT_FILTERED。因为msg-3被投递到q0,但是consumer1不消费tagb的消息导致消息被过滤,造成消息丢失。 同理msg-2这条消息也会丢失。 「注意,还有一个非常重要的点」! 虽然消息消费失败了,但是消息的offset还会正常提交,即 「消息消费失败了,...
综上所述,解决RocketMQ消息不自动消费的问题需要从多个角度进行排查和分析。通过上述步骤,您应该能够找到...
问:RocketMQ消费者订阅了tag,但却收不到消息无法消费,并且根据 msgid 去查询,发现这条消息的状态为 CONSUMED_BUT_FILTERED,那这是为什么? 答:在RocketMQ中,一个消费组能同时订阅多个 tag,但一个消费组的不同消费者不能分开订阅不同的tag,即同一个消费组的订阅关系必须保持一样。例如:常见错误使用方式同一个项...
2.CONSUMED 消息已经被投递, 订阅端返回ReconsumerLater,或者返回NULL,或者抛出异常,消息都会走重试流程,消息投递状态都是CONSUMED。 3.CONSUMED_BUT_FILTERED 消息已经被投递且被过滤, 比如,发布端发布消息topicA,tagA,订阅端订阅topicA,tagB 4.NOT_CONSUME_YET ...