美文网首页
commons模块阅读9:SubscriptionData

commons模块阅读9:SubscriptionData

作者: 赤子心_d709 | 来源:发表于2017-09-25 15:36 被阅读44次

说明

这个类是用来形容要订阅什么样的消息数据, 并不是真正的被订阅的数据
方法很简单,讲字段就够了

字段

    public final static String SUB_ALL = "*";//订阅所有
    private boolean classFilterMode = false;//Consumer端过滤相关的,用户自定义过滤类时才会用
    private String topic;
    private String subString;//订阅的标示,如expressionType默认TAG时,这里可以填写"A||B"
    private Set<String> tagsSet = new HashSet<String>();//topic下订阅的标签tag
    private Set<Integer> codeSet = new HashSet<Integer>();//每个tag对应的hashCode
    private long subVersion = System.currentTimeMillis();//版本,通过时间来实现

    /**
     * TAG或SQL92,参照ExpressionType类
     * 默认null也是当成TAG来处理,参照 ExpressionType#isTagType(java.lang.String)
     */
    private String expressionType;

    @JSONField(serialize = false)
    private String filterClassSource;//Consumer端过滤相关的,用户自定义过滤类时才会用

说明:

1.filterClassSource和classFilterMode是consumer端过滤相关的,这里不深入,可以参照refer大致了解
2.expressionType分为TAG或SQL92(默认null的处理方式也是TAG),关于SQL92的解析,处理并不详细展开,可以参照SelectorParser进行阅读

问题

这个类涉及一些消息过滤,目前还不是非常了解,了解完了再来这里补充

refer

https://fdx321.github.io/tags/RocketMQ/
《开发手册3.2.4》中

  4.4 Message Filter
  7.4 服务器消息过滤
  8 rocketmq消息过滤

相关文章

网友评论

      本文标题:commons模块阅读9:SubscriptionData

      本文链接:https://www.haomeiwen.com/subject/qgthextx.html