シンプルで軽量なメッセージパッシングを行うにはどのライブラリを使用できますか?

StackOverflow https://stackoverflow.com/questions/2614895

質問

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

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

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

  3. ライブラリは、任意の大きな文字列 (最大 3GB 以上を想定) を送受信できなければなりません。

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

このようなプロジェクトにはどのライブラリをお勧めしますか?自分で巻くこともできますが、時間の都合上、それは不可能だと思います。

役に立ちましたか?

解決

ØMQに、すなわちZeroMQます。

で見てみましょう

他のヒント

Apache Qpid サーバーおよびクライアント ライブラリを実装します。 高度なメッセージ キュー プロトコル. 。多くの機能があり、次の機能を使用できます。

  1. クライアントはブローカーの IP/ポートを指定して、ブローカーに匿名で接続できます
  2. トランスポートプロトコル TCP または SCTP です
  3. サポートがあります プル スタイルまたはプッシュ スタイルのセマンティクスを使用する大きなメッセージ
  4. その 速い
  5. 使用方法は簡単で、C++ で使用できます。

私は、分散システムのための 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 のです。それは今ベタ段階にあります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top