Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Redis PubSub平衡订阅者的负载?_Redis_Message Queue - Fatal编程技术网

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

如何使用Redis PubSub平衡订阅者的负载?,redis,message-queue,Redis,Message Queue,我正在pubsub模式下使用Redis作为消息代理。 只有1个发布服务器和N个订阅服务器在收听同一频道。 对于原始pubsub模式,这些N个订阅者每次都将收到“相同”的消息。 我的问题是,Redis内部是否有任何机制或其他方式让这些订阅者为每个订阅者获取不同的消息?您有两种选择: 将消息添加到Redis列表中,多个使用者使用BLPOP和相关命令来使用这些消息 将消息添加到Redis Stream,多个使用者使用XREAD和相关命令来使用这些消息 感谢您的建议,使用RSMQ可能会达到目的。这是

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

您有两种选择:

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

  • 将消息添加到Redis Stream,多个使用者使用
    XREAD
    和相关命令来使用这些消息


  • 感谢您的建议,使用RSMQ可能会达到目的。这是正确的音调。刚才我用过了,好像可以用的很好。复制的nodejs服务应用程序能够处理如果两个节点都接收到消息,那么只有一个服务处理该过程。

    谢谢。我刚刚读到关于rsmq项目的文章,这可能会起作用,对吗?对不起,我对rsmq不熟悉。你最好查一下它的文件以了解详情。