11

分散ノード間の通信が必要なプロジェクトを開始します(プロジェクトはC ++です)。ノード間で非常に単純なメッセージ(基本的にはテキストの文字列のみ)を渡すための軽量のメッセージパッシングライブラリが必要です。ライブラリには、次の特性が必要です。

  1. 外部設定は必要ありません。コードですべてを稼働させる必要があります-ユーザーにパッケージのインストールや構成ファイル(接続するIPアドレスとポートのリスト以外)の編集を要求したくありません。

  2. ライブラリが使用する基盤となるプロトコルはTCPである必要があります(または、UDPの場合、ライブラリはメッセージの最終的な受信を保証する必要があります)。

  3. ライブラリは、任意の大きな文字列(最大3GB以上と考えてください)を送受信できる必要があります。

ライブラリは、セキュリティメカニズム、フォールトトレランス、または暗号化をサポートする必要はありません。高速で、シンプルで、使いやすいものである必要があります。MPIを検討しましたが、プロジェクトではユーザーのマシンでのセットアップが多すぎると結論付けました。

そのようなプロジェクトにはどのライブラリをお勧めしますか?私は自分で転がしますが、時間の制約のため、それは実現可能ではないと思います。

4

3 に答える 3

12

ØMQ、つまりZeroMQを見てください。

于 2010-04-10T21:19:56.393 に答える
2

Apache Qpidは、 Advanced MessageQueuingProtocol用のサーバーライブラリとクライアントライブラリを実装しています。それはあなたが以下を使うことができる多くの機能を持っています:

  1. クライアントは、ブローカーのIP /ポートを指定して、ブローカーに匿名で接続できます
  2. トランスポートプロトコルはTCPまたはSCTPです
  3. プルスタイルまたはプッシュスタイルのセマンティクスを使用した大きなメッセージをサポートします
  4. 速い_
  5. 使用法は単純で、C++で利用できます。
于 2010-04-10T21:05:16.470 に答える
0

分散システム にはnanomsgを使用しています。nanomsgは、Cで記述された、安定した、成熟した、十分にサポートされた軽量メッセージングプロトコルライブラリです。

それはあなたのすべての要件を満たします:

1)  There is no external setup required
2)  TCP underlying protocol is a primary one. 
3)  Message sizes supported by nanomsg are expressed as a 64-bit integer.
 (The default message size is 1024kB. This can be easily changed by API call to 
 support any size. The maximum size is limited only by available addressable memory!)

考慮すべき他の良いライブラリはnngです。今はベタの段階です。

于 2017-11-20T14:24:15.887 に答える