web-dev-qa-db-fra.com

Différences entre ZeroMQ et WebSockets

Je voudrais savoir quelles sont les différences entre les ZeroMQ et WebSocketsprotocoles.

Je sais que WebSockets a été conçu pour les clients de navigateur Web, mais je suppose qu'il peut également être utilisé de serveur à serveur.

Et, dans ce cas, je me demande s'il serait bon d'utiliser WebSockets au lieu de quelque chose d'autre comme ZeroMQ pour messagerie en temps réel.

Plus précisément, je m'inquiète fiabilité et messages manquants en cas de défaillance temporaire du réseau.

32
repalviglator

R: La messagerie en temps réel est une belle balise, cependant

Vous vous rendrez vite compte qu'une fois sur le territoire de temps réel , rien ne justifie de passer des cycles d'horloge à encapsuler un message dans le XHTML -Matrjoska-in-Another-Matrjoska-inside-another-Matrjoska alike enveloppes-inside-enveloppes et inefficacités associées.

Temps réel a du mal à fonctionner en temps réel, donc à passer/perdre un temps minimum réalisable nécessaire pour traiter un taskUnit.

Bien qu'il y ait des tentatives de reconditionner les choses de manière similaire * ML - " sexy", les performances qui en résultent sont juste dégradées, allant "en dehors" du territoire en temps réel, au lieu de tout autre significatif aider à mieux performer là-bas.

Un très bon exemple de cela est un non-sens lié à un " quasi-gourou de l'informatique" efforts faisant "l'extension" standard du protocole FIX des marchés financiers pour les charges utiles codées XHTML, tandis que le Les efforts de créme-a-la-créme dans la R&D de trading à haute fréquence dépensent d'immenses fonds/temps/efforts pour réduire ( nanosecondes associées à chaque IP -déchargement des câbles par paquets et dé-mappage/décodage le plus rapide possible du temps réel attendu data - éléments contenus dans un design minimaliste de prefixTag:value spécification d'origine.

A: Les différences de protocole sont principales

Alors que WebSockets se concentre sur port:80 HTML/XHTML- de la même manière que l'encapsulation et l'encadrement de certains contenus de charge utile de haut niveau, ZeroMQ va dans la direction opposée. Il "cache" et "décharge" le code de tous les détails de bas niveau sur les transports (étant ainsi servi de manière transparente sur INPROC/IPC/TCP/PGM/EPGM/UDP/VMCI/... classes de transport, que ce soit localement, à l'échelle du cloud ou un mélange des deux)

Le protocole WebSocket a le rôle client et serveur fixe et l'établissement de liaison de style HTTP.

WebSocket le focus se termine au formatage de contenu UTF-8/CRLF, cadrant entre une paire de 0×00 & 0xff octets et s'appuie sur la capacité de WebBrowsers à analyser de tels messages tamponnés, ce que le navigateur a été conçu pour pouvoir faire).

Dans le cas où l'on n'a jamais travaillé avec ZeroMQ,
on peut ici profiter de regarder d'abord "ZeroMQ Principes en moins de Cinq secondes " avant de plonger dans plus de détails


ZeroMQ donne au concepteur une architecture ouverte à construire sur des blocs de construction, qui ont été élaborés pour coopérer de certaines manières - - oui, ils ont un COMPORTEMENT - que la conception utilise pour un modèle de messagerie plus complexe. Cela permet des abstractions illimitées de la couche supérieure, qui s'appuient sur un ensemble de blocs de construction éprouvés - ZMQ.PUBLISHER envoie simplement des messages à tous ZMQ.SUBSCRIBER- s, qui écoutent et qui ont démontré leur volonté respective de s'abonner à certaines des nouvelles publiées. D'autres primitives ZMQ aident à créer des équilibreurs de charge basés sur des tourniquets, des étapes supplémentaires permettent de créer des architectures à sécurité intégrée et des solutions avancées similaires.

enter image description here

A: Fonctionnalités du protocole

Bien que vous ayez posé des questions sur la fiabilité d'un protocole, il existe des attributs plus importants au niveau du protocole - Frais généraux d'assemblage/réassemblage/décomposition, évolutivité des performances, latence d'accès API-à-fil, thread-safe et relâchement des attributs de performances en croissance niveaux de charge de travail.

Alors que le port WebSocket: la communication 80 est "ouverte" à toute intrusion non - WebSocket, les protocoles de bas niveau ZeroMQ ont été conçus pour un ZMQ-2-ZMQ rapide, efficace et exclusif. , la négociation par les pairs et tous les efforts de conception sont construits à partir d'un niveau d'API d'abstraction plus élevé, à partir duquel on peut ajouter une signalisation logicielle basée sur l'application, qui peut introduire des activités de réparation/réparation afin que votre demande Le problème des messages manquants ne crée aucun effet négatif sur l'état de l'application.

enter image description here


Programmeurs de systèmes concurrents travaillant dur

aimerait également quelques points bonus avancés sur le filetage et zéro-copie & intériorité à latence zéro de cette élément d'approfondissement de Martin SUSTRIK, un co-père des deux ZeroMQ & c'est une sœur un peu plus jeune conforme à POSIX nanomsg

33
user3666197

Votre question ressemble à "quelle est la différence entre Apache et HTTP"

WebSockets n'est qu'un protocole (similaire à http), tandis que ZeroMQ est un protocole et un serveur qui est responsable du cycle de vie de votre message à partir du moment où il est reçu jusqu'à sa consommation.

1
Andrey Sidorov