Используя клиент StackExchange.Redis в приложении С#, я пытаюсь использовать PubSub для выполнения межсерверной связи между веб-серверами, использующими одно и то же приложение. В этой модели каждый сервер имеет собственный сервер Redis, а его мультиплексор соединений устанавливает локальный сервер в качестве первого сервера в списке. Другими словами, SERVER_A и SERVER_B запускают сервер Redis на порту 6379 и имеют строки подключения следующим образом:
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?
Вы не упоминаете репликации в своем описании. Когда SE.Redis подключается к нескольким серверам, он должен быть родственным семейством серверов - например, либо:
Группы репликации имеют механизмы распределения для pub/sub. Два отключенных сервера: нет.
IEnumerable<ConnectionMultiplexer>
и затем читать с использованием одного ConnectionMultiplexer, настроенного, как указано в вопросе. Мы только входим в PubSub и не можем понять, что происходит.