Проблемы с сетью и Redis PubSub - PullRequest
0 голосов
/ 25 апреля 2018

Я использую ServiceStack 5.0.2 и Redis 3.2.100 в Windows. У меня есть несколько узлов с активной подпиской на паб / подписка и несколько пабов в секунду.

Я заметил, что если служба Redis перезапускается, когда отсутствует физическое сетевое подключение (поэтому один из клиентов не может подключиться к службе Redis), этот клиент прекращает получать какие-либо сообщения после восстановления сети. Давайте назовем его «подписчиком-зомби»: он думает, что он все еще работает, но фактически никогда не получает сообщение: клиент думает, что у него есть соединение, то же соединение на сервере закрыто.

Проблема не исключение выдается в RedisSubscription.SubscribeToChannels, поэтому я не могу обнаружить проблему для повторной подписки.

Я также проанализировал RedisPubSubServer и, кажется, обнаружил проблему. В описанном случае RedisPubSubServer пытается перезапуститься (отправить команду остановки CTRL ), но «подписчик-зомби» не получает ее и повторная подписка не производится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...