node.js - examples - rabbitmq javascript client
amqp vs amqplib: ¿qué biblioteca de cliente de Node.js amqp es mejor? (6)
¿Cuáles son las diferencias entre esas bibliotecas amqp cliente? ¿Cuál es el más recomendado? ¿Cuáles son las principales diferencias?
Acabo de empezar a aprender rabbitmq yo mismo. He encontrado en otros blogs que ampq.node es bien aceptado. Otra que encontré (no probada) es de tipo wascally. https://github.com/LeanKit-Labs/wascally
Soy el tipo que escribió la biblioteca bramqp. Así que voy a admitir desde el comienzo que puedo ser un poco parcial. :PAG
En mi opinión, siempre que conozca las especificaciones, bramqp debería funcionar bien. De lo contrario, use amqp.node
Las siguientes son las bibliotecas amqp disponibles para node.js.
amqp.node - estilo prometedor, aún actualizado, se ve bastante estable y fácil
bramqp : proporciona un acceso completo de bajo nivel a las funciones de AMQP, no recomendado para comenzar
amqp-coffee : implementación de coffeescript similar a amqp / node-amqp
amqp / node-amqp - popular, API fija, no actualizada con tanta frecuencia, algunos errores extraños, estables pero limitados
Las siguientes bibliotecas utilizan una de las bibliotecas anteriores, mientras que proporcionan una interfaz más fácil de usar o agregan características
rabbit.js usa amqplib / amqp.node
github.com/LeanKit-Labs/wascally usa amqplib / amqp.node
amq usa amqplib / amqp.node
amqpea usa bramqp
easy-amqp usa amqp / node-amqp
rabbus usa wascally
También voy a agregar node-amqp10 separado, ya que se puede conectar a servidores amqp 1.0.
Si hay algo más que deba agregar, házmelo saber.
Usé ambas por un tiempo. A primera vista, podría parecer que node-amqp (amqp) es más adecuado, pero en realidad tiene tantos errores y nadie los está solucionando. Por instancias,
- El adaptador MQTT y STOMP de RabbitMQ debe permitir la comunicación entre clientes que usan esos 2 protocolos con clientes que usan AMQP, pero node-amqp simplemente no analiza los mensajes enviados por MQTT o STOMP, mientras que amqp.node (amqplib) puede hacerlo.
- node-amqp (amqp) ha implementado la reconexión automática y no arroja excepciones sobre la desconexión accidental. Eso significa que se verá obligado a utilizar la reconexión incorporada, no podrá detectar la desconexión y manejarlo usted mismo. Sin embargo, su reconexión siempre duplica el número de conexiones. Agotará tanto al cliente como al servidor eventualmente. Prefiero codificar mi propia función de reconexión con amqp.node (amqplib).
Lo probé con un agente proporcionado por www.robomq.io, es uno bueno así que la culpa debería ser de la biblioteca. Implementar una biblioteca perfecta en Node.js es difícil.
Por cierto, puede encontrar un conjunto completo de código de ejemplo usando amqp.node (amqplib) en 5 escenarios en https://github.com/robomq/robomq.io/tree/master/sdk/AMQP/Node.js y la documentación en http://robomq.readthedocs.org/en/latest/one-one/#nodejs .
https://github.com/guidesmiths/rascal#rascal vale la pena mencionar también. Está construido sobre amqplib y tiene un conjunto de características útiles como lógica de reconexión automática, suscripción / publicación basada en la configuración y buen soporte para TDD.