Вопрос

Резервирование redis через haproxy

Добрый день.

bpmonline 7.14.3.1686, переходим с Redis 3.2.100 Windows на Redis 5.0.3 Linux

Работают два независимых master экземпляра CentOS Redis 5.0.3 , перед ними настраиваем балансировщик HAProxy в конфигурации active/standby (balance first)



listen redisProd

        bind :6379

        maxconn 10000

        mode tcp

        balance first

        timeout connect 4s

        timeout server  30s

        timeout client  30s

        server Redis1 prodRedis01:6379 check inter 1s

        server Redis2 prodRedis02:6379 check inter 1s

 

Строка подключения в web.config (10.0.0.1 - адрес балансировщика)

 

После старта приложения в Redis.log раз в 30 сек начинают сыпаться однотипные ошибки клиента ServiceStack.Redis

 

2020-04-16 17:02:16,179 [53] INFO IIS APPPOOL\bpmonline Redis ParseSubscriptionResults - Unsubscribed from channel []

2020-04-16 17:02:16,179 [53] ERROR IIS APPPOOL\bpmonline Redis MoveNext - ServiceStack.Redis.RedisRetryableException: [14:02:16.177] No more data, sPort: 1901, LastCommand: 

   at ServiceStack.Redis.RedisNativeClient.CreateRetryableResponseError(String error)

   at ServiceStack.Redis.RedisNativeClient.ReadMultiData()

   at ServiceStack.Redis.RedisSubscription.SubscribeToChannels(String[] channels)

   at Terrasoft.Redis.RedisPubSubServer.d__17.MoveNext()

2020-04-16 17:02:16,179 [53] WARN IIS APPPOOL\bpmonline Redis MoveNext - Resubscribing to channel [MemoryCacheDataProviderChannel]...

 

Поиск решений на stackoverflow к успеху не привел. 

При направлении bpm на любой из 2-х новых redis напрямую без прокси работает без ошибок.

Подскажите возможное решение проблемы

Нравится

1 комментарий

HAProxy рекомендуют для масштабирования серверов приложений. А для отказоустойчивости Redis предлагают другую технологию — Sentinel.

Показать все комментарии