nodejs有什么好的消息队列选项?

Bjo*_*orn 110 message-queue node.js

希望在我使用node.js构建的小型Web应用程序中使用消息队列.我看了resque但不确定是否合适.目标是通过socketio基于后端和其他客户端操作将通知推送到客户端.我可以用socketio做到这一点,但我认为可能一个正确的消息队列会使这个更清洁,我不必重新发明轮子.

有什么选择?

Alf*_*red 51

你可以使用redis与闪电般快速的node_redis客户端.它甚至还内置了pubsub语义.

  • 我建议在redis之上使用一个好的排队模块,就像RSMQ一样,这似乎很简单.https://www.npmjs.com/package/rsmq (7认同)

Jam*_*per 12

您可以使用节点STOMP客户端.这将允许您与各种消息队列集成,包括:

  • ActiveMQ的
  • 的RabbitMQ
  • HornetQ的

我之前没有使用过这个库,所以我不能保证它的质量.但STOMP是一个非常简单的协议,所以我怀疑你可以在必要时将其破解为提交.

另一个选择是使用beanstalkd和node.beanstalkd是一个用C编写的非常快速的"任务队列",如果你不需要上面列出的代理的功能灵活性,这是非常好的.


Jos*_*ett 10

无耻的插件:我正在研究Bokeh:一个基于ZeroMQ构建的简单,可扩展且超快的任务队列.它支持用于持久化任务的可插拔数据存储,目前在内存中,支持Redis和Riak.看看这个.


Rob*_*yes 10

以下是我可以提出的一些建议:

node-amqp:一个RabbitMQ客户端,我已经成功地与Socket.IO结合使用,可以创建一个实时的多人游戏和聊天应用程序.似乎足够可靠.

zeromq.node:如果你想沿着非经纪人的路线走下去,这可能值得一看.更多工作来实现功能,但您更有可能获得更低的延迟和更高的吞吐量.


fuj*_*ish 8

看看node-busmq - 它是一个由redis支持的生产级,高可用性和可扩展的消息总线.

我为我们的全球云编写了这个模块,它目前在我们的生产环境中部署在世界各地的几个数据中心.它支持命名队列,点对点通信,保证传递和联合.

有关我们创建此模块的原因的更多信息,您可以阅读此博文:All Aboard The Message Bus


Pon*_*ono 6

kue是您需要的唯一消息队列

  • 除了kue没有很好的维护,有几个问题,而不是一个单一的测试! (26认同)
  • 此外,它是一个作业队列 - 而不是消息队列 (4认同)
  • 使用“bull”对我来说更直接。使用“kue”我迷失在文档中。 (2认同)

Edu*_*aad 5

我建议尝试使用Kestrel,它像Beanstalk一样快速而简单,但支持扇出队列.讲memcached.它是使用Scala构建的,并在Twitter上使用.

  • 值得注意的是,红隼不再处于积极发展阶段. (7认同)

小智 5

你可能想看看

Node.js 的 Redis 简单消息队列

它使用 Redis 并提供 Amazon SQS 的大部分功能。