シングルトンオブジェクトをクラスタ環境にリファクタリングする最良の方法は何ですか?クラスタ環境のシングルトン
シングルトンを使用して、データベースからカスタム情報をキャッシュします。そのはほとんどがですが、特定のイベントが発生したときに更新されます。
ここでは、アプリケーションをクラスタ環境に展開する必要があります。定義によって、各JVMは独自のSingletonインスタンスを持ちます。したがって、リフレッシュ・イベントが単一のノードで発生し、そのキャッシュがリフレッシュされるときに、キャッシュがJVMの間で同期していない可能性があります。
キャッシュを同期させるにはどのような方法が最適ですか?
ありがとうございました。
編集:キャッシュは、主に自動補完リスト(パフォーマンス上の理由)をUIに提供するために使用され、Websphereを使用します。だからWebsphere関連のヒントは大歓迎です。
2について詳しく説明できますか?あなたはJMS pub/subscribeモデルを意味しますか? – lud0h
はいソリューション2は基本的に、個々のキャッシュインスタンスの変更をブロードキャストするためにpub/subメカニズムを使用する方法です。それぞれのキャッシュによってサブスクライブされているアプリケーションサーバー上で実行されているJMSトピックを作成する必要があります。そのデータが変更されると、トピックにメッセージを公開する必要があります。各加入者はこのメッセージを受信し、それに応じてローカルキャッシュを更新する。 – pjp
あなたのデータが非常に頻繁に変更されない場合、私はオプション1に行きます。私は、このアプローチを使用して参照データを更新するいくつかのシステムで作業しました。 30分おきにキャッシュをリフレッシュしていたと思います。選択した更新間隔は、参照データの使用方法に基づいて決まります。 – pjp