【发布时间】:2021-02-07 01:10:01
【问题描述】:
我在 pubsub 模式下使用 Redis 作为消息代理。 只有 1 个发布者和 N 个订阅者在收听同一频道。 对于原始的 pubsub 模式,这 N 个订阅者每次都会收到“相同”的消息。 我的问题是,Redis 内部是否有任何机制或任何其他方式让这些订阅者为每个订阅者获取不同的消息?
【问题讨论】:
标签: redis message-queue
我在 pubsub 模式下使用 Redis 作为消息代理。 只有 1 个发布者和 N 个订阅者在收听同一频道。 对于原始的 pubsub 模式,这 N 个订阅者每次都会收到“相同”的消息。 我的问题是,Redis 内部是否有任何机制或任何其他方式让这些订阅者为每个订阅者获取不同的消息?
【问题讨论】:
标签: redis message-queue
你有两个选择:
将消息添加到 Redis 列表中,多个消费者使用BLPOP 和相关命令来消费这些消息。
向Redis Stream添加消息,多个消费者使用XREAD及相关命令消费这些消息。
【讨论】:
感谢使用 RSMQ https://www.npmjs.com/package/rsmq 的建议可以解决问题。它正确的tonyc。刚才我用了它,它似乎可以正常工作。复制的 nodejs 服务应用程序能够处理,如果两者都收到消息,那么只有一个服务处理该过程。
【讨论】: