【问题标题】:Redis Message Queue - Auto receive message in NodeJS appRedis 消息队列 - 在 NodeJS 应用程序中自动接收消息
【发布时间】:2016-12-08 22:07:10
【问题描述】:

我正在构建一个 nodeJS 应用程序。我正在使用 redis 消息队列。但是要接收推送到队列的新消息,我必须调用 rsmq.receiveMessage 方法。我希望这是自动的,就像将新消息推送到 redis 消息队列时一样,我希望自动调用 rsmq.receiveMessage,即基于事件

https://github.com/smrchy/rsmq

【问题讨论】:

标签: node.js redis node-redis


【解决方案1】:

Redis pubsub 可以执行您描述的这种“服务器推送”技术。您的客户在它感兴趣的一个或多个主题上调用“订阅”,当数据到达时,数据被“发布”到该主题。每个已发布的有效负载都会调用您的客户端代码。

这是一个“正确的”消息队列(如 RabbitMQ)之间的区别在于

  • 数据未缓冲 - 如果您的订阅客户端在数据到达时未侦听,则数据丢失
  • 没有已读回执 - 在其他队列平台中,队列项目可以在工作人员处理时标记为“进行中”。队列项可以在超时后交给另一个工作人员
  • 可扩展性 - 真正的消息队列允许在连接的工作人员之间共享工作:工作人员越多,工作共享的方式就越多。 PubSub 将所有数据发送给所有工作人员

【讨论】:

  • 感谢@Glynn Bird。我对你的第一点“数据没有缓冲”有疑问。当我在订阅者中使用 rsmq 的 receiveMessage 时,我能够获取发布者发送的所有消息,即使发布者发送消息时订阅者没有收听。它是如何工作的?
猜你喜欢
  • 2016-03-29
  • 2014-07-08
  • 1970-01-01
  • 2011-06-14
  • 2010-09-19
  • 2012-01-19
  • 1970-01-01
  • 2011-07-10
  • 2011-07-15
相关资源
最近更新 更多