Use a single configuration URI for Redis clusters

This commit is contained in:
Jon Chambers 2021-09-27 14:01:05 -04:00 committed by Jon Chambers
parent 8359ef73f4
commit 4aaae3f445
2 changed files with 27 additions and 30 deletions

View File

@ -11,13 +11,12 @@ 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<String> urls;
private String configurationUri;
@JsonProperty
@NotNull
@ -33,8 +32,8 @@ public class RedisClusterConfiguration {
@Valid
private RetryConfiguration retry = new RetryConfiguration();
public List<String> getUrls() {
return urls;
public String getConfigurationUri() {
return configurationUri;
}
public Duration getTimeout() {

View File

@ -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());