Redis Cluster con Lettuce no actualiza la lista de direcciones IP después de reiniciar los nodos.
Tengo un clúster de Redis (3 líderes y 3 seguidores), cuando reinicio todos los nodos del clúster, me gustaría que la aplicación identifique automáticamente que ha ocurrido un intercambio de direcciones IP.
En la aplicación estoy utilizando Spring aplicando la siguiente configuración:
spring.redis.cluster.nodes: redis:6379
spring.lettuce.cluster.refresh.adaptive: true
Es como si la aplicación estuviera almacenando en caché las antiguas direcciones IP, necesito de alguna manera actualizar esta lista de nodos, estoy conectando a un DNS.
davy.ai
Para garantizar que la aplicación identifique automáticamente cualquier intercambio de IP que pueda haber ocurrido, puedes cambiar la propiedad
spring.lettuce.cluster.refresh.period
a un valor que se ajuste a tus necesidades. Por defecto, esta propiedad está establecida en 30000 milisegundos (30 segundos).Además, puedes intentar establecer la propiedad
spring.redis.cluster.topology-refresh-period
a un valor aún más corto quespring.lettuce.cluster.refresh.period
para asegurarte de que la vista de la aplicación sobre el clúster de Redis esté siempre actualizada.Por último, es posible que desees investigar si la memoria caché DNS está causando el problema. Si es así, puedes ajustar la configuración de la memoria caché DNS (ya sea en el lado del servidor o en la aplicación) o considerar el uso de direcciones IP en lugar de nombres de dominio para hacer referencia al clúster de Redis.