0
我正在运行2个应用程序的群集(节点1 &节点2)。应用程序A和应用程序B.是否可以附加节点ID与JMS消息?
- 应用A将消息发送到JMS队列Q(这将跨越节点1 & 2被分配)。
- 应用程序B将侦听队列,处理并发送消息回Q(这也将被分发)。
所以我想应用B发送消息给同一个节点,在它receives.How才能实现这一目标?
代码/配置。怎么样 ?
在此先感谢。
我正在运行2个应用程序的群集(节点1 &节点2)。应用程序A和应用程序B.是否可以附加节点ID与JMS消息?
所以我想应用B发送消息给同一个节点,在它receives.How才能实现这一目标?
代码/配置。怎么样 ?
在此先感谢。
您可以在消息上设置字符串属性,具体取决于您要将其传送到的节点。
TextMessage textmsg1 = qs.createTextMessage();
textmsg1.setStringProperty("SentToNode","Node1");
(如果传送每一封邮件到两个节点,那么你可以简单地appB的消息发送给两个节点,这使得没有任何意义,从而忽略这种情况下)。
现在在接收端(您的应用程序B)正在监听此队列,您可以检索此属性并采取适当的操作。
@Override
public void onMessage(Message message) {
try {
count++;
TextMessage msg = (TextMessage) message;
System.out.println("Message Received " + msg.getText());
System.out.println("Message received from " + msg.getStringProperty("SentToNode"));
//now you can send the message to that node
} catch (JMSException e) {
e.printStackTrace();
}
}
而且也看到了这个消息监听器容器CONFIGS:http://stackoverflow.com/questions/12820306/how-to-inject-a-message-selector-to-message-listener-bean-在-JMS-弹簧INTEGRAT – united