Class DiscoveryClientResolverFactory
java.lang.Object
io.grpc.NameResolver.Factory
io.grpc.NameResolverProvider
net.devh.boot.grpc.client.nameresolver.DiscoveryClientResolverFactory
A name resolver factory that will create a
DiscoveryClientNameResolver based on the target uri.-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final Attributes.Key<String>A key for theinstance id.static final StringThe constant containing the scheme that will be used by this factory.static final Attributes.Key<String>A key for the service name used to relatedServiceInstances from theDiscoveryClient. -
Constructor Summary
ConstructorsConstructorDescriptionDiscoveryClientResolverFactory(org.springframework.cloud.client.discovery.DiscoveryClient client) Creates a new discovery client based name resolver factory. -
Method Summary
Modifier and TypeMethodDescriptionvoiddestroy()Cleans up the name resolvers.voidheartbeat(org.springframework.cloud.client.discovery.event.HeartbeatEvent event) Triggers a refresh of the registered name resolvers.protected booleanprotected DiscoveryClientNameResolvernewNameResolver(String serviceName, NameResolver.Args args) Factory method to create the resolver for the given service name.newNameResolver(URI targetUri, NameResolver.Args args) protected intpriority()toString()Methods inherited from class io.grpc.NameResolverProvider
getProducedSocketAddressTypes, getScheme
-
Field Details
-
DISCOVERY_SCHEME
The constant containing the scheme that will be used by this factory.- See Also:
-
DISCOVERY_SERVICE_NAME_KEY
A key for the service name used to relatedServiceInstances from theDiscoveryClient. -
DISCOVERY_INSTANCE_ID_KEY
A key for theinstance id.
-
-
Constructor Details
-
DiscoveryClientResolverFactory
public DiscoveryClientResolverFactory(org.springframework.cloud.client.discovery.DiscoveryClient client) Creates a new discovery client based name resolver factory.- Parameters:
client- The client to use for the address discovery.
-
-
Method Details
-
newNameResolver
- Specified by:
newNameResolverin classNameResolver.Factory
-
newNameResolver
Factory method to create the resolver for the given service name.- Parameters:
serviceName- The service name to create it for.args- The NameResolver arguments to use.- Returns:
- A newly created DiscoveryClientNameResolver.
-
getDefaultScheme
- Specified by:
getDefaultSchemein classNameResolver.Factory
-
isAvailable
protected boolean isAvailable()- Specified by:
isAvailablein classNameResolverProvider
-
priority
protected int priority()- Specified by:
priorityin classNameResolverProvider
-
heartbeat
@EventListener(org.springframework.cloud.client.discovery.event.HeartbeatEvent.class) public void heartbeat(org.springframework.cloud.client.discovery.event.HeartbeatEvent event) Triggers a refresh of the registered name resolvers.- Parameters:
event- The event that triggered the update.
-
destroy
@PreDestroy public void destroy()Cleans up the name resolvers. -
toString
-