springboot 集成配置
spring:
redis:
cluster:
#失败重连次数
max-redirects: 3
nodes: 127.0.0.1:6391,127.0.0.1:6392,127.0.0.1:6391,127.0.0.1:6393,127.0.0.1:6394,127.0.0.1:6395,127.0.0.1:6396
lettuce:
pool:
enabled: true
max-wait: -1ms
#max-idle 最大空闲数
#max-active 最大活跃数
#maxactive和maxidle这两个值最好设置得比较接近一些,
#不然maxidle设置得太小,单方面把maxactive调得很高,这样会导致频繁的连接销毁和新建,
#这跟连接池的理念就相悖了。
#为了提高性能,把maxactive调高,maxidle也相应调到一个接近的数字,
#池中空闲的连接就会维持一个适当的数量,才达到较理想的性能调优。
#除了redis连接池,其他连接池比如数据库连接池也同理可得。
max-active: 8
max-idle: 8
min-idle: 0
问题1 如果6391宕机,那么springboot 还以使用集群环境吗
不能,后台会出现两种错误
no further information:/127.0.0.1:6391
command timed out after 1 minutes
原因是springboot 客户端没有动态感知到Rediscluster的最新集群信息。
springboot2.X版本,redis默认的连接池采用lettuce,当redis 节点发生变化后,lettuce默认是不会刷新节点拓扑,以获得服务器上最新的拓扑结构。
解决方法
#解决 主机宕机 boot程序连接失败问题方法一
#支持集群拓扑动态感应刷新,默认关闭默认false
cluster:
refresh:
adaptive: true
#动态刷新
period: 2000