Estoy buscando usar una cola de mensajes en una pequeña aplicación web que estoy construyendo con node.js. Miré resque pero no estoy seguro de que sea apropiado. El objetivo es enviar notificaciones a los clientes en función del backend y otras acciones del cliente con socketio. Podría hacer esto solo con socketio, pero pensé que tal vez una cola de mensajes adecuada haría esto más limpio y no tendría que reinventar la rueda.
¿Cuáles son las opciones que existen?
node.js
message-queue
Bjorn
fuente
fuente
Respuestas:
podría utilizar redis con el cliente de node_redis ultrarrápido . Incluso tiene semántica pubsub incorporada .
fuente
Puede utilizar el cliente STOMP del nodo . Esto le permitiría integrarse con una variedad de colas de mensajes que incluyen:
No he usado esta biblioteca antes, así que no puedo garantizar su calidad. Pero STOMP es un protocolo bastante simple, por lo que sospecho que puede piratearlo para enviarlo si es necesario.
Otra opción es usar beanstalkd con node . beanstalkd es una "cola de tareas" muy rápida escrita en C que es muy buena si no necesita la flexibilidad de funciones de los corredores enumerados anteriormente.
fuente
Enchufe descarado: estoy trabajando en Bokeh : una cola de tareas simple, escalable y ultrarrápida construida en ZeroMQ. Admite almacenes de datos conectables para tareas persistentes, actualmente en memoria, se admiten Redis y Riak. Echale un vistazo.
fuente
Aquí hay un par de recomendaciones que puedo hacer:
node-amqp : un cliente RabbitMQ que he usado con éxito en combinación con Socket.IO para hacer un juego multijugador en tiempo real y una aplicación de chat, entre otras cosas. Parece lo suficientemente confiable.
zeromq.node : si desea seguir la ruta sin intermediarios, puede valer la pena echarle un vistazo. Más trabajo para implementar la funcionalidad, pero es más probable que obtenga menor latencia y mayor rendimiento.
fuente
zeromq.node
ahora mantenido aquí: zeromq.jsEche un vistazo a node-busmq : es un bus de mensajes escalable, de alta disponibilidad y de grado de producción respaldado por redis.
Escribí este módulo para nuestra nube global y actualmente está implementado en nuestro entorno de producción en varios centros de datos de todo el mundo. Admite colas con nombre, comunicación entre pares, entrega garantizada y federación.
Para obtener más información sobre por qué creamos este módulo, puede leer esta publicación de blog: Todos a bordo del bus de mensajes
fuente
kue es la única cola de mensajes que necesitarías
fuente
bull
fue más sencillo para mí. Conkue
estaba perdido en la documentación.Recomiendo probar Kestrel , es rápido y simple como Beanstalk pero admite colas de distribución. Habla memcached. Está construido con Scala y se usa en Twitter.
fuente
Es posible que desee echar un vistazo a
Cola de mensajes simple de Redis para Node.js
Que usa Redis y ofrece la mayoría de las funciones de Amazons SQS.
fuente
¿Qué hay de Azure ServiceBus? Es compatible con nodejs.
fuente
Mire node-queue-lib . Quizás sea suficiente que tú. Es compatible con node.js y navegadores. Tiene dos estrategias de entrega: transmisión y round-robin. Solo javascript.
Ejemplo rápido:
fuente
Usé KUE con socketIO como lo describiste. Guardé el socketID con el trabajo y luego pude recuperarlo en el trabajo completo. KUE se basa en redis y tiene buenos ejemplos en github
algo como esto....
fuente
Es posible que también desee consultar ewd-qoper8: https://github.com/robtweed/ewd-qoper8
fuente