私たちは、マルチクラスタ環境でprodにデプロイされたアプリケーションを、ロードバランサとともに使用しています。Jms Publishサブスクライバモデルに関するアドバイス
アプリケーションでは、パフォーマンスを向上させるためにキャッシュを保持します。
問題は、マルチクラスタ環境では、シングルトンは実際にシングルトンではないため、あるノードでキャッシュをクリアすると、他のノードには自分のキャッシュをクリーンアップするよう通知されません。
現在のところ、ノードは2つしかありませんが、今後は追加することができます。だから私の最初の考えは、モデルpublish/subscriberでJMSキューを実装することでした。ノードがキャッシュをクリアする必要があると、キューにメッセージを送信し、すべてのノード(自分自身)にキャッシュをクリアするように自動的に通知する必要があります。私はactivemqでチェックしましたが、私が見た限りでは、パブリッシャがメッセージを送信すると、サブスクライバはメッセージを受け取るためにgetMessage()を行う必要があります。それは、そこにメッセージがあるかどうかを確認するために待ち行列を引き続きすべきであることを意味し、すべての加入者がメッセージを読んだ後にメッセージが削除されるようにする必要があります。
activemqやその他のjms実装が私たちのニーズに合ったものを提供すれば、そのようなことを実装する方法についていくつかのアドバイスを得るために書いています。
ありがとう
よろしくお願い致します。 – fgonzalez