提问者:小点点

Redis:SpringBoot应用程序请求在关闭一个Redis主节点时一直失败


这几天被一个redis问题屏蔽了,提前感谢大家的任何建议。以下是一些细节:

Evn:Spring boot 2.0.3.RELEASE,Redis 3.0.6 集群(3 个主集群,3 个从集群),

startter:spring-boot-starter-data-redis(带有 spring boot 的 deaul 版本),这意味着应用程序将使用 letture 作为 redis 客户端

错误场景:

>

  • 启动应用程序并发送一些请求,一切正常

    停在主节点上,对应的从机大约需要20秒才能故障转移成为主节点,这也很好。

    在接下来的20秒(故障转移时间)期间,如果继续发送请求。

      < li >在20多岁时,请求失败,这是意料之中的事 < Li > 20秒后(从变为主),请求仍然失败,这是意料之外的

    在20秒以上(故障切换时间)期间,如果没有发送重新请求。当奴隶成为主人后,最后一个请求就可以了。

    在上一步中没有写入操作

    配置:

    < code > conf cache:type:redis redis:cluster:ip1:port(m),ip1:port(s),ip2:port(m),ip2:port(s),ip3:port(m),ip3:port(s)max-redirects:3 password:xxxx time out:1000 pool:max-active:500 max-wait:1500

    代码:只需创建一个简单的 CacheManager bean

    java @Bean public CacheManager cacheManager(RedisConnectionFacotry redisConnectionFacotry){ return new RedisCacheManager(RedisCacheWriter.nonLockingRedisCacheWriter(redisConnectionFacotry), redisCacheConfig) // set serializer and timeout }

    我们在代码中使用Spring缓存,注释如下:@Cacheput等。redis中的总数据小于10M,redis的总容量为2G。

    需要你的帮助:)


  • 共1个答案

    匿名用户

    当我们从莴苣换成jedis时,问题出现了,但没有找到根本原因。