2

私はこれがどのように機能するかを理解しようとしています:

  1. NIO/BIOを介したクライアントサーバー通信
  2. JGroupsを介したサーバー間通信 (レプリケーション、メンバーシップなど) (データのレプリケーションは面倒ですか?)

あなたの提案、そのようなアーキテクチャを使用することの長所/短所は何ですか?なぜjgroupsを選ぶのですか?代替手段はありますか?

ネイティブ NIO を使用するか、Mina や Netty などのライブラリを使用する必要がありますか?

アップデート

  1. REST はありません。Web サーバーではありません。ダイナモのような分散データベースを構築しています。
  2. activeMQ は JMS のようなもので、単一障害点があると思います。JGroups はその問題を解決しますよね?
4

1 に答える 1

1

クライアントとサーバー間の通信にバイナリ プロトコルを実装する理由を教えてください。私のアドバイスは、REST または WebServices を使用することです。独自のバイナリ プロトコルに比べて大きな利点があります。

サーバー間通信について... 選択肢はたくさんありますが、なぜ JGroups を選んだのでしょうか。これについて詳しく説明していただけますか?JMS などのメッセージング ソリューションを使用することをお勧めします。ActiveMQのような利用可能な実装がたくさんあります。サーバーを互いに適切に分離します。

共有構成情報、名前付けを維持する必要がある場合は、サーバー間で同期を分散する必要がある場合は、Apache ZooKeeperプロジェクトを参照してください。

サーバーが Amazon EC2 インスタンスにデプロイされている場合、最善の解決策はサーバー間通信に SQS や SNS サービスを使用することだと思います。

サーバーの状態のレプリケーションにTerracottaを使用できます(サーバーを可能な限りステートレスにすることをお勧めします)。

しかし、システムも要件も説明していないため、より具体的なアドバイスをするのは本当に難しいです。とても参考になると思います!

于 2011-02-12T23:09:18.373 に答える