GitHub user cserwen added a comment to the discussion: Rocketmq tag过滤机制

cq 只存储了消息 tag 的 hashcode 信息,没有具体的 tag 值,如果想要在服务端精确过滤,必须要decode 
msg,这样就会增加服务端的计算压力,同时也会增加 pullMessage 的时延,

因为客户端本身就要 decode 消息,因此将精确过滤放在客户端可以很好的利用资源,broker 负责快速初筛,消费者进行最终确认。这样可以避免 broker 
端的计算瓶颈,同时让消费者在相对空闲时完成过滤操作。

你说的精确过滤,服务端也是支持的,不过要用 SQL 的方式去过滤,可以参考 
ExpressionMessageFilter#isMatchedByCommitLog() 方法

GitHub link: 
https://github.com/apache/rocketmq/discussions/8219#discussioncomment-9612116

----
This is an automatically sent email for dev@rocketmq.apache.org.
To unsubscribe, please send an email to: dev-unsubscr...@rocketmq.apache.org

Reply via email to