node.js - сообщений - как работает node js




Каковы хорошие параметры очереди сообщений для nodejs? (8)

Глядя на использование очереди сообщений в небольшом веб-приложении, я строю с node.js. Я посмотрел на реск, но не уверен, что это уместно. Цель состоит в том, чтобы направить уведомления клиентам на основе бэкэнд и других действий клиента с помощью socketio. Я мог бы сделать это с помощью только сокета, но я подумал, что, возможно, правильная очередь сообщений сделает это чище, и мне не придется изобретать велосипед.

Какие существуют варианты?


Бесстыдный штепсель: я работаю над Bokeh : простая, масштабируемая и пылающая задача, построенная на ZeroMQ. Он поддерживает подключаемые хранилища данных для сохраняющихся задач, в настоящее время в памяти, Redis и Riak поддерживаются. Проверьте это.


Взгляните на node-busmq - это класс производительности, высокодоступная и масштабируемая шина сообщений, поддерживаемая redis.

Я написал этот модуль для нашего глобального облака и в настоящее время его развертывают в нашей производственной среде в нескольких центрах обработки данных по всему миру. Он поддерживает именованные очереди, одноранговую связь, гарантированную доставку и федерацию.

Для получения дополнительной информации о том, почему мы создали этот модуль, вы можете прочитать это сообщение в блоге: All Aboard The Message Bus


Вы можете взглянуть на

npmjs.com/package/rsmq

Который использует Redis и предлагает большинство возможностей SQS Amazons.


Вы можете использовать клиент узла STOMP . Это позволит вам интегрироваться с различными очередями сообщений, включая:

  • ActiveMQ
  • RabbitMQ
  • HornetQ

Я раньше не использовал эту библиотеку, поэтому я не могу ручаться за ее качество. Но STOMP - довольно простой протокол, поэтому я подозреваю, что вы можете его взломать в случае необходимости.

Другой вариант - использовать beanstalkd с узлом . beanstalkd - очень быстрая «очередь задач», написанная на C, что очень хорошо, если вам не нужна гибкость функций брокеров, перечисленных выше.


Как насчет Azure ServiceBus? Он поддерживает nodejs.


Посмотрите на node-queue-lib . Возможно, этого достаточно. Он поддерживает node.js и браузеры. Имеет две стратегии доставки: трансляцию и круговое движение. Только javascript.

Быстрый пример:

var Queue = require('node-queue-lib/queue.core');

var queue = new Queue('Queue name', 'broadcast');

// subscribe on 'Queue name' messages
queue.subscribe(function (err, subscriber) {
    subscriber.on('error', function(err){
        //
    });
    subscriber.on('data', function (data, accept) {
        console.log(data);
        accept(); // accept process message
    });
});

// publish message
queue.publish('test');

Я рекомендую попробовать Kestrel , это быстро и просто, как Beanstalk, но поддерживает очереди разветвления. Говорит memcached. Он построен с использованием Scala и используется в Twitter.


вы можете использовать redis с быстрым клиентом node_redis . Он даже имеет встроенную семантику pubsub .







message-queue