Alternativas de ZeroMQ Mejor Valoradas

En mi experiencia pasada gestionando el desarrollo de software del vigésimo quinto en tamaño de una oficina de Forex, nos enfrentamos al desafío de recibir hasta 400 MB/s de boletos de acciones. No logramos aumentar el rendimiento del socket con .Net remoting. Buscando una solución robusta pero fácil de usar, nos encontramos con ZeroMQ. Tenía un diseño elegante, simple pero poderoso. Su modelo pub/sub era exactamente lo que necesitábamos. Con algunos ajustes logramos procesar hasta 5 millones de mensajes por segundo en un flujo constante de boletos con un umbral de marca de agua alta de 500K. Codificábamos el par de divisas en los primeros bits de cada mensaje y eso era súper eficiente. Incluso logramos hacer que el comercio de acciones de Nivel 1/2 funcionara con encabezados de canal pub/sub. ZeroMQ requería 2 horas de capacitación y ya se obtenían los primeros resultados. Comparado con mis experiencias previas con IBM Web Sphere MQ Series, AMQ, MSMQ, ZMQ simplemente superaba a ambos en facilidad de adopción y rendimiento. Reseña recopilada por y alojada en G2.com.
Las características y el rendimiento de Windows eran un poco limitados. A veces teníamos que usar TCP donde InProc habría sido mejor debido a la falta de soporte en Windows. Reseña recopilada por y alojada en G2.com.
21 de 22 Reseñas totales para ZeroMQ
Sentimiento General de la Reseña para ZeroMQ
Inicia sesión para ver el sentimiento de la revisión.

Realmente puedes diseñar el patrón que mejor se adapte a tus necesidades. Ya sea que necesites PUB-SUB o un broker, puedes construir herramientas adaptadas a tus necesidades, sabiendo que siempre podrás modificar y añadir nuevas características según lo desees.
Disponible para un gran número de lenguajes de programación.
La documentación es extensa y se proporcionan ejemplos para los diversos lenguajes.
El mecanismo CURVE asegura una autenticación segura y confidencialidad, haciendo de ZeroMQ una buena opción también para IoT u otras aplicaciones que requieran comunicación a través de internet.
La comunidad es grande y activa. Reseña recopilada por y alojada en G2.com.
Diseñar tus propias herramientas puede ser complicado, y si uno busca resolver un problema muy común, elegir una herramienta para resolver la tarea específica podría ser la mejor opción. Reseña recopilada por y alojada en G2.com.

Lo que más me gustó de ZeroMQ es que es muy fácil de usar. Teníamos en el mismo proyecto dos implementaciones de colas: ZeroMQ y Kafka. Kafka era para instalaciones con mucha carga y ZeroMQ para el resto. Y ZeroMQ solo tenía una clase de configuración que creaba un bean ZSocket, eso es todo. Ahora solo usas "zmqPublisher.send" para enviar tu mensaje a la cola. En comparación, Kafka tenía 15 clases e interfaces para configurar un publicador. Lo mismo con el suscriptor. Reseña recopilada por y alojada en G2.com.
ZeroMQ tiene un límite en los mensajes. Una vez alcanzado el límite, no acepta nuevos mensajes. Y tampoco admite temas. Así que si estás usando varios tipos de dispositivos, necesitas codificar su tipo dentro del mensaje. Reseña recopilada por y alojada en G2.com.

Me gusta el concepto de ZMQ de ser "lego" de varios tipos de sockets, que podrían conectarse entre sí, por ejemplo, Publicador - Suscriptor, Enrutador - Distribuidor, Solicitud - Respuesta, etc. Por ejemplo, cuando necesitaba proporcionar registro distribuido en mi aplicación, simplemente usé tipos de sockets Publicador - Suscriptor, por lo que múltiples publicadores enviaron sus registros a un suscriptor que los almacenó. Y el modelo Enrutador - Distribuidor es excelente para enviar mensajes a clientes específicos y obtener respuesta de ellos cuando el trabajo está hecho. ZMQ permite compartir sockets para hilos y procesos también, lo que proporciona la capacidad de construir aplicaciones multihilo o multiproceso. Además, la API de ZMQ está disponible para cualquier lenguaje de programación moderno, por lo que se puede instalar e integrar fácilmente. Y, por supuesto, la velocidad. Probé mi aplicación ZMQ bajo estrés intensivo en 40 máquinas y funcionó bastante bien, sin mensajes atascados o perdidos y sin fallos, así que cuando se trata de fiabilidad, ZMQ es la elección correcta. Reseña recopilada por y alojada en G2.com.
Creo que lo único que puede alejar a las personas es lo mismo que más me gustó :) - ser "lego". Tienes que construir y configurar tus sockets correctamente para obtener cualquier resultado funcional, lo que significa invertir algo de tiempo en aprender el concepto de ZMQ y ejemplos de código. Los tipos de sockets son algo en lo que tienes que profundizar, mientras que con ejemplos de PUB-SUB todo parece muy simple, construcciones más complicadas requerirán un entendimiento profundo del protocolo ZMQ y los tipos de sockets, lo cual podría ser una curva de aprendizaje empinada para los recién llegados. Reseña recopilada por y alojada en G2.com.
La documentación es buena y es fácil comenzar con ella. Reseña recopilada por y alojada en G2.com.
A veces es un poco difícil averiguar cómo funciona la cola de mensajes (cuando un lado está caído), y tienes que implementar la funcionalidad TTL (tiempo de vida) tú mismo. Reseña recopilada por y alojada en G2.com.
ZMQ has good documentation and there is a wide array of wrappers for different languages.
It is ideal for high performance responsive messaging across different platforms and technologies.
I personally used it to send low latency messages between an embodied Linux (c++) machine and a windows computer (c#).
It also has a wide array of implementations so legacy systems can communicate with newer systems. Reseña recopilada por y alojada en G2.com.
There are some limitations on the type of data you can sent. While there is an option to send raw bitstreams it is not easy or fun to use. It is better for strings and information that can be easily serialized. Reseña recopilada por y alojada en G2.com.

Es rápido. Tiene un alto rendimiento en comparación con otros. Reseña recopilada por y alojada en G2.com.
No hay un método incorporado adecuado para saber si el componente con el que nos estamos comunicando está vivo o no. Si está muerto, entonces zmq descarta los mensajes silenciosamente. Reseña recopilada por y alojada en G2.com.

Es sorprendentemente rápido y capaz de manejar una carga alta de mensajería. Reseña recopilada por y alojada en G2.com.
Hubo algunos problemas con la mensajería multipartida y los objetos grandes. Reseña recopilada por y alojada en G2.com.

Ligero y mejor para sistemas de alto rendimiento y baja latencia. Reseña recopilada por y alojada en G2.com.
No es muy fácil de implementar ya que hay que escribir mucho código para manejar los sockets y demás. Reseña recopilada por y alojada en G2.com.
The setup is easy so you can quickly get network communications operational. Reseña recopilada por y alojada en G2.com.
It is not always obvious to know how things are handled behind the scenes. Reseña recopilada por y alojada en G2.com.
Flexible and high-performant so it was easy to adapt it to our distributed system needs
It was also Reseña recopilada por y alojada en G2.com.
It was very convenient library for real time control parts but since it doesn't guarantee delivery it sis not suitable for parts of the systems that requires persistency Reseña recopilada por y alojada en G2.com.