当Redis主设备之一在docker spring boot中关闭时,redisuce客户端总是尝试重新连接以阻止该应用程序

时间:2019-01-04 02:56:14

标签: spring spring-boot redis-cluster

我有一个Redis集群,在Docker中部署了3个Master 3 Slave。我正在使用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 = 1s

     

spring.redis.lettuce.pool.min-idle = 5

     

spring.redis.lettuce.pool.max-active = 10

     

spring.cache.redis.time-to-live = 10800s

     

spring.cache.redis.key-prefix = mds

     

spring.cache.redis.cache-null-values = false

master.redis.service:6379是我在领事ui中注册的redis服务。 (用于服务发现的Hashi corp服务)。这是一个负载均衡网址。

当我的一个主容器死亡并在另一个容器中重新部署时,spring boot redis客户端尝试与OLD ip(已失效的容器的ip)建立连接。在建立此连接之前,该应用已被阻止。

我尝试创建一个自定义CacheErrorHandler,它仅处理RuntimeException而不处理此连接问题。

如果存在缓存连接问题,我希望我的应用程序忽略此问题并转到数据库吗?

如何解决此问题?

2019-01-03 21:30:38.463警告76 --- [ioEventLoop-4-7] ilcore.protocol.ConnectionWatchdog:无法重新连接:io.netty.channel.AbstractChannel $ AnnotatedNoRouteToHostException:没有路由到主机: / ipaddress:6379

0 个答案:

没有答案