Ich möchte eine Nachrichtenwarteschlange in einer kleinen Web-App verwenden, die ich mit node.js erstelle. Ich habe mir resque angesehen, bin mir aber nicht sicher, ob das angemessen ist. Ziel ist es, Benachrichtigungen basierend auf Backend und anderen Clientaktionen mit Socketio an Clients zu senden. Ich könnte dies nur mit Socketio tun, aber ich dachte, eine richtige Nachrichtenwarteschlange würde dies sauberer machen und ich müsste das Rad nicht neu erfinden.
Welche Möglichkeiten gibt es da draußen?
node.js
message-queue
Björn
quelle
quelle
Antworten:
Sie können redis mit dem blitzschnellen node_redis- Client verwenden. Es hat sogar eine eingebaute Pubsub- Semantik.
quelle
Sie können den Knoten STOMP-Client verwenden . Auf diese Weise können Sie eine Vielzahl von Nachrichtenwarteschlangen integrieren, darunter:
Ich habe diese Bibliothek noch nie benutzt, daher kann ich nicht für ihre Qualität bürgen. Aber STOMP ist ein ziemlich einfaches Protokoll, daher vermute ich, dass Sie es bei Bedarf in die Einreichung hacken können.
Eine andere Option ist die Verwendung von Beanstalkd mit Node . beanstalkd ist eine sehr schnelle "Task-Warteschlange" in C, die sehr gut ist, wenn Sie die Funktionsflexibilität der oben aufgeführten Broker nicht benötigen.
quelle
Schamloser Plug: Ich arbeite an Bokeh : einer einfachen, skalierbaren und blitzschnellen Task-Warteschlange, die auf ZeroMQ basiert. Es unterstützt steckbare Datenspeicher für persistente Aufgaben, derzeit im Speicher, Redis und Riak werden unterstützt. Hör zu.
quelle
Hier sind einige Empfehlungen, die ich aussprechen kann:
node-amqp : Ein RabbitMQ-Client, den ich erfolgreich in Kombination mit Socket.IO verwendet habe, um unter anderem ein Echtzeit-Mehrspieler-Spiel und eine Chat-Anwendung zu erstellen. Scheint zuverlässig genug.
zeromq.node : Wenn Sie den nicht vermittelten Weg gehen möchten, ist dies möglicherweise einen Blick wert. Mehr Arbeit für die Implementierung von Funktionen, aber mit größerer Wahrscheinlichkeit eine geringere Latenz und einen höheren Durchsatz.
quelle
zeromq.node
jetzt hier gepflegt: zeromq.jsSchauen Sie sich Node-Busmq an - es handelt sich um einen produktionsfähigen, hochverfügbaren und skalierbaren Nachrichtenbus, der von Redis unterstützt wird.
Ich habe dieses Modul für unsere globale Cloud geschrieben und es wird derzeit in unserer Produktionsumgebung in mehreren Rechenzentren auf der ganzen Welt bereitgestellt. Es unterstützt benannte Warteschlangen, Peer-to-Peer-Kommunikation, garantierte Zustellung und Verbund.
Weitere Informationen darüber, warum wir dieses Modul erstellt haben, finden Sie in diesem Blogbeitrag: All Aboard The Message Bus
quelle
kue ist die einzige Nachrichtenwarteschlange, die Sie jemals benötigen würden
quelle
bull
war für mich einfacher. Mit warkue
ich in der Dokumentation verloren.Ich empfehle Kestrel auszuprobieren, es ist schnell und einfach wie Beanstalk, unterstützt aber Fanout-Warteschlangen. Spricht zwischengespeichert. Es wurde mit Scala erstellt und bei Twitter verwendet.
quelle
Vielleicht möchten Sie einen Blick darauf werfen
Redis Simple Message Queue für Node.js
Welches verwendet Redis und bietet die meisten Funktionen von Amazons SQS.
quelle
Wie wäre es mit Azure ServiceBus? Es unterstützt NodeJS.
quelle
Schauen Sie sich Node-Queue-Lib an . Vielleicht reicht es dir. Es unterstützt node.js und Browser. Hat zwei Lieferstrategien: Broadcast und Round-Robin. Nur Javascript.
Kurzes Beispiel:
quelle
Ich habe KUE mit socketIO verwendet, wie Sie es beschrieben haben. Ich habe die socketID mit dem Job gespeichert und konnte sie dann im Job Complete abrufen. KUE basiert auf redis und hat gute Beispiele für github
etwas wie das....
quelle
Vielleicht möchten Sie auch ewd-qoper8 überprüfen: https://github.com/robtweed/ewd-qoper8
quelle