StackExchange Redis .NET клиент не получает сообщения при переупорядочении соединений

1

Используя клиент 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?

Теги:
stackexchange.redis

1 ответ

0
Лучший ответ

Вы не упоминаете репликации в своем описании. Когда SE.Redis подключается к нескольким серверам, он должен быть родственным семейством серверов - например, либо:

  • два или более 2. * сервера, связанные через master/slave
  • три или более 3. * сервера, связанные через формальный кластер

Группы репликации имеют механизмы распределения для pub/sub. Два отключенных сервера: нет.

  • 0
    Хорошо, это имеет смысл; наша установка не имеет формального кластера, потому что мы запускаем Redis в Windows, и мы не можем использовать Master / Slave, потому что каждый сервер Redis должен быть доступен для записи. На самом деле мы издеваемся над Master / Slave, заставляя наше приложение писать на оба сервера Redis с помощью IEnumerable<ConnectionMultiplexer> и затем читать с использованием одного ConnectionMultiplexer, настроенного, как указано в вопросе. Мы только входим в PubSub и не можем понять, что происходит.
  • 0
    @saluce есть опция , которая позволяет рабам быть записываемый, но это будет означать , что они расходятся и не будет истинным ведущий / ведомый - также, публиковать на мастер пошел бы на раба, но публиковать на подчиненном не получает мастеру. На этой неделе в списке рассылки redis состоялась интересная дискуссия о репликации с несколькими хозяевами (в отличие от кластера), но это просто случайный всплеск третьей стороны, и, конечно, он не будет существовать в версии MSOpenTech для Windows.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню