48

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

私が見る限り、現在、同じ概念の2つの異なる実装があります。ZeroMQとCrossroadsI/ O、後者はZeroMQのフォークです(2012年?)。

私はどちらを使用するかを考えて、それらの違いについて疑問に思っていますが、これに関する多くの情報は今のところ見つかりませんでした。

例えば:

  • それらはネットワーク上で互換性がありますか?
  • それらはAPI互換性がありますか、つまり、おそらく異なるアドオンを備えた、ある種の共通ベースAPIですか?
  • どちらもZMTP(ZeroMQメッセージトランスポートプロトコル)のサポートを実装していますか?
  • 彼らは将来の発展についてある種の共通の理解を共有しているのでしょうか、それとも2つの別々の可能な異なる方向に進んでいくのでしょうか?
  • 他との関係で長所/短所は何ですか?

基本的に、どちらを選択するのですか?

4

1 に答える 1

83

Martin SustrikがCでnanoと呼ばれる新しいスタックを開始して以来、Crossroads.ioはかなり死んでいます:https ://github.com/250bpm/nanomsg

Crossroads.ioは、ZMTP/1.0もZMTP/2.0も実装していませんが、独自のバージョンのプロトコルを実装しています。

Nanoにはプラグ可能なトランスポートがあり、おそらくそのためにZMTPトランスポートを作成します。Nanoは本当に素晴らしく、元のlibzmqライブラリを再考します。それが成功すれば、優れた新しいカーネルが作成されます。

理想的には、NanoはAPIレベルとプロトコルレベルの両方で相互運用できるため、libzmqのプラグイン可能な代替品になります。ただし、これにはかなり長い道のりがあります。

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

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

于 2012-11-22T04:25:23.113 に答える