Use a single configuration URI for Redis clusters
This commit is contained in:
parent
8359ef73f4
commit
4aaae3f445
|
@ -11,41 +11,40 @@ import javax.validation.Valid;
|
||||||
import javax.validation.constraints.NotEmpty;
|
import javax.validation.constraints.NotEmpty;
|
||||||
import javax.validation.constraints.NotNull;
|
import javax.validation.constraints.NotNull;
|
||||||
import java.time.Duration;
|
import java.time.Duration;
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public class RedisClusterConfiguration {
|
public class RedisClusterConfiguration {
|
||||||
|
|
||||||
@JsonProperty
|
@JsonProperty
|
||||||
@NotEmpty
|
@NotEmpty
|
||||||
private List<String> urls;
|
private String configurationUri;
|
||||||
|
|
||||||
@JsonProperty
|
@JsonProperty
|
||||||
@NotNull
|
@NotNull
|
||||||
private Duration timeout = Duration.ofMillis(3_000);
|
private Duration timeout = Duration.ofMillis(3_000);
|
||||||
|
|
||||||
@JsonProperty
|
@JsonProperty
|
||||||
@NotNull
|
@NotNull
|
||||||
@Valid
|
@Valid
|
||||||
private CircuitBreakerConfiguration circuitBreaker = new CircuitBreakerConfiguration();
|
private CircuitBreakerConfiguration circuitBreaker = new CircuitBreakerConfiguration();
|
||||||
|
|
||||||
@JsonProperty
|
@JsonProperty
|
||||||
@NotNull
|
@NotNull
|
||||||
@Valid
|
@Valid
|
||||||
private RetryConfiguration retry = new RetryConfiguration();
|
private RetryConfiguration retry = new RetryConfiguration();
|
||||||
|
|
||||||
public List<String> getUrls() {
|
public String getConfigurationUri() {
|
||||||
return urls;
|
return configurationUri;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Duration getTimeout() {
|
public Duration getTimeout() {
|
||||||
return timeout;
|
return timeout;
|
||||||
}
|
}
|
||||||
|
|
||||||
public CircuitBreakerConfiguration getCircuitBreakerConfiguration() {
|
public CircuitBreakerConfiguration getCircuitBreakerConfiguration() {
|
||||||
return circuitBreaker;
|
return circuitBreaker;
|
||||||
}
|
}
|
||||||
|
|
||||||
public RetryConfiguration getRetryConfiguration() {
|
public RetryConfiguration getRetryConfiguration() {
|
||||||
return retry;
|
return retry;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,7 +11,6 @@ import io.github.resilience4j.circuitbreaker.CircuitBreaker;
|
||||||
import io.github.resilience4j.retry.Retry;
|
import io.github.resilience4j.retry.Retry;
|
||||||
import io.lettuce.core.RedisCommandTimeoutException;
|
import io.lettuce.core.RedisCommandTimeoutException;
|
||||||
import io.lettuce.core.RedisException;
|
import io.lettuce.core.RedisException;
|
||||||
import io.lettuce.core.RedisURI;
|
|
||||||
import io.lettuce.core.cluster.ClusterClientOptions;
|
import io.lettuce.core.cluster.ClusterClientOptions;
|
||||||
import io.lettuce.core.cluster.ClusterTopologyRefreshOptions;
|
import io.lettuce.core.cluster.ClusterTopologyRefreshOptions;
|
||||||
import io.lettuce.core.cluster.RedisClusterClient;
|
import io.lettuce.core.cluster.RedisClusterClient;
|
||||||
|
@ -24,7 +23,6 @@ import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
import java.util.stream.Collectors;
|
|
||||||
import org.whispersystems.textsecuregcm.configuration.CircuitBreakerConfiguration;
|
import org.whispersystems.textsecuregcm.configuration.CircuitBreakerConfiguration;
|
||||||
import org.whispersystems.textsecuregcm.configuration.RedisClusterConfiguration;
|
import org.whispersystems.textsecuregcm.configuration.RedisClusterConfiguration;
|
||||||
import org.whispersystems.textsecuregcm.configuration.RetryConfiguration;
|
import org.whispersystems.textsecuregcm.configuration.RetryConfiguration;
|
||||||
|
@ -51,7 +49,7 @@ public class FaultTolerantRedisCluster {
|
||||||
|
|
||||||
public FaultTolerantRedisCluster(final String name, final RedisClusterConfiguration clusterConfiguration, final ClientResources clientResources) {
|
public FaultTolerantRedisCluster(final String name, final RedisClusterConfiguration clusterConfiguration, final ClientResources clientResources) {
|
||||||
this(name,
|
this(name,
|
||||||
RedisClusterClient.create(clientResources, clusterConfiguration.getUrls().stream().map(RedisURI::create).collect(Collectors.toList())),
|
RedisClusterClient.create(clientResources, clusterConfiguration.getConfigurationUri()),
|
||||||
clusterConfiguration.getTimeout(),
|
clusterConfiguration.getTimeout(),
|
||||||
clusterConfiguration.getCircuitBreakerConfiguration(),
|
clusterConfiguration.getCircuitBreakerConfiguration(),
|
||||||
clusterConfiguration.getRetryConfiguration());
|
clusterConfiguration.getRetryConfiguration());
|
||||||
|
|
Loading…
Reference in New Issue