如何使用JMS队列将消息发送到特定的Receiver

Sma*_*ion 11 java jms java-ee hornetq

是否可以使用JMS队列(HornetQ)向特定接收器发送消息?

在众多接收器中,我希望接收器能够在Linux OS上运行某些消息.

每个建议都是适当的.

谢谢.

Dev*_*Dev 20

您可以使用Message.setObjectProperty(String,Object)设置消息属性,然后让您的消费者使用Session.createConsumer(Destination,String)选择他们感兴趣的消息.

发件人示例:

Message message = session.createMessage();
message.setObjectProperty("OS", "LINUX");
producer.send(message);
Run Code Online (Sandbox Code Playgroud)

接收器示例:

MessageConsumer consumer = session.createConsumer(destination, "OS = 'LINUX'");
//Use consumer to receive messages.
Run Code Online (Sandbox Code Playgroud)

示例中的接收器将忽略(它们将转到其他接收器)所有与选择器不匹配的消息.在这种情况下,此消费者将忽略"OS"属性不是"LINUX"的所有消息.