messaging - español - zmq python
¿Está lista la producción de ZeroMQ? (3)
Lo estoy usando para investigación, así que "semi-producción". Es un marco maravilloso, y la forma en que se diseñan las cosas ciertamente tiene sentido una vez que lo asimilas por completo. Pero he tenido demasiados problemas para considerarlo listo para la producción. Estoy usando jzmq, por lo que algo de esto podría ser específico para eso.
- Configurar jzmq en OS X / Eclipse es ... no agradable.
- Iniciar la aplicación ocasionalmente causará una falla de aserción en el código C de ZeroMQ, por lo que necesito ajustar mi aplicación en algo que compruebe este estado excepcional.
- Los errores a menudo son muy poco descriptivos. He tenido demasiadas excepciones de estado ilegales sin mensaje explicativo.
- 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.
- La documentación está "desactivada". La guía oficial es agradable, pero si tienes un problema específico, generalmente no es útil. Y me lleva más tiempo de lo normal encontrar las respuestas a las cosas cuando busco en Google. La lista de correo es, sin embargo, bastante activa.
PERO, y este es un gran pero, no puedo contar cuántas horas hombre me ha salvado. Esta publicación tiene un buen resumen de algunas de las formas en que hace la vida más agradable.
¿Cuáles son sus experiencias con ZeroMQ como un middleware de mensajería de propósito general?
- ¿Te encontraste con algún error de show-stop 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". - ¿La API redujo la complejidad de las aplicaciones o resultó problemática?
- ¿La compatibilidad con versiones anteriores a menudo se rompe?
También estoy usando ZeroMQ en un entorno de "semiproducción" (creación de prototipos 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 enlaces de lenguaje.
Proceda con precaución, sin embargo, si está en contra de las restricciones de rendimiento. Estoy trabajando en un sistema en tiempo real y he descubierto que, aunque ZeroMQ pretende ser una solución de alto rendimiento, no está lista para el horario estelar. Creo que la arquitectura que está en su lugar tiene un gran potencial; parece ser obstaculizado 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 reemplazar a mi propio stack de protocolos manuales e inmediatamente llegaría a algunos rompedores de ofertas. Si decide usar ZeroMQ, solo tenga en cuenta que está trabajando muy por encima de la capa de transporte, y si el rendimiento es menor que lo deseable, es poco lo que puede hacer al respecto.
Dicho esto, la charla en la lista de correo y el canal de IRC es bastante buena. Los desarrolladores parecen genuinamente interesados en construir algo que sea completamente de vanguardia. Les encanta que su biblioteca tenga rumores y se esté acostumbrando a cosas serias e interesantes. Son personas ocupadas, así que no esperes una tonelada de mano. Sin embargo, si tienes un problema real, están ansiosos por saber qué está pasando.
En pocas palabras: una gran navaja suiza para problemas informáticos distribuidos todos los días. Tenga cuidado si está buscando un rendimiento de última generación; es al menos una liberación mayor. Aún así, el futuro se ve muy bien para este proyecto, así que úselo y apóyelo.
descargo de responsabilidad: esto proviene de una persona que nunca antes había usado AMQP o cualquier otro producto similar.
La mala documentación es mala. (C # sería malo si no hubiera documentación para .Net y C #) Así que ZMQ podría ser lo mejor que hay si sabes cómo usarlo, pero la documentación que existe (no mucho) es bastante mala (estamos tan inteligente, esto es muy bueno, Erlang, bla, bla, no hay un solo ejemplo n-to-n en la guía ...).
Usted dice que qué, la mayoría de los proyectos del sistema operativo tienen mala documentación o ninguno. Sí, pero para algunos pocos proyectos de sistema operativo puedes buscar en google un montón de cosas (tutoriales, ejemplos ...). Con ZMQ es: cero es para documentación. Desde que soy un desarrollador de C ++ lo digo así. Antes de tratar de usar ZMQ, pensé que el boost tenía mala documentación y relativamente pocos ejemplos en Internet. Pero en comparación con la documentación de ZMQ Boost, es excelente y hay muchos ejemplos.
EDITAR: para hacer las cosas más divertidas (guerra civil: P): http://www.infoq.com/news/2012/03/Crossroads-IO
Martin Sustrik y Martin Lucina, creadores del ZeroMQ original, han decidido retomar el control del proyecto blandiéndolo. El nuevo proyecto, denominado Crossroads I / O, se está configurando para fomentar un ecosistema comercial que sea más capaz de satisfacer sus necesidades financieras a largo plazo.
EDIT2: copiar y ejecutar ejemplos de la guía (versión cpp de "Un agente de solicitud y respuesta") no funciona. Puedes ver cuán bueno es el proceso de desarrollo de la biblioteca por el hecho de que no tienen sus ejemplos como pruebas. :PAG
EDIT3: algunos de los ejemplos están en v2. *, Ofc la versión más reciente es v3.2. Entonces, de nuevo, esto huele a un proyecto de sistema operativo podrido y sin mantenimiento.