У меня есть кластер redis с 3 Master 3 Slaves, развернутыми в Docker.Я использую spring-boot 2.0.1.Последним и следующим является конфигурация
spring.cache.type = redis
spring.redis.cluster.nodes [0] = master. $ {REDIS_SERVICE_NAME} .service: 6379
spring.redis.cluster.max-redirects = 10
spring.redis.lettuce.pool.max-idle = 10
spring.redis.lettuce.pool.max-wait = 1 с
spring.redis.lettuce.pool.min-idle = 5
spring.redis.lettuce.pool.max-active = 10
spring.cache.redis.time-to-live = 10800 с
spring.cache.redis.key-prefix = mds
spring.cache.redis.cache-null-values = false
master.redis.service: 6379 - это моя служба переадресации, зарегистрированная в консуле.(Сервис Hashi Corp для поиска услуг).Это URL балансировки нагрузки.
когда один из моих главных контейнеров умирает и повторно развертывается в другом контейнере, клиент redis с весенней загрузкой пытается установить соединение с IP-адресом OLD (ip контейнера, который мертв).Пока это соединение не установлено, приложение заблокировано.
Я попытался создать пользовательский CacheErrorHandler, и он обрабатывает только RuntimeException, а не эту проблему подключения.
Я хочу, чтобы мое приложение игнорировало это и переходило к БД, если есть проблема с подключением кеша?
как решить эту проблему?
2019-01-03 21: 30: 38.463 ПРЕДУПРЕЖДЕНИЕ 76 --- [ioEventLoop-4-7] ilcore.protocol.ConnectionWatchdog: Невозможно повторно подключиться: io.netty.channel.AbstractChannel $ AnnotatedNoRouteToHostException: нет маршрута кхост: / ipaddress: 6379