我想在正在使用node.js构建的小型Web应用程序中使用消息队列。我查看了resque,但不确定是否适合。目标是基于后端和其他客户端操作使用socketio向客户端推送通知。我本可以只使用socketio来实现这一点,但我想也许一个适当的消息队列会使此过程更加清晰,并且我不必重新发明轮子。
那么有哪些选择呢?
我想在正在使用node.js构建的小型Web应用程序中使用消息队列。我查看了resque,但不确定是否适合。目标是基于后端和其他客户端操作使用socketio向客户端推送通知。我本可以只使用socketio来实现这一点,但我想也许一个适当的消息队列会使此过程更加清晰,并且我不必重新发明轮子。
那么有哪些选择呢?
不要介意我自作聪明地插一句话:我正在开发Bokeh,它是一个简单、可扩展和高效的任务队列,基于ZeroMQ构建。它支持可插拔的数据存储来保留任务,目前支持内存、Redis和Riak。快去看看吧。
我可以提供以下几个建议:
node-amqp:这是一个RabbitMQ客户端,我已经成功地将其与Socket.IO结合使用,在实时多人游戏和聊天应用程序等方面使用。看起来非常可靠。
zeromq.node:如果您想采用无代理路线,这可能值得一看。需要更多的工作来实现功能,但您更有可能获得更低的延迟和更高的吞吐量。
我建议尝试使用Kestrel,它像Beanstalk一样快速简单,但支持扇出队列。同时,它还支持memcached。该系统是使用Scala构建的,在Twitter中得到了广泛应用。
kue 是您所需的唯一消息队列。
bull
对我来说更加简单。而在 kue
中,我在文档中迷失了方向。 - Marinos Anvar 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');
Azure ServiceBus怎么样?它支持nodejs。