Package io.grpc.util
Class HealthProducerHelper
- java.lang.Object
-
- io.grpc.LoadBalancer.Helper
-
- io.grpc.util.ForwardingLoadBalancerHelper
-
- io.grpc.util.HealthProducerHelper
-
@Internal public final class HealthProducerHelper extends ForwardingLoadBalancerHelper
A newLoadBalancer.Helperused by health producer systems to build health notification chain, viaLoadBalancer.CreateSubchannelArgs. The leaf health consumer is pick first. Each health producer uses this helper. The health producers should make state listener a pass-through and manipulate theLoadBalancer.CreateSubchannelArgsfor health notifications. The helper detects health listener parent. The root health producer in the chain will fan out the subchannel state change to both state listener and health listener.Example usage:
class HealthProducerLB { private final LoadBalancer.Helper helper; public HealthProducer(Helper helper) { this.helper = new MyHelper(HealthCheckUtil.HealthCheckHelper(helper)); } class MyHelper implements LoadBalancer.Helper { public void createSubchannel(CreateSubchannelArgs args) { SubchannelStateListener originalListener = args.getAttributes(HEALTH_CHECK_CONSUMER_LISTENER); if (hcListener != null) { // Implement a health listener that producers health check information. SubchannelStateListener myListener = MyHealthListener(originalListener); args = args.toBuilder.setOption(HEALTH_CHECK_CONSUMER_LISTENER, myListener); } return super.createSubchannel(args); } } }
-
-
Constructor Summary
Constructors Constructor Description HealthProducerHelper(io.grpc.LoadBalancer.Helper helper)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description io.grpc.LoadBalancer.SubchannelcreateSubchannel(io.grpc.LoadBalancer.CreateSubchannelArgs args)protected io.grpc.LoadBalancer.Helperdelegate()Returns the underlying helper.-
Methods inherited from class io.grpc.util.ForwardingLoadBalancerHelper
createOobChannel, createOobChannel, createResolvingOobChannel, createResolvingOobChannelBuilder, createResolvingOobChannelBuilder, getAuthority, getChannelCredentials, getChannelLogger, getChannelTarget, getMetricRecorder, getNameResolverArgs, getNameResolverRegistry, getScheduledExecutorService, getSynchronizationContext, getUnsafeChannelCredentials, ignoreRefreshNameResolutionCheck, refreshNameResolution, toString, updateBalancingState, updateOobChannelAddresses, updateOobChannelAddresses
-
-
-
-
Method Detail
-
createSubchannel
public io.grpc.LoadBalancer.Subchannel createSubchannel(io.grpc.LoadBalancer.CreateSubchannelArgs args)
- Overrides:
createSubchannelin classForwardingLoadBalancerHelper
-
delegate
protected io.grpc.LoadBalancer.Helper delegate()
Description copied from class:ForwardingLoadBalancerHelperReturns the underlying helper.- Specified by:
delegatein classForwardingLoadBalancerHelper
-
-