私は分散アプリケーションの開発に着手しましたが、大きなジレンマがあります。私たちは、使いやすく、以下の機能を備えた通信ライブラリが必要になります。分散アプリケーションの通信ライブラリの選択
- 信頼性の高い通信
- グループ/チャンネル
- ユニキャスト
- マルチキャスト
- 自動検出
- セキュリティをサポート複数のプログラミング言語で
- 複数のopでサポートeratingシステム
- 地理的分布を支援する
プラスで、このアプリケーションについていくつかの単語
この分散型プロジェクトの背後にある主なアイデアは、フロントエンド、バックエンド(処理アプリケーション)とエージェントの数百を持っていることです一部のデータセンターからデータを収集します。エージェントとバックエンド間の通信はできるだけシンプルにする必要があります。設定をプッシュするか、エージェントからリアルタイムデータを取得する必要があります。エージェントとバックエンドの間の輸送の最小限のセキュリティが必要です。また、バックエンドクラスタのライブに新しいノードを追加/削除する必要があります。バックエンドクラスタのノード数が変化している場合、エージェントは負荷を再分散する必要があります(おそらく、これはバックエンドによってフィルタリングによって行われるべきです)。通常(エージェントとバックエンドの間の)メッセージは1500バイトを超えませんが、時には大きなパケットを送信できる必要があります(良い断片化管理は必須です)。
- JGroupsの
- スプレッド
- openpgm
- zeromq
- Hazelcast
あなたはクラスタリングアプリケーションの開発経験をお持ちの場合は、聞かせてください。私たちは今まで見つけたもの
私は上記のフレームワークのどれが私のプロジェクトに適していますか?また、私のプロジェクトに適した他の無料のライブラリを知っていて、上にリストされていないライブラリがあれば教えてください!
詳細については、私のブログの投稿http://www.randombugs.com/cluster/choosing-communication-library-distributed-application.htmlを参照してください、ここでstackoverflowでコメントしてください。 – Sacx
Akka http://akka.io/をご覧ください。あなたが探しているほとんどの機能があります。 –
AkkaにはC++バインディングがありません。 – Sacx