@Internal public class RoundRobinLoadBalancer extends LoadBalancer
LoadBalancer that provides round-robin load-balancing over the EquivalentAddressGroups from the NameResolver.| Modifier and Type | Class and Description |
|---|---|
static class |
RoundRobinLoadBalancer.RoundRobinPicker |
LoadBalancer.CreateSubchannelArgs, LoadBalancer.Factory, LoadBalancer.Helper, LoadBalancer.PickResult, LoadBalancer.PickSubchannelArgs, LoadBalancer.ResolvedAddresses, LoadBalancer.Subchannel, LoadBalancer.SubchannelPicker, LoadBalancer.SubchannelStateListener| Modifier and Type | Field and Description |
|---|---|
protected RoundRobinLoadBalancer.RoundRobinPicker |
currentPicker |
ATTR_HEALTH_CHECKING_CONFIG| Constructor and Description |
|---|
RoundRobinLoadBalancer(LoadBalancer.Helper helper) |
| Modifier and Type | Method and Description |
|---|---|
boolean |
acceptResolvedAddresses(LoadBalancer.ResolvedAddresses resolvedAddresses)
Accepts newly resolved addresses from the name resolution system.
|
protected RoundRobinLoadBalancer.RoundRobinPicker |
createReadyPicker(List<LoadBalancer.Subchannel> activeList) |
protected Collection<LoadBalancer.Subchannel> |
getSubchannels() |
void |
handleNameResolutionError(Status error)
Handles an error from the name resolution system.
|
void |
shutdown()
The channel asks the load-balancer to shutdown.
|
canHandleEmptyAddressListFromNameResolution, handleResolvedAddresses, handleSubchannelState, requestConnectionprotected RoundRobinLoadBalancer.RoundRobinPicker currentPicker
public RoundRobinLoadBalancer(LoadBalancer.Helper helper)
public boolean acceptResolvedAddresses(LoadBalancer.ResolvedAddresses resolvedAddresses)
LoadBalancerEquivalentAddressGroup addresses should be considered equivalent but may be flattened into a
single list if needed.
Implementations can choose to reject the given addresses by returning false.
Implementations should not modify the given addresses.
acceptResolvedAddresses in class LoadBalancerresolvedAddresses - the resolved server addresses, attributes, and config.true if the resolved addresses were accepted. false if rejected.public void handleNameResolutionError(Status error)
LoadBalancerhandleNameResolutionError in class LoadBalancererror - a non-OK statuspublic void shutdown()
LoadBalancershutdown in class LoadBalancerprotected RoundRobinLoadBalancer.RoundRobinPicker createReadyPicker(List<LoadBalancer.Subchannel> activeList)
protected Collection<LoadBalancer.Subchannel> getSubchannels()