rocketmq支持两种方式的消息过滤。
1.tag过滤 (可以根据表达式来过滤tag)
consumer.subscribe("topic10", "*");
2.根据自定义属性进行过滤
consumer.subscribe("topic10", MessageSelector.bySql("age > 16"));
此时sql过滤遵循SQL92规范
注意:rocketmq默认是关闭了属性过滤,所以如果需要使用该功能,需要开启enablePropertyFilter的属性,将该属性置为true才可以。
使用示例:
producer
public class SyncProducer {
public static void main(String[] args) throws Exception{
//Instantiate with a producer group name
DefaultMQProducer producer = new DefaultMQProducer("producer_group_01");
//Specify name server addresses
producer.setNamesrvAddr("localhost:9876");
//Launch the instance
producer.start();
//Create a message instance, specifying topic, tag and message body.
Message msg = new Messag