Vous cherchez à utiliser une file d'attente de messages dans une petite application Web que je construis avec node.js. J'ai regardé resque mais je ne suis pas sûr que ce soit approprié. L'objectif est de transmettre des notifications aux clients en fonction du backend et d'autres actions client avec socketio. Je pourrais le faire avec juste socketio mais je pensais qu'une file d'attente de messages appropriée rendrait ce plus propre et je n'aurais pas à réinventer la roue.
Quelles sont les options disponibles?
node.js
message-queue
Bjorn
la source
la source
Réponses:
vous pouvez utiliser redis avec le client node_redis ultra- rapide . Il a même une sémantique pubsub intégrée .
la source
Vous pouvez utiliser le client STOMP de noeud . Cela vous permettrait de vous intégrer à une variété de files d'attente de messages, notamment:
Je n'ai jamais utilisé cette bibliothèque auparavant, je ne peux donc pas garantir sa qualité. Mais STOMP est un protocole assez simple, donc je suppose que vous pouvez le pirater en soumission si nécessaire.
Une autre option consiste à utiliser beanstalkd avec node . beanstalkd est une "file d'attente de tâches" très rapide écrite en C qui est très bonne si vous n'avez pas besoin de la flexibilité des fonctionnalités des courtiers listés ci-dessus.
la source
Plug sans vergogne: je travaille sur Bokeh : une file d'attente de tâches simple, évolutive et ultra-rapide construite sur ZeroMQ. Il prend en charge les magasins de données enfichables pour les tâches persistantes, actuellement en mémoire, Redis et Riak sont pris en charge. Vérifiez-le.
la source
Voici quelques recommandations que je peux faire:
node-amqp : Un client RabbitMQ que j'ai utilisé avec succès en combinaison avec Socket.IO pour créer un jeu multijoueur en temps réel et une application de chat, entre autres. Semble assez fiable.
zeromq.node : Si vous voulez emprunter la route non négociée, cela vaut peut-être la peine d'y jeter un coup d'œil. Plus de travail pour implémenter les fonctionnalités, mais vous êtes plus susceptible d'obtenir une latence plus faible et un débit plus élevé.
la source
zeromq.node
maintenant maintenu ici: zeromq.jsJetez un œil à node-busmq - il s'agit d'un bus de messages de niveau production, hautement disponible et évolutif soutenu par redis.
J'ai écrit ce module pour notre cloud mondial et il est actuellement déployé dans notre environnement de production dans plusieurs centres de données à travers le monde. Il prend en charge les files d'attente nommées, la communication peer-to-peer, la livraison garantie et la fédération.
Pour plus d'informations sur les raisons pour lesquelles nous avons créé ce module, vous pouvez lire ce billet de blog: Tous à bord du bus de messages
la source
kue est la seule file d'attente de messages dont vous auriez besoin
la source
bull
était plus simple pour moi. Aveckue
j'étais perdu dans la documentation.Je recommande d'essayer Kestrel , c'est rapide et simple comme Beanstalk mais prend en charge les files d'attente en éventail. Parle memcached. Il est construit avec Scala et utilisé sur Twitter.
la source
Vous voudrez peut-être jeter un œil à
Redis Simple Message Queue pour Node.js
Qui utilise Redis et offre la plupart des fonctionnalités d'Amazons SQS.
la source
Qu'en est-il d'Azure ServiceBus? Il prend en charge nodejs.
la source
Regardez node-queue-lib . Peut-être suffit-il que vous. Il prend en charge node.js et les navigateurs. A deux stratégies de livraison: diffusion et round-robin. Seulement javascript.
Exemple rapide:
la source
J'ai utilisé KUE avec socketIO comme vous l'avez décrit. J'ai stocké le socketID avec le travail et j'ai pu le récupérer dans le Job Complete .. KUE est basé sur redis et a de bons exemples sur github
quelque chose comme ça....
la source
Vous pouvez également consulter ewd-qoper8: https://github.com/robtweed/ewd-qoper8
la source