1

Amazon EC2 イメージにデプロイした Flex - Java - Spring Web アプリケーションを開発しました - すべてが見栄えがします。

ただし、同じ Tomcat コンテナ内ではなく、異なるマシン上にあるアプリケーションの複数のインスタンス間でユーザー リクエストを自動スケーリングおよび共有する必要があります。Amazon は負荷分散を管理し、アプリケーションは AMQ トピックを使用して、各インスタンス間で重要なアプリケーション レベルの変更を伝達します。

これらの通知の 1 つがプロパティである可能性があります。関連する Spring Bean に @Value アノテーションを使用して挿入するいくつかのプロパティ ファイルがあります。これらのプロパティ ファイルは、クラス パス ルート (classpath:properties/) のプロパティ フォルダにあります。

単一ノードで操作している場合、プロパティを更新するときは、setter を使用してメモリ内の値を更新し、FileInputStream と FileOutputStream を使用して関連するプロパティ ファイルに変更を書き戻します。これは簡単です。

ただし、明らかな問題は、自動スケーリングして新しいインスタンスを別のコンテナーで開始するとどうなるかということです。このアプリケーションは、デプロイされた (古い) バージョンのプロパティ ファイルを読み取り、最終的に他の並列ノードとは異なる動作をします。

可能であれば、データベース上でファイル ベースの構成を維持したいと思っています。DB ソリューションがここで最も一般的な回答になることはわかっていますが、提案をいただければ幸いです。

ありがとう

4

1 に答える 1

0

すでに JMS トピックを使用している限り、永続サブスクリプションを使用することをお勧めします。

サブスクライバーが非アクティブなときに発行されたメッセージを含め、トピックで発行されたすべてのメッセージをクライアントが受信する必要がある場合、クライアントは永続的な TopicSubscriber を使用します。JMS プロバイダーは、この永続サブスクリプションの記録を保持し、トピックのパブリッシャーからのすべてのメッセージが、この永続サブスクライバーによって確認されるか期限切れになるまで保持されることを保証します。

JMS API を見てみましょう: http://docs.oracle.com/javaee/6/api/javax/jms/Session.html#createDurableSubscriber(javax.jms.Topic , java.lang.String)

于 2012-08-29T16:29:03.390 に答える