@ExperimentalApi(value="https://github.com/grpc/grpc-java/issues/1771") @ThreadSafe public final class LoadBalancerRegistry extends Object
LoadBalancerProvider
s. The default instance
loads providers at runtime through the Java service provider mechanism.Constructor and Description |
---|
LoadBalancerRegistry() |
Modifier and Type | Method and Description |
---|---|
void |
deregister(LoadBalancerProvider provider)
Deregisters a provider.
|
static LoadBalancerRegistry |
getDefaultRegistry()
Returns the default registry that loads providers via the Java service loader mechanism.
|
LoadBalancerProvider |
getProvider(String policy)
Returns the effective provider for the given load-balancing policy, or
null if no
suitable provider can be found. |
void |
register(LoadBalancerProvider provider)
Register a provider.
|
public void register(LoadBalancerProvider provider)
If the provider's isAvailable()
returns
false
, this method will throw IllegalArgumentException
.
If more than one provider with the same policy
name
are registered, the one with the highest priority
will be effective. If there are more than one name-sake providers rank the highest
priority, the one registered first will be effective.
public void deregister(LoadBalancerProvider provider)
register(io.grpc.LoadBalancerProvider)
.provider
- the provider that was added to the register via register(io.grpc.LoadBalancerProvider)
.public static LoadBalancerRegistry getDefaultRegistry()
@Nullable public LoadBalancerProvider getProvider(String policy)
null
if no
suitable provider can be found. Each provider declares its policy name via LoadBalancerProvider.getPolicyName()
.