Package io.grpc.protobuf.services
Class HealthCheckingLoadBalancerUtil
java.lang.Object
io.grpc.protobuf.services.HealthCheckingLoadBalancerUtil
@ExperimentalApi("https://github.com/grpc/grpc-java/issues/5025")
public final class HealthCheckingLoadBalancerUtil
extends Object
Utility for enabling
client-side health checking for
LoadBalancer
s.-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic LoadBalancer
newHealthCheckingLoadBalancer
(LoadBalancer.Factory factory, LoadBalancer.Helper helper) Creates a health-checking-capable LoadBalancer.
-
Constructor Details
-
HealthCheckingLoadBalancerUtil
private HealthCheckingLoadBalancerUtil()
-
-
Method Details
-
newHealthCheckingLoadBalancer
public static LoadBalancer newHealthCheckingLoadBalancer(LoadBalancer.Factory factory, LoadBalancer.Helper helper) Creates a health-checking-capable LoadBalancer. This method is used to implement health-checking-capableLoadBalancer.Factory
s, 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 theSynchronization Context
, orcreateSubchannel()
will throw.- Parameters:
factory
- the original factory that implements load-balancing logic without health checkinghelper
- the helper passed to the resulting health-checking LoadBalancer.
-