Unterschiede zwischen ZeroMQ und WebSockets
Ich würde gerne wissen, was die Unterschiede sind zwischen den ZeroMQ
und WebSockets
Protokolle.
Ich weiß WebSockets
wurde speziell für die web-browser-clients, aber ich nehme an, es kann auch verwendet werden, server-zu-server.
Und in diesem Fall Frage ich mich, ob es wäre gut nutzen WebSockets
anstatt etwas anderes wie ZeroMQ
für real-time-messaging -.
Speziell, ich bin besorgt über Zuverlässigkeit und fehlenden Nachrichten im Falle eines temporären netzwerkausfalls.
Du musst angemeldet sein, um einen Kommentar abzugeben.
A: Real-Time-Messaging ist ein schöner tag, jedoch
Können Sie bald realisieren, dass einmal in das Gebiet der Real-Time, es gibt keine Rechtfertigung für das ausgeben von clock-Zyklen auf der Verpackung jeder Nachricht in das XHTML-Matrjoska-in-Anderen-Matrjoska-innen-andere-Matrjoska gleichermaßen Umschläge-innen-Umschläge und die damit verbundenen Ineffizienzen.
Real-Time kämpft, um zu arbeiten in Echtzeit, so verbringen/verlieren eine minimal erreichbare Zeit notwendig, um eine
taskUnit
.Zwar gibt es versuche der re-wrap Dinge in ähnlich *ML-"sexy" - Art, die performance ist einfach nur abgebaut wird, gehen die "außerhalb" des Real-Time-Gebiet, statt irgendwelche bedeutende Hilfe bei der Durchführung besser.
Ein sehr gutes Beispiel HIERFÜR ist ein Unsinn im Zusammenhang mit einer "quasi-IT-guru-Menge" Bemühungen making financial markets " standard FIX-Protokoll "Erweiterung" für XHTML-codiert Nutzlasten, während die créme-a-la-créme Anstrengungen in den High-Frequency-Trading-R&D verbringen immense Mittel/mal/Anstrengungen auf, wie sich zu rasieren unten Nanosekunden im Zusammenhang mit den einzelnen IP-packet-Draht-entladen & schnellstmögliche de-mapping - /de-Kodierung der erwartete Echtzeit-
data
- Elemente gibt es in einem minimalistischen designprefixTag:value
original-Spezifikation.Ein: die Protokoll-Unterschiede sind AUFTRAGGEBER
Während
WebSockets
Fokus aufport:80 HTML/XHTML
-ähnliche Umhüllung und Rahmen einige high-level-payload-Inhalte,ZeroMQ
geht rechts in eine entgegengesetzte Richtung. Es "versteckt" & "entlastet" den code aus einer low-level-details auf Transporte ( wird so transparent über serviertINPROC
/IPC
/TCP
/PGM
/EPGM
/UDP
/VMCI
/... transport-Klassen, sei es lokal, cloud-weit oder eine Mischung aus beiden )Den
WebSocket
Protokoll hat den festgelegten client-und server-Rolle und die HTTP-Stil-Handshake.WebSocket
Fokus ist an UTF-8/CRLF content-Formatierung, die Gestaltung, die zwischen einem paar von0×00
&0xff
bytes und baut auf Web-Browsern mit der Fähigkeit zu analysieren, wie gepufferten Nachrichten, die der browser wurden entwickelt, um in der Lage zu tun ).wenn man noch nie gearbeitet mit ZeroMQ,
kann man hier genießen Sie zunächst einen Blick auf "ZeroMQ Grundsätze in weniger als Fünf Sekunden" vor dem eintauchen in weitere details
ZeroMQ
gibt einen designer, eine offene Architektur zu bauen, auf Bausteine, die ausgearbeitet wurden, um zusammenzuarbeiten, bestimmte Umgangsformen -- ja, Sie haben VERHALTEN --, dass das design für einige weitere komplexe messaging-Muster. Dies ermöglicht unbegrenzte oberen Schicht Abstraktionen, die auf eine Reihe von erprobten Bausteine --ZMQ.PUBLISHER
nur sendet Nachrichten an alleZMQ.SUBSCRIBER
-s, das zu hören und haben gezeigt, dass Sie die jeweiligen wird, zu abonnieren, um einige der news veröffentlicht wird. Andere ZMQ-primitive beitragen, dass round-robin-basierte load-Balancer, zusätzliche Schritte können zu bauen, fail-safe-Architekturen und ähnliche fortschrittliche Lösungen.A: Protokoll-Funktionen
Während Sie fragte, über die Zuverlässigkeit des Protokolls, es gibt wichtigere Attribute auf der Protokoll-Ebene-Montage - /Zusammenbau/ZERLEGUNG Gemeinkosten, Performance-Skalierbarkeit, API-to-wire-access-Latenz, thread-sichere und Entspannung von performance-Attributen, unter dem wachsenden Niveau der Arbeitsauslastung.
Während
WebSocket
port:80 Kommunikation "öffnen", um eine nicht-WebSocket
eindringenZeroMQ
low-level-Protokolle wurden entwickelt für eine schnelle, effiziente, exklusive ZMQ-2-ZMQ, peer-handshaking und alle design-Bemühungen sind gebaut von einer höheren Abstraktions-API-level, von dem kann man hinzufügen-Anwendung-basierte soft-signalisieren, dass möglicherweise vorstellen Reparatur/Abhilfe Aktivitäten, so dass Ihre angeforderten fehlt-Meldung Problem hat keine nachteiligen Auswirkungen auf den Zustand der Anwendung.Fleißig Auger Systeme " Programmierer
würde auch gerne noch ein paar advanced-bonus-Punkte auf threading und zero-copy & zero-latency internalities von dieserStück vertiefte Einblicke von Martin SUSTRIK, co-Vater der beiden
ZeroMQ
& es ist ein bisschen jünger POSIX-konform Schwesternanomsg
Deine Frage klingt wie "was ist der Unterschied zwischen Apache und HTTP"
WebSockets ist nur ein Protokoll (ähnlich http), während ZeroMQ ist mit dem Protokoll und der server ist verantwortlich für den lifecycle Ihrer Nachricht, die ab dem Zeitpunkt erhalten, bis es konsumiert wird.