分布式消息队列RocketMQ
四、 RocketMQ应用
4.6)消息过滤
消息者在进行消息订阅时,除了可以指定要订阅消息的Topic外,还可以对指定Topic中的消息根据指定条件进行过滤,即可以订阅比Topic更加细粒度的消息类型。
对于指定Topic消息的过滤有两种过滤方式:Tag过滤与SQL过滤。
4.6.1)Tag过滤
通过consumer的subscribe()方法指定要订阅消息的Tag。
如果订阅多个Tag的消息,Tag间使用或运算 符(双竖线||)连接,如下:
DefaultMQPushConsumer consumer = new
DefaultMQPushConsumer("CID_EXAMPLE");
consumer.subscribe("TOPIC", "TAGA || TAGB || TAGC");
4.6.2)SQL过滤
SQL过滤是一种通过特定表达式对事先埋入到消息中的用户属性进行筛选过滤的方式。
通过SQL过滤, 可以实现对消息的复杂过滤;不过只有使用PUSH模式的消费者才能使用SQL过滤。
SQL过滤表达式中支持多种常量类型与运算符。
4.6.2.1)支持的常量类型
数值:比如:123,3.1415
字符:必须