¿Está lista la producción de ZeroMQ?


¿Cuáles son sus experiencias con ZeroMQ como middleware de mensajería de propósito general?

  1. ¿Se encontró con algún error que parara el espectáculo o "características"no obvias? Por ejemplo, 2.0 no estaba limpiando los mensajes correctamente, y la guía de solución de problemas parece dar la solución más aterradora de todas: "sleep(1) antes de salir".
  2. ¿Redujo la API la complejidad de las aplicaciones o resultó ser problemática?
  3. Es compatibilidad hacia atrás a menudo roto?
Author: Alex B, 2011-02-02

3 answers

Lo estoy usando para la investigación, así que "semi-producción". Es un marco maravilloso, y la forma en que se diseñan las cosas sin duda tiene sentido una vez que lo grok completamente. Pero he tenido demasiados problemas para considerarlo listo para la producción. Estoy usando jzmq, así que algo de esto podría ser específico para eso.

  1. Configurar jzmq en OS X / Eclipse es...no es agradable.
  2. Iniciar la aplicación ocasionalmente causará un error de aserción en el código C de ZeroMQ, por lo que necesito envolver mi aplicación en algo que comprueba este estado excepcional.
  3. Los errores son a menudo muy poco descriptivos. He tenido demasiadas excepciones estatales ilegales sin ningún mensaje explicativo.
  4. No hay soporte para TLS. Esto es casi un factor decisivo para mí, y podría verlo fácilmente descartando su disponibilidad para una serie de aplicaciones.
  5. La documentación está "desactivada". La guía oficial es agradable, pero si tiene un problema específico, generalmente no es útil. Y me lleva más tiempo de lo habitual para encontrar las respuestas a las cosas al googlear. Sin embargo, la lista de correo está bastante activa.

PERO, y este es un gran pero, no puedo contar cuántas horas-hombre me ha salvado. Este post tiene un buen resumen de solo algunas de las maneras en que hace la vida más agradable.

 29
Author: ysimonson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:08:56

También estoy usando ZeroMQ en un entorno de "semi-producción" (prototipado para DARPA). Hasta ahora ha sido realmente excelente para "atar gatos juntos", especialmente cuando esos gatos están escritos en diferentes idiomas y viven en diferentes máquinas. Los modismos de socket disponibles hacen que pensar sobre un problema de computación distribuida sea muy sencillo. La fuerza de ZeroMQ es la ergonomía: un modelo mental sólido y abundantes fijaciones de lenguaje.

Proceda con precaución, sin embargo, si se enfrentan a duras limitaciones de rendimiento. Estoy trabajando en un sistema en tiempo real y he encontrado que, aunque ZeroMQ pretende ser una solución de alto rendimiento, no está listo para el horario estelar. Creo que la arquitectura que está en su lugar tiene un gran potencial; solo parece estar obstaculizada por algunos errores molestos. Probablemente debería haber esperado eso de una biblioteca que ha evolucionado tan rápidamente, pasando de 0.0 a 3.0 en un tiempo relativamente corto. Aún así, pensé que podría conseguir un reemplazo directo para mi propio, pila de protocolo manual e inmediatamente golpeó algunos interruptores de reparto. Si decide ir con ZeroMQ, solo tenga en cuenta que está trabajando muy por encima de la capa de transporte, y si el rendimiento es menos que deseable, hay poco que pueda hacer al respecto.

Dicho esto, la charla en la lista de correo y el canal IRC es bastante grande. Los desarrolladores parecen genuinamente interesados en construir algo que sea completamente de última generación. Les encanta que su biblioteca tiene zumbido y se está acostumbrando para cosas serias e interesantes. Son gente ocupada, así que no esperes un montón de apretones de manos. Sin embargo, si tienes un problema real, están ansiosos por saber qué está pasando.

En pocas palabras: Una gran navaja suiza para problemas de computación distribuida todos los días. Tenga cuidado si está buscando un rendimiento de vanguardia; es al menos un lanzamiento importante. Aún así, el futuro se ve muy bien para este proyecto, así que úsalo y apóyalo.

 14
Author: BrianTheLion,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-01-13 19:05:27

Descargo de responsabilidad: esto proviene de una persona que nunca usó AMQP o cualquier otro producto similar antes.

La mala documentación es mala. (C# sería un mal si no hubiera documentación para.Net y C#) Por lo que ZMQ podría ser lo mejor que hay si sabes cómo usarlo, pero la documentación que existe(no mucha) es bastante mala(somos tan inteligentes, esto es tan bueno, Erlang, bla bla, ni un solo ejemplo de n-a-n en guide...).
La mayoría de los proyectos del sistema operativo tienen mala documentación o ninguna. Sí, pero para bastante oa pocos proyectos de sistema operativo se puede google un montón de cosas(tutoriales, ejemplos...). Con ZMQ es : Zero es para documentación. Como soy un desarrollador de C++ lo diré así. Antes de intentar usar ZMQ pensé que boost tenía mala documentación y relativamente pocos ejemplos en Internet. Pero en comparación con ZMQ Boost documentación es grande y ejemplos son abundantes.

EDITAR: para hacer las cosas más divertidas (civil war :P): http://www.infoq.com/news/2012/03/Crossroads-IO

Martin Sustrik y Martin Lucina, creadores del ZeroMQ original, han decidido recuperar el control del proyecto por realizar un fork. El nuevo proyecto, llamado Crossroads I / O, se está configurando para fomentar un ecosistema comercial que es más capaz de satisfacer su largo plazo necesidades financieras.

EDIT2: copiar y ejecutar ejemplos de la guía (versión cpp de " A Request-Reply Broker") no trabajo. Se puede ver lo bueno que es el proceso de desarrollo de la biblioteca por el hecho de que no tienen sus ejemplos como pruebas. : P
EDIT3: algunos de los ejemplos están en v2.* , la versión más reciente de ofc es v3.2. Así que de nuevo esto huele a un proyecto de sistema operativo podrido sin mantenimiento.

 0
Author: NoSenseEtAl,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-09-05 10:35:13