From 4aaae3f44576b8e6ffc46082e69b47d9c2198fcd Mon Sep 17 00:00:00 2001 From: Jon Chambers Date: Mon, 27 Sep 2021 14:01:05 -0400 Subject: [PATCH] Use a single configuration URI for Redis clusters --- .../RedisClusterConfiguration.java | 53 +++++++++---------- .../redis/FaultTolerantRedisCluster.java | 4 +- 2 files changed, 27 insertions(+), 30 deletions(-) diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/configuration/RedisClusterConfiguration.java b/service/src/main/java/org/whispersystems/textsecuregcm/configuration/RedisClusterConfiguration.java index 661effa5d..07d1682cf 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/configuration/RedisClusterConfiguration.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/configuration/RedisClusterConfiguration.java @@ -11,41 +11,40 @@ import javax.validation.Valid; import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; import java.time.Duration; -import java.util.List; public class RedisClusterConfiguration { - @JsonProperty - @NotEmpty - private List urls; + @JsonProperty + @NotEmpty + private String configurationUri; - @JsonProperty - @NotNull - private Duration timeout = Duration.ofMillis(3_000); + @JsonProperty + @NotNull + private Duration timeout = Duration.ofMillis(3_000); - @JsonProperty - @NotNull - @Valid - private CircuitBreakerConfiguration circuitBreaker = new CircuitBreakerConfiguration(); + @JsonProperty + @NotNull + @Valid + private CircuitBreakerConfiguration circuitBreaker = new CircuitBreakerConfiguration(); - @JsonProperty - @NotNull - @Valid - private RetryConfiguration retry = new RetryConfiguration(); + @JsonProperty + @NotNull + @Valid + private RetryConfiguration retry = new RetryConfiguration(); - public List getUrls() { - return urls; - } + public String getConfigurationUri() { + return configurationUri; + } - public Duration getTimeout() { - return timeout; - } + public Duration getTimeout() { + return timeout; + } - public CircuitBreakerConfiguration getCircuitBreakerConfiguration() { - return circuitBreaker; - } + public CircuitBreakerConfiguration getCircuitBreakerConfiguration() { + return circuitBreaker; + } - public RetryConfiguration getRetryConfiguration() { - return retry; - } + public RetryConfiguration getRetryConfiguration() { + return retry; + } } 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 5483e6c04..cddc75ccb 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/redis/FaultTolerantRedisCluster.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/redis/FaultTolerantRedisCluster.java @@ -11,7 +11,6 @@ import io.github.resilience4j.circuitbreaker.CircuitBreaker; import io.github.resilience4j.retry.Retry; import io.lettuce.core.RedisCommandTimeoutException; import io.lettuce.core.RedisException; -import io.lettuce.core.RedisURI; import io.lettuce.core.cluster.ClusterClientOptions; import io.lettuce.core.cluster.ClusterTopologyRefreshOptions; import io.lettuce.core.cluster.RedisClusterClient; @@ -24,7 +23,6 @@ import java.util.ArrayList; import java.util.List; import java.util.function.Consumer; import java.util.function.Function; -import java.util.stream.Collectors; import org.whispersystems.textsecuregcm.configuration.CircuitBreakerConfiguration; import org.whispersystems.textsecuregcm.configuration.RedisClusterConfiguration; import org.whispersystems.textsecuregcm.configuration.RetryConfiguration; @@ -51,7 +49,7 @@ public class FaultTolerantRedisCluster { public FaultTolerantRedisCluster(final String name, final RedisClusterConfiguration clusterConfiguration, final ClientResources clientResources) { this(name, - RedisClusterClient.create(clientResources, clusterConfiguration.getUrls().stream().map(RedisURI::create).collect(Collectors.toList())), + RedisClusterClient.create(clientResources, clusterConfiguration.getConfigurationUri()), clusterConfiguration.getTimeout(), clusterConfiguration.getCircuitBreakerConfiguration(), clusterConfiguration.getRetryConfiguration());