Diferencias entre ZeroMQ y WebSockets
low-latency nanomsg (2)
Me gustaría saber cuáles son las diferencias entre los protocolos ZeroMQ
y WebSockets
.
Sé que WebSockets
se diseñó para clientes de navegadores web, pero supongo que también se puede utilizar de servidor a servidor.
Y, en ese caso, me pregunto si sería bueno usar WebSockets
lugar de otra cosa como ZeroMQ
para la mensajería en tiempo real .
Específicamente, me preocupa la confiabilidad y los mensajes faltantes en caso de una falla temporal de la red.
R: Sin embargo, la mensajería en tiempo real es una buena etiqueta.
Pronto te darás cuenta de que una vez que entraste en el territorio de Tiempo Real , no hay justificación para gastar ciclos de reloj en envolver cualquier mensaje en el XHTML-Matrjoska-in-Another-Matrjoska-inside-another-Matrjoska por igual sobres-adentro - Sobres e ineficiencias asociadas.
Las dificultades en tiempo real para operar en tiempo real, por lo tanto, gastar / perder el mínimo tiempo posible necesario para procesar una taskUnit
.
Si bien hay intentos de volver a envolver las cosas de manera similar a "ML-" sexy , el rendimiento resultante simplemente se degrada, yendo "fuera" del territorio de Tiempo Real, en lugar de cualquier ayuda significativa para desempeñarse mejor allí.
Un muy buen ejemplo de esto es una tontería relacionada con los esfuerzos de " quasi-IT-guru-muchedumbre " que hacen a los mercados financieros la "extensión" estándar del Protocolo FIX para cargas útiles codificadas en XHTML, mientras que los esfuerzos de créme-a-la-créme en La I + D de comercio de alta frecuencia invierte inmensos fondos / tiempo / esfuerzos en la forma de reducir nanosegundos asociados con cada descarga de cableado de paquetes IP y la eliminación de mapas / descodificación más rápida posible de data
elementos de data
tiempo real esperados contenidos allí Un diseño minimalista de prefixTag:value
especificación original.
A: Las diferencias de protocolo son principales.
Mientras que WebSockets
enfoca en el puerto: 80 HTML / XHTML similar a la combinación y el encuadre de algunos contenidos de carga útil de alto nivel, ZeroMQ
va directamente en una dirección opuesta. "Oculta" y "descarga" el código de cualquier detalle de bajo nivel en los transportes (por lo tanto, se ofrece de manera transparente a través de las clases de transporte INPROC
/ IPC
/ TCP
/ PGM
/ EPGM
, ya sea localmente, en toda la nube o una combinación de ambas )
El protocolo WebSocket
tiene la función fija de cliente y servidor y el protocolo de enlace de estilo HTTP.
WebSocket
foco de WebSocket
finaliza en el formato de contenido UTF-8 / CRLF, encuadrado entre un par de 0×00
y 0xff
bytes y se basa en la capacidad de los WebBrowsers para analizar tales mensajes almacenados en búfer, que el navegador fue diseñado para poder hacer).
ZeroMQ
le da a un diseñador una arquitectura abierta para construir sobre bloques de construcción, que fueron elaborados para cooperar de ciertas maneras, sí, tienen COMPORTAMIENTO , que el diseño está utilizando para un patrón de mensajería más complejo. Esto permite abstracciones de capa superior ilimitadas, que se basan en un conjunto de bloques de construcción probados: ZMQ.PUBLISHER
simplemente envía mensajes a todos los ZMQ.SUBSCRIBER
-s, que escuchan y han demostrado su voluntad respectiva de suscribirse a algunas de las noticias. siendo publicado. Otras primitivas de ZMQ ayudan a hacer balanceadores de carga basados en round robin, los pasos adicionales permiten construir arquitecturas a prueba de fallas y soluciones avanzadas similares.
A: características del protocolo
Si bien preguntó por la confiabilidad de un protocolo, existen atributos más importantes a nivel de protocolo: gastos generales de ensamblaje / reensamblaje / descomposición, capacidad de escalado del rendimiento, latencia de acceso de API a cable, seguridad de subprocesos y relajación de los atributos de rendimiento bajo crecimiento Niveles de carga de trabajo.
Si bien la comunicación con el puerto WebSocket
: 80 está "abierta" a cualquier intrusión que no sea WebSocket
, los protocolos de bajo nivel de ZeroMQ
se diseñaron para ZMQ-2-ZMQ rápido, eficiente y exclusivo, para el intercambio de ideas entre pares y todos los esfuerzos de diseño se están construyendo desde una mayor abstracción Nivel de API, desde el cual se puede agregar una señalización suave basada en la aplicación, que puede introducir actividades de reparación / solución para que su problema de mensaje faltante no cree ningún efecto adverso en el estado de la aplicación.
Programadores de sistemas concurrentes y trabajadores.
También me gustaría obtener algunos puntos de bonificación avanzados en las internalidades de subprocesos y copia cero y latencia cero de esta pieza de conocimiento profundo de Martin SUSTRIK, un co-padre de ZeroMQ
y es un poco más joven hermano compatible con POSIX nanomsg
Su pregunta suena como "¿cuál es la diferencia entre Apache y HTTP"
WebSockets es solo un protocolo (similar a http), mientras que ZeroMQ es el protocolo y el servidor que es responsable del ciclo de vida de su mensaje desde el momento en que se recibe hasta que se consume.