在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客户端中的一个错误吗?
答案 0 :(得分:0)
您未在说明中提及任何复制。当SE.Redis连接到多个服务器时,它将成为服务器的相关系列 - 例如:
复制组具有pub / sub的分发机制。两个断开连接的服务器:不要。