JMS&ActiveMQ教程
基于JMS的消息传送
ActiveMQ与Spring集成
ActiveMQ与SpringBoot集成
ActiveMQ安全机制
ActiveMQ主从集群

ActiveMQ消息过滤

ActiveMQ提供了一种机制,可根据消息选择器中的标准来执行消息过滤,只接收符合过滤标准的消息;

生产者可在消息中放入特有的标志,而消费者使用基于这些特定的标志来接收消息

1、发送消息放入特殊标志:

message.setStringProperty(name, value);

2、在创建消息接受者的时候,指定接收消息使用基于特殊标志的消息选择器

MessageConsumer createConsumer(Destination destination, String messageSelector);

注:消息选择器是一个字符串,语法与数据库的SQL相似,相当于SQL语句where条件后面的内容。

案例演示

● 在消息发送者QueueSender类中,发送消息的时候为消息添加标记

//设置消息标记
message.setIntProperty("age",18);
message.setStringProperty("name","Tom");

● 在消息接受者QueueReceiver类中,取消息的时候加消息选择器过滤消息

//消费者
String messageSelector = "age = 18 and name='Tom'";
messageConsumer = session.createConsumer(destination,messageSelector);