@ExperimentalApi(value="https://github.com/grpc/grpc-java/issues/5025") public final class HealthCheckingLoadBalancerUtil extends Object
LoadBalancers.| Modifier and Type | Method and Description |
|---|---|
static LoadBalancer |
newHealthCheckingLoadBalancer(LoadBalancer.Factory factory,
LoadBalancer.Helper helper)
Creates a health-checking-capable LoadBalancer.
|
public static LoadBalancer newHealthCheckingLoadBalancer(LoadBalancer.Factory factory, LoadBalancer.Helper helper)
LoadBalancer.Factorys, which will typically written this way:
public class HealthCheckingFooLbFactory extends LoadBalancer.Factory {
// This is the original balancer implementation that doesn't have health checking
private final LoadBalancer.Factory fooLbFactory;
...
// Returns the health-checking-capable version of FooLb
public LoadBalancer newLoadBalancer(Helper helper) {
return HealthCheckingLoadBalancerUtil.newHealthCheckingLoadBalancer(fooLbFactory, helper);
}
}
As a requirement for the original LoadBalancer, it must call
Helper.createSubchannel() from the Synchronization Context, or
createSubchannel() will throw.
factory - the original factory that implements load-balancing logic without health
checkinghelper - the helper passed to the resulting health-checking LoadBalancer.