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 String
The constant containing the scheme that will be used by this factory.static final Attributes.Key<String>
A key for the service name used to relatedServiceInstance
s 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 TypeMethodDescriptionvoid
destroy()
Cleans up the name resolvers.void
heartbeat
(org.springframework.cloud.client.discovery.event.HeartbeatEvent event) Triggers a refresh of the registered name resolvers.protected boolean
protected DiscoveryClientNameResolver
newNameResolver
(String serviceName, NameResolver.Args args) Factory method to create the resolver for the given service name.newNameResolver
(URI targetUri, NameResolver.Args args) protected int
priority()
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 relatedServiceInstance
s 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:
newNameResolver
in 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:
getDefaultScheme
in classNameResolver.Factory
-
isAvailable
protected boolean isAvailable()- Specified by:
isAvailable
in classNameResolverProvider
-
priority
protected int priority()- Specified by:
priority
in 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
-