Consolidate cluster and pub/sub circuit breakers.
This commit is contained in:
parent
5797e8aeec
commit
2d42b478ba
|
@ -5,7 +5,6 @@ import com.codahale.metrics.SharedMetricRegistries;
|
|||
import com.codahale.metrics.Timer;
|
||||
import io.github.resilience4j.circuitbreaker.CircuitBreaker;
|
||||
import io.lettuce.core.cluster.pubsub.StatefulRedisClusterPubSubConnection;
|
||||
import org.whispersystems.textsecuregcm.configuration.CircuitBreakerConfiguration;
|
||||
import org.whispersystems.textsecuregcm.util.CircuitBreakerUtil;
|
||||
import org.whispersystems.textsecuregcm.util.Constants;
|
||||
|
||||
|
@ -21,9 +20,9 @@ public class FaultTolerantPubSubConnection<K, V> {
|
|||
|
||||
private final Timer executeTimer;
|
||||
|
||||
public FaultTolerantPubSubConnection(final String name, final StatefulRedisClusterPubSubConnection<K, V> pubSubConnection, final CircuitBreakerConfiguration circuitBreakerConfiguration) {
|
||||
public FaultTolerantPubSubConnection(final String name, final StatefulRedisClusterPubSubConnection<K, V> pubSubConnection, final CircuitBreaker circuitBreaker) {
|
||||
this.pubSubConnection = pubSubConnection;
|
||||
this.circuitBreaker = CircuitBreaker.of(name + "-pubsub", circuitBreakerConfiguration.toCircuitBreakerConfig());
|
||||
this.circuitBreaker = circuitBreaker;
|
||||
|
||||
CircuitBreakerUtil.registerMetrics(SharedMetricRegistries.getOrCreate(Constants.METRICS_NAME),
|
||||
this.circuitBreaker,
|
||||
|
|
|
@ -41,7 +41,6 @@ public class FaultTolerantRedisCluster {
|
|||
|
||||
private final List<StatefulRedisClusterPubSubConnection<?, ?>> pubSubConnections = new ArrayList<>();
|
||||
|
||||
private final CircuitBreakerConfiguration circuitBreakerConfiguration;
|
||||
private final CircuitBreaker circuitBreaker;
|
||||
|
||||
private final Timer executeTimer;
|
||||
|
@ -65,8 +64,7 @@ public class FaultTolerantRedisCluster {
|
|||
this.stringConnection = clusterClient.connect();
|
||||
this.binaryConnection = clusterClient.connect(ByteArrayCodec.INSTANCE);
|
||||
|
||||
this.circuitBreakerConfiguration = circuitBreakerConfiguration;
|
||||
this.circuitBreaker = CircuitBreaker.of(name, circuitBreakerConfiguration.toCircuitBreakerConfig());
|
||||
this.circuitBreaker = CircuitBreaker.of(name, circuitBreakerConfiguration.toCircuitBreakerConfig());
|
||||
|
||||
CircuitBreakerUtil.registerMetrics(SharedMetricRegistries.getOrCreate(Constants.METRICS_NAME),
|
||||
circuitBreaker,
|
||||
|
@ -144,6 +142,6 @@ public class FaultTolerantRedisCluster {
|
|||
final StatefulRedisClusterPubSubConnection<String, String> pubSubConnection = clusterClient.connectPubSub();
|
||||
pubSubConnections.add(pubSubConnection);
|
||||
|
||||
return new FaultTolerantPubSubConnection<>(name, pubSubConnection, circuitBreakerConfiguration);
|
||||
return new FaultTolerantPubSubConnection<>(name, pubSubConnection, circuitBreaker);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue