Package io.grpc.protobuf.services
Class HealthCheckingLoadBalancerFactory
- java.lang.Object
-
- io.grpc.LoadBalancer.Factory
-
- io.grpc.protobuf.services.HealthCheckingLoadBalancerFactory
-
final class HealthCheckingLoadBalancerFactory extends LoadBalancer.Factory
Wraps aLoadBalancer
and implements the client-side health-checking (https://github.com/grpc/proposal/blob/master/A17-client-side-health-checking.md). The Subchannel received by the states wrapped LoadBalancer will be determined by health-checking.Note the original LoadBalancer must call
Helper.createSubchannel()
from the SynchronizationContext, or it will throw.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
HealthCheckingLoadBalancerFactory.HealthCheckingLoadBalancer
private class
HealthCheckingLoadBalancerFactory.HealthCheckState
private class
HealthCheckingLoadBalancerFactory.HelperImpl
(package private) static class
HealthCheckingLoadBalancerFactory.SubchannelImpl
-
Field Summary
Fields Modifier and Type Field Description private BackoffPolicy.Provider
backoffPolicyProvider
private LoadBalancer.Factory
delegateFactory
private static java.util.logging.Logger
logger
private com.google.common.base.Supplier<com.google.common.base.Stopwatch>
stopwatchSupplier
-
Constructor Summary
Constructors Constructor Description HealthCheckingLoadBalancerFactory(LoadBalancer.Factory delegateFactory, BackoffPolicy.Provider backoffPolicyProvider, com.google.common.base.Supplier<com.google.common.base.Stopwatch> stopwatchSupplier)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description LoadBalancer
newLoadBalancer(LoadBalancer.Helper helper)
Creates aLoadBalancer
that will be used inside a channel.
-
-
-
Field Detail
-
logger
private static final java.util.logging.Logger logger
-
delegateFactory
private final LoadBalancer.Factory delegateFactory
-
backoffPolicyProvider
private final BackoffPolicy.Provider backoffPolicyProvider
-
stopwatchSupplier
private final com.google.common.base.Supplier<com.google.common.base.Stopwatch> stopwatchSupplier
-
-
Constructor Detail
-
HealthCheckingLoadBalancerFactory
public HealthCheckingLoadBalancerFactory(LoadBalancer.Factory delegateFactory, BackoffPolicy.Provider backoffPolicyProvider, com.google.common.base.Supplier<com.google.common.base.Stopwatch> stopwatchSupplier)
-
-
Method Detail
-
newLoadBalancer
public LoadBalancer newLoadBalancer(LoadBalancer.Helper helper)
Description copied from class:LoadBalancer.Factory
Creates aLoadBalancer
that will be used inside a channel.- Specified by:
newLoadBalancer
in classLoadBalancer.Factory
-
-