2

複数のマシンで同じサーバー側アプリケーションを実行しています。

すべてのアプリケーションに変更をプッシュする方法を提供したいと考えています。オブジェクト自体の状態/プロパティの変更に興味があり、ファイルの複製などにはあまり興味がありません。

そこで、いくつかのプロパティを変更し、その変更が各アプリケーションの状態に影響を与えるようにする管理コンソールを想定しています。

私は現在、信頼できるマルチキャスト通信のためのツールキットであるJGroupsを調べています。この場合、各アプリケーションは同じマルチキャスト グループをリッスンし、管理コンソールはグループに変更を送信します。

他に利用可能なソリューション/テクニックはありますか?

4

4 に答える 4

5

corba、rmi など、多くの手法が存在します。ただし、中央サーバーのない完全分散システムが必要な場合は、個人的にお勧めしJGroupsます。

中央サーバーがある場合は、次のいずれかを行うことができます

  • サーバーが変更をすべてのクライアントにプッシュするようにします。サーバーは、直接、またはクライアントに自分自身を登録させることによって、すべてのクライアントを認識している必要があります。
  • クライアントがサーバーをポーリングできるようにします。
于 2011-02-25T12:54:18.263 に答える
3

その他の単純なソリューションには、中央データベースまたは中央ファイルのポーリングが含まれる場合があります。

簡単な Google 検索が表示されます: http://www.hazelcast.com/product.jsp。これは有望に見えますが、私はそれを経験していません。

于 2011-02-25T12:50:44.280 に答える
3

より複雑なシナリオでは、テラコッタを十分にお勧めできません。基本的に、terracotta はヒープの一部をネットワークに分散します。つまり、アプリケーションはヒープの一部を共有します。共有ヒープ内の 1 つのアプリによって行われた変更は、ヒープを共有している他のアプリケーションに表示されます。主な欠点は、terracotta がハブとスポークの設計であるため、専用のサーバーが必要なことです。

于 2011-02-25T13:17:57.513 に答える
2

Hadoop プロジェクトの Apache ZooKeeper も興味深いかもしれません。私はそれを経験したことはありませんが、ウェブページから、階層的なデータモデルを提供していると結論付けています。変更に関係する各アプリケーションは、特定のノードの変更を監視し、変更に応じて動作できます。

http://zookeeper.apache.org/doc/trunk/index.html

于 2011-02-25T13:07:52.580 に答える