在发送JMS消息或发送到特定服务器之前,如何按消息类型进行过滤?

在发送JMS消息或发送到特定服务器之前,如何按消息类型进行过滤?,jms,activemq,Jms,Activemq,假设activemq是代理,有6台服务器连接了JMS侦听器 发送主题时,所有六台服务器都将使用这些消息 现在,我希望一个特定的服务器只使用消息,而不是使用选择器使用所有六个消息,并且在发送JMS之前应该对消息进行过滤 如何在JMS中定义选择器,以便特定服务器而不是所有服务器使用该主题。您需要JMS。发送前不需要过滤,但在接收时需要过滤。仅id为“serv_5”的服务器接收消息的示例: 制作人: ... Message message = session.createMessage(); mess

假设activemq是代理,有6台服务器连接了JMS侦听器

发送主题时,所有六台服务器都将使用这些消息

现在,我希望一个特定的服务器只使用消息,而不是使用选择器使用所有六个消息,并且在发送JMS之前应该对消息进行过滤

如何在JMS中定义选择器,以便特定服务器而不是所有服务器使用该主题。

您需要JMS。发送前不需要过滤,但在接收时需要过滤。仅id为“serv_5”的服务器接收消息的示例:

制作人:

...
Message message = session.createMessage();
message.setObjectProperty("server_id", "serv_5");
producer.send(message);
消费者(MDB):

@MessageDriven(mappedName="jms/YourQueue", activationConfig =  {
        @ActivationConfigProperty(propertyName = "acknowledgeMode",
                                  propertyValue = "Auto-acknowledge"),
        @ActivationConfigProperty(propertyName = "destinationType",
                                  propertyValue = "javax.jms.Queue"),
        @ActivationConfigProperty(
                                  propertyName="messageSelector",
                                  propertyValue="server_id = 'serv_5'")

    })
public class YourMessageBean implements MessageListener { ..