Ищу возможность использовать очередь сообщений в небольшом веб-приложении, которое я создаю с помощью node.js. Я посмотрел на resque, но не уверен, что это подходит. Цель состоит в том, чтобы отправлять клиентам уведомления на основе серверных и других действий клиента с помощью socketio. Я мог бы сделать это с помощью только socketio, но я подумал, что, возможно, правильная очередь сообщений сделает это чище, и мне не придется изобретать велосипед.
Какие есть варианты?
node.js
message-queue
Bjorn
источник
источник
Ответы:
вы можете использовать redis с молниеносным клиентом node_redis . Он даже имеет встроенную семантику pubsub .
источник
Вы можете использовать клиент узла STOMP . Это позволит вам интегрироваться с множеством очередей сообщений, включая:
Раньше я этой библиотекой не пользовался, поэтому за ее качество ручаться не могу. Но STOMP - довольно простой протокол, поэтому я подозреваю, что вы можете взломать его для отправки, если это необходимо.
Другой вариант - использовать beanstalkd с node . beanstalkd - это очень быстрая «очередь задач», написанная на C, которая очень хороша, если вам не нужна гибкость функций перечисленных выше брокеров.
источник
Бесстыдный плагин: я работаю над Bokeh : простой, масштабируемой и невероятно быстрой очередью задач, построенной на ZeroMQ. Он поддерживает подключаемые хранилища данных для сохраняющихся задач, в настоящее время в памяти, поддерживаются Redis и Riak. Проверить это.
источник
Вот несколько рекомендаций, которые я могу дать:
node-amqp : клиент RabbitMQ, который я успешно использовал в сочетании с Socket.IO для создания многопользовательской игры в реальном времени и приложения чата, среди прочего. Кажется достаточно надежным.
zeromq.node : если вы хотите пойти по маршруту без посредников, на это, возможно, стоит взглянуть. Больше работы для реализации функциональности, но у вас больше шансов получить меньшую задержку и более высокую пропускную способность.
источник
zeromq.node
теперь поддерживается здесь: zeromq.jsВзгляните на node-busmq - это высокодоступная и масштабируемая шина сообщений производственного уровня, поддерживаемая redis.
Я написал этот модуль для нашего глобального облака, и в настоящее время он развернут в нашей производственной среде в нескольких центрах обработки данных по всему миру. Он поддерживает именованные очереди, одноранговую связь, гарантированную доставку и федерацию.
Для получения дополнительной информации о том, почему мы создали этот модуль, вы можете прочитать это сообщение в блоге: All Aboard The Message Bus
источник
kue - единственная очередь сообщений, которая вам когда-либо понадобится
источник
bull
Для меня использование было более простым. Сkue
я потерялся в документации.Я рекомендую попробовать Kestrel , он быстрый и простой, как Beanstalk, но поддерживает очереди разветвления. Говорит memcached. Он построен с использованием Scala и используется в Twitter.
источник
Возможно, вы захотите взглянуть на
Простая очередь сообщений Redis для Node.js
Которая использует Redis и предлагает большинство функций Amazons SQS.
источник
Как насчет Azure ServiceBus? Он поддерживает nodejs.
источник
Посмотрите на node-queue-lib . Возможно, этого достаточно. Он поддерживает node.js и браузеры. Имеет две стратегии доставки: широковещательную и циклическую. Только javascript.
Быстрый пример:
источник
Я использовал KUE с socketIO, как вы описали. Я сохранил идентификатор сокета вместе с заданием, а затем смог получить его в завершении задания. KUE основан на redis и имеет хорошие примеры на github
что-то вроде этого....
источник
Вы также можете проверить ewd-qoper8: https://github.com/robtweed/ewd-qoper8
источник