2012-11-21 12 views
46

私は、主に監視とデータ収集(多くのプロデューサ、少数の消費者)を対象とした、かなり大規模な分散システムのメッセージング/トランスポート層としてZeroMQを使用しています。ZeroMQ vs Crossroads I/O

私が見る限り、同じコンセプトの2つの異なる実装が現在あります。 ZeroMQとCrossroads I/Oがあります。後者はZeroMQのフォーク(2012年?)です。

私は、どれを使い分けて、それらの違いについて疑問に思っていますが、これに関する多くの情報はまだ見つかりませんでした。例えば

  • は、彼らがワイヤ上の互換性がありますか?
  • これらのAPIは互換性がありますか。つまり、共通の基本APIを使用していますか。おそらく異なるアドオンを使用していますか?
  • どちらもZMTP(ZeroMQ Message Transport Protocol)のサポートを実装していますか?
  • 彼らは将来の発展に関する何らかの共通の理解を共有しているのか、それとも2つの別々の、可能な異なる方向に進むのでしょうか?
  • もう片方との賛否両論は何ですか?

基本的に、どのように一方を他方よりも優先しますか?

答えて

76

マーティンSustrikは、ナノと呼ばれる、Cには、新しいスタック上で開始されているので、Crossroads.ioはかなり死んでいる:https://github.com/250bpm/nanomsg

Crossroads.ioは、私の知る限りで、ZMTP/1.0もZMTP/2.0が、その実装されていませんプロトコルの独自のバージョン。

ナノにはプラガブルなトランスポートがあり、私たちはおそらくそのためにZMTPトランスポートを行います。 Nanoは本当にいいです、オリジナルのlibzmqライブラリを再考し、成功すれば良い新しいカーネルを作るでしょう。

ナノは理想的にはAPIとプロトコルレベルの両方で相互運用するので、libzmqの代わりになります。しかし、かなり長い道のりがあります。

JeroMQ(Java)やNetMQ(C#)など、libzmqがいくつか書き直されていることに注意してください。これら2つは、ZMTP/1.0とZMTP/2.0を適切に実装しています。 Axon(https://github.com/visionmedia/axon)のような他のライブラリもありますが、これは0MQから大きく影響を受けていますが互換性はありません。

経験に基づいて、ユーザーは相互運用性を他の何ものよりも高く評価します。したがって、異なる0MQのようなスタックが同じプロトコルを話すことになります。

+2

ありがとうございます、ZeroMQは今のところ道です。他の互換性のある実装がポップアップしていることを知っておくとよいでしょう。これは将来にとって本当に有望です! –

+3

はい、私はキーが同じプロトコルを話し、同様のAPIとメッセージングパターンを提供する多くの選択肢だと思います。 –

+2

ユーザーは相互運用性を高く評価しますが、安定性、信頼性、長期的なサポートはさらに重要です。私たちがAMQP-> ZeroMQ-> Crossroads.IO-> Nanoを見ると、ナノが安定した最後のバージョンであるとは思いません。 – MSalters