From cc3e5d23e496b5dc55f79135b972ad49ff598ad6 Mon Sep 17 00:00:00 2001 From: Jon Chambers Date: Sun, 10 Jan 2021 15:57:12 -0500 Subject: [PATCH] Enable Lettuce adaptive topology refreshes. --- .../textsecuregcm/redis/FaultTolerantRedisCluster.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/redis/FaultTolerantRedisCluster.java b/service/src/main/java/org/whispersystems/textsecuregcm/redis/FaultTolerantRedisCluster.java index ef8536058..290f9813d 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/redis/FaultTolerantRedisCluster.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/redis/FaultTolerantRedisCluster.java @@ -14,6 +14,7 @@ import io.github.resilience4j.retry.Retry; import io.lettuce.core.RedisCommandTimeoutException; import io.lettuce.core.RedisURI; import io.lettuce.core.cluster.ClusterClientOptions; +import io.lettuce.core.cluster.ClusterTopologyRefreshOptions; import io.lettuce.core.cluster.RedisClusterClient; import io.lettuce.core.cluster.api.StatefulRedisClusterConnection; import io.lettuce.core.cluster.pubsub.StatefulRedisClusterPubSubConnection; @@ -78,7 +79,13 @@ public class FaultTolerantRedisCluster { this.clusterClient = clusterClient; this.clusterClient.setDefaultTimeout(commandTimeout); - this.clusterClient.setOptions(ClusterClientOptions.builder().validateClusterNodeMembership(false).build()); + this.clusterClient.setOptions(ClusterClientOptions.builder() + .validateClusterNodeMembership(false) + .topologyRefreshOptions(ClusterTopologyRefreshOptions.builder() + .enablePeriodicRefresh() + .enableAllAdaptiveRefreshTriggers() + .build()) + .build()); this.stringConnection = clusterClient.connect(); this.binaryConnection = clusterClient.connect(ByteArrayCodec.INSTANCE);