背景

  redis集群的时候,有一个master节点挂机了。

  springboot中调用redis的时候,会测试连接每一个node节点。

  这时候就会报错,连不上XX.XX.XX.XX:port(ip:port)。

原因

  redis集群采用了默认的luttuce连接池技术。

  (lettuce和jedis pool都是一种连接redis的池化方式,

  springboot中构建RedisConnectionFactory bean的时候,

  需要两个configure 参数:pool相关和redis cluster相关)

  lettuce连接redis集群的时候,默认不会改变redis集群的拓扑结构

  redis配置的节点中,一个挂机了,但是集群拓扑结构没有更新,

  lettuce维持有问题的拓扑机构,所以报错,所以需要更新rediscluster拓扑结构。

  --及时更新拓扑结构

修复手段

  扩展lettuce connection factory 相关的bean。

  让这个bean及时更新redis集群的拓扑结构,就是lettuce连接池不维持挂机的节点。

解决问题参考文档

lettuce官文:

https://lettuce.io/core/release/reference/index.html#clientoptions.cluster-specific-options 

网上同样案例(如果你的redis集群设置了密码,这个参考中就需要设置密码):

https://my.oschina.net/shichangcheng/blog/3135417

相关文章:

  • 2021-09-09
  • 2021-12-02
  • 2022-01-24
  • 2021-12-16
  • 2022-12-23
  • 2021-12-03
  • 2021-08-04
猜你喜欢
  • 2022-12-23
  • 2021-09-12
  • 2021-11-17
  • 2021-11-10
  • 2021-08-16
  • 2021-05-13
  • 2021-09-30
相关资源
相似解决方案