我正在运行一个带有2个应用程序的集群(节点1和节点2)。 App A和App B。
所以我希望App B将消息发送到它收到的同一节点。我们如何实现这一目标?
代码/配置。怎么样?
提前致谢。
答案 0 :(得分:1)
您可以根据要将其传递到的节点设置邮件的String属性。
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();
}
}