ZeroMQ
ZeroMQ (auch ØMQ, 0MQ oder ZMQ) ist eine asynchrone Nachrichtenaustauschbibliothek für High-throughput computing, die speziell auf Verteilte Systeme oder gleichzeitige Ausführung in verschiedenen Systemen entwickelt wurde. Es ist eine Message Queue, benötigt aber im Gegensatz zu Message Oriented Middleware keinen dedizierten Message Broker.
ZeroMQ | |
---|---|
Basisdaten | |
Maintainer | iMatix Corporation |
Entwickler | iMatix Corporation and Contributors |
Aktuelle Version | 4.3.4[1] (17. Januar 2021) |
Betriebssystem | Diverse Unix, Linux, Windows, macOS |
Programmiersprache | C++ |
Lizenz | LGPL |
deutschsprachig | nein |
zeromq.org |
Geschichte
Der erste Entwurf für ZeroMQ wurde von Pieter Hintjens im November 2007 geschrieben.[2] iMatix bzw. Pieter Hintjens hat AMQP entwickelt, dieses wurde später als nicht wartbar und mit Designfehlern behaftet aufgegeben und ZeroMQ entwickelt. Deshalb zog sich iMatix aus der Entwicklung und den entsprechenden Gremien zurück.[3] Bis 2012 war Martin Sustrik der führende Entwickler[4] bei ZeroMQ, verließ aber das Projekt aufgrund von Bedenken wegen des Entwicklungsprozesses und des Copyrights für das Logo; er gründete daraufhin crossroads I/O.[5] Sustrik überführte crossroads I/O in nanomsg und schrieb den Code komplett neu.[6]
Einsatzbereiche
In einem White Paper[7] zur Marktanalyse wurden die möglichen Einsatzbereiche für ZeroMQ beschrieben:
- Hochleistungssegmente: Geringe Latenz, kostengünstig, Geschwindigkeitsvorteil bei der Verarbeitung
- Handelsplattformen
- Investmentbanken
- Datensammler und -aufbereiter (z. B. Reuters)
- Börsen (Aktien, Devisen, Rohstoffe)
- weitere Märkte:
- Geschäfts- und Institutionelle Nachrichtenübermittlung (Bezahlplattformen, Dokumentenübermittlung)
- Embedded systems (z. B. Echtzeit Messsysteme)
- Multimedia (Streaming-Plattformen)
- Grid-Computing (z. B. im Bereich der Risikoanalyse)
Schnittstellen zu Programmiersprachen
Die Liste ist nicht vollständig und es werden nur die häufigsten Programmiersprachen genannt:
- C
- C# (.NET & Mono)
- C++
- Java
- Perl
- PHP
- Python
- Rust
- Ruby
- Erlang
- Node.js
- Haskell
- uvm.[8]
Software, bei der die Bibliothek eingesetzt wird
Zum Beispiel bei der Software Xibo (Software für Digital Signage) wird zeromq genutzt, um zwischen dem Content-Management-System und den Monitoren (Player) zu übermitteln (push).[9]
In Firebird Butler soll die Bibliothek für den Abgleich und Kommunikation zwischen der Entwicklungsplattform und den Servern eingesetzt werden.[10]
Literatur
- Pieter Hintjens: ZeroMQ: Messaging for Many Applications, O'Reilly Media, 2013.
Einzelnachweise
- Release 4.3.4. 17. Januar 2021 (abgerufen am 2. Februar 2021).
- ØMQ Lightweight Messaging Kernel (v0.1) - zeromq. Abgerufen am 5. September 2018 (englisch).
- (openamq-dev) iMatix will end OpenAMQ support by 2011. 5. März 2016, abgerufen am 5. September 2018.
- Pieter Hintjens: Code Connected Volume 1. Hrsg.: iMatix Corporation. 2013, ISBN 978-1-4812-6265-1, S. 318 (englisch, wdfiles.com [PDF]).
- ZeroMQ and Crossroads I/O: Forking over trademarks (LWN.net). Abgerufen am 7. September 2018.
- nanomsg postmortem and other stories. In: Sealed Abstract. 8. Februar 2016 (sealedabstract.com [abgerufen am 8. September 2018]).
- Market Analysis - zeromq. Abgerufen am 6. September 2018 (englisch).
- ZeroMQ - Get started. Abgerufen am 2. November 2019 (englisch).
- Xibo Documentation | Xibo Open Source Digital Signage. Abgerufen am 11. September 2018 (englisch).
- Introduction to Firebird Butler — Firebird Butler 1.0 documentation. Abgerufen am 30. Oktober 2021.