2 つのアプリケーションでクラスター (ノード 1 & ノード 2) を実行しています。アプリ A とアプリ B。
- アプリ A は JMS キュー Q にメッセージを送信します (ノード 1 と 2 に分散されます)。
- アプリ B はキューからリッスンし、メッセージを処理して Q に送り返します (これも配布されます)。
だから私はそれが受信したのと同じノードにメッセージを送信するApp Bが必要です.どうすればこれを達成できますか?
コード/構成。どのように ?
前もって感謝します。
2 つのアプリケーションでクラスター (ノード 1 & ノード 2) を実行しています。アプリ A とアプリ B。
だから私はそれが受信したのと同じノードにメッセージを送信するApp Bが必要です.どうすればこれを達成できますか?
コード/構成。どのように ?
前もって感謝します。
配信先のノードに応じて、メッセージに 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();
}
}