1

在 C# 应用程序中使用 StackExchange.Redis 客户端,我试图使用 PubSub 在运行同一应用程序的 Web 服务器之间执行跨服务器通信。在该模型中,每台服务器都运行自己的 Redis 服务器,其连接多路复用器将本地服务器设置为列表中的第一个服务器。换句话说,SERVER_A 和 SERVER_B 各自在 6379 端口上运行一个 Redis 服务器,并具有如下连接字符串:

SERVER_A --> "SERVER_A:6379,SERVER_B:6379"
SERVER_B --> "SERVER_B:6379,SERVER_A:6379"

使用外部客户端订阅每个 Redis 服务器,我可以看到 SERVER_A 向其本地 Redis 服务器发布消息。然而,SERVER_B 没有接收到消息,尽管通过多路复用器建立了连接。当我重新排列连接的顺序以使它们匹配时,来自 A 的消息会被 B 拾取。设置中是否有某些内容或我需要这样做,以便连接多路复用器将侦听所有服务器上的订阅,或者是这是 StackExchange.Redis 客户端中的错误?

4

1 回答 1

0

您在描述中没有提到任何复制。当 SE.Redis 连接到多个服务器时,它旨在成为一个相关的服务器系列 - 例如:

  • 通过主/从相关的两个或更多 2.* 服务器
  • 通过正式集群关联的三个或更多 3.* 服务器

复制组具有发布/订阅的分发机制。两个断开连接的服务器:不要。

于 2014-09-29T22:11:25.443 回答