0

RocketMQ 支持按标签过滤,这里我深挖一下 Broker 的源码。经纪人似乎做了以下比较: subscriptionData.getCodeSet().contains(tagsCode.intValue());org.apache.rocketmq.broker.filter.ExpressionMessageFilter#isMatchedByConsumeQueue. 所以我想知道两个标签是否有可能具有相同的哈希码,如果发生这种情况,一些味精将不会被过滤?我找不到任何代码来比较 Broker 中的实际标签字符串,我错过了什么吗?

PS:我的RocketMQ版本是:4.2.0-incubating-SNAPSHOT

4

1 回答 1

0

int 的哈希码是它自己(source),所以它的哈希码tagsCode.intValue()就是它自己。因此,只要每个代码首先具有唯一的 int 值,就不会发生 hashcode 冲突。

于 2018-08-21T19:18:43.250 回答