Chcę użyć kolejki komunikatów w małej aplikacji internetowej, którą tworzę za pomocą node.js. Spojrzałem na resque, ale nie byłem pewien, czy to właściwe. Celem jest wypychanie powiadomień do klientów na podstawie zaplecza i innych działań klienta za pomocą gniazda. Mógłbym to zrobić za pomocą samego socketio, ale pomyślałem, że może odpowiednia kolejka komunikatów sprawi, że będzie to czystsze i nie będę musiał wymyślać koła na nowo.
Jakie są dostępne opcje?
node.js
message-queue
Bjorn
źródło
źródło
Odpowiedzi:
możesz użyć redis z błyskawicznym klientem node_redis . Ma nawet wbudowaną semantykę pubsub .
źródło
Możesz użyć klienta STOMP węzła . Umożliwiłoby to integrację z różnymi kolejkami wiadomości, w tym:
Nie korzystałem wcześniej z tej biblioteki, więc nie mogę ręczyć za jej jakość. Ale STOMP to dość prosty protokół, więc podejrzewam, że w razie potrzeby możesz go włamać do przedłożenia.
Inną opcją jest użycie beanstalkd z node . beanstalkd to bardzo szybka "kolejka zadań" napisana w C, która jest bardzo dobra, jeśli nie potrzebujesz elastyczności funkcji wymienionych powyżej brokerów.
źródło
Bezwstydna wtyczka: Pracuję nad Bokeh : prostą, skalowalną i niesamowicie szybką kolejką zadań zbudowaną na ZeroMQ. Obsługuje wtykowe magazyny danych dla trwałych zadań, obecnie w pamięci, obsługiwane są Redis i Riak. Sprawdź to.
źródło
Oto kilka zaleceń, które mogę przedstawić:
node-amqp : klient RabbitMQ , którego z powodzeniem użyłem w połączeniu z Socket.IO, aby między innymi stworzyć grę wieloosobową w czasie rzeczywistym i aplikację do czatu. Wydaje się wystarczająco wiarygodne.
zeromq.node : Jeśli chcesz skorzystać z trasy nieobsługiwanej przez brokera, może to być warte obejrzenia. Więcej pracy przy implementacji funkcjonalności, ale istnieje większe prawdopodobieństwo, że uzyskasz mniejsze opóźnienia i wyższą przepustowość.
źródło
zeromq.node
teraz utrzymywane tutaj: zeromq.jsSpójrz na node-busmq - to wysokiej jakości, wysoce dostępna i skalowalna magistrala komunikatów wspierana przez redis.
Napisałem ten moduł dla naszej globalnej chmury i obecnie jest on wdrażany w naszym środowisku produkcyjnym w kilku centrach danych na całym świecie. Obsługuje nazwane kolejki, komunikację peer-to-peer, gwarantowaną dostawę i federację.
Aby uzyskać więcej informacji o tym, dlaczego stworzyliśmy ten moduł, możesz przeczytać ten wpis na blogu: Wszyscy na pokład magistrali wiadomości
źródło
kue to jedyna kolejka wiadomości, jakiej kiedykolwiek będziesz potrzebować
źródło
bull
było dla mnie prostsze. Zkue
zagubiłem się w dokumentacji.Polecam wypróbować Kestrel , jest szybki i prosty jak Beanstalk, ale obsługuje kolejki fanoutów. Mówi memcached. Jest zbudowany przy użyciu Scala i używany na Twitterze.
źródło
Możesz rzucić okiem
Redis Simple Message Queue dla Node.js.
Który używa Redis i oferuje większość funkcji Amazons SQS.
źródło
A co z usługą Azure ServiceBus? Obsługuje nodejs.
źródło
Spójrz na node-queue-lib . Może wystarczy, że ty. Obsługuje node.js i przeglądarki. Ma dwie strategie wyświetlania: transmisja i okrężna. Tylko javascript.
Szybki przykład:
źródło
Użyłem KUE z socketIO, jak opisałeś. Zapisałem socketID z zadaniem i mogłem go odzyskać w Zadaniu zakończonym. KUE jest oparty na redis i ma dobre przykłady na github
coś takiego....
źródło
Możesz również sprawdzić ewd-qoper8: https://github.com/robtweed/ewd-qoper8
źródło