2012-11-21 7 views
46

Ich untersuche ZeroMQ als Messaging-/Transportschicht für ein ziemlich großes verteiltes System, hauptsächlich zur Überwachung und Datenerfassung (viele Hersteller, einige Verbraucher).ZeroMQ vs Crossroads I/O

Soweit ich sehen kann, gibt es derzeit zwei verschiedene Implementierungen des gleichen Konzepts; ZeroMQ und Crossroads I/O, letzteres eine Abzweigung von ZeroMQ (in 2012?).

Ich versuche herauszufinden, welche zu verwenden und wundere mich über die Unterschiede zwischen ihnen, aber habe bisher nicht viele Informationen zu diesem Thema gefunden.

Zum Beispiel:

  • Sind sie auf dem Draht kompatibel?
  • Sind sie API-kompatibel, d. H. Eine Art Common-Base-API, möglicherweise mit verschiedenen Add-Ons?
  • Implementieren beide Unterstützung für ZMTP (ZeroMQ Message Transport Protocol)?
  • Teilen sie ein gemeinsames Verständnis der zukünftigen Entwicklung oder werden sie in zwei verschiedenen und möglichen Richtungen weitergehen?
  • Was sind die Vor-/Nachteile in Bezug auf die anderen?

Grundsätzlich, wie wählt man eins über das andere?

Antwort

76

Crossroads.io ist ziemlich tot, da Martin Sustrik auf einem neuen Stapel, in C begonnen hat, nano genannt: https://github.com/250bpm/nanomsg

Crossroads.io nicht, afaik, implementieren ZMTP/1.0 noch ZMTP/2.0, aber seine eigene Version des Protokolls.

Nano hat steckbare Transporte und wir werden wahrscheinlich einen ZMTP-Transport dafür machen. Nano ist wirklich nett, ein Überdenken der ursprünglichen Bibliothek libzmq, und wenn es erfolgreich ist, würde einen guten neuen Kernel machen.

Idealerweise würde Nano sowohl auf der API- als auch auf der Protokollebene zusammenarbeiten, also ein steckbarer Ersatz für libzmq sein. Es ist jedoch noch ein weiter Weg.

Beachten Sie, dass jetzt mehrere libhzm-Schreibvorgänge auftreten, einschließlich JeroMQ (Java) und NetMQ (C#). Diese beiden implementieren ZMTP/1.0 und ZMTP/2.0 ordnungsgemäß. Es gibt auch andere Bibliotheken wie Axon (https://github.com/visionmedia/axon), die stark von 0MQ inspiriert sind, aber nicht kompatibel sind.

Erfahrungsgemäß schätzen Benutzer die Interoperabilität mehr als fast alles andere. Daher ist es sehr wahrscheinlich, dass verschiedene 0MQ-ähnliche Stacks die gleichen Protokolle sprechen.

+2

Danke, scheint wie ZeroMQ ist der Weg nach vorne für jetzt. Es ist gut zu wissen, dass andere kompatible Implementierungen auftauchen - das sieht für die Zukunft sehr vielversprechend aus! –

+3

Ja, ich denke, der Schlüssel sind viele Alternativen, die die gleichen Protokolle sprechen und ähnliche APIs und Messaging-Muster bieten. –

+2

Benutzer schätzen Interoperabilität, Sicherheit, aber Stabilität, Zuverlässigkeit und langfristige Unterstützung noch mehr. Wenn wir AMQP-> ZeroMQ-> Crossroads.IO-> Nano betrachten, würde ich nicht darauf wetten, dass Nano die letzte, stabile Version ist. – MSalters