如何使用Redis PubSub使订阅者负载均衡?

问题描述

我在pubsub模式下将Redis用作消息代理。 只有1个发布者和N个订阅者正在收听同一频道。 对于原始的pubsub模式,这N个订阅者每次都会收到“相同”消息。 我的问题是,Redis内部是否有任何机制或这些订阅者为每个订阅者获得不同消息的任何其他方式?

解决方法

您有两种选择:

  1. 将消息添加到Redis列表中,多个使用者使用BLPOP和相关命令来使用这些消息。

  2. 向Redis Stream添加消息,多个使用者使用XREAD和相关命令来消耗这些消息。

,

感谢使用 RSMQ https://www.npmjs.com/package/rsmq 的建议可能会成功。它的正确tonyc。刚才我用了它,似乎可以正常工作。复制的 nodejs 服务应用程序能够处理,如果两者都收到消息,则只有一个服务处理该过程。