Package io.grpc.xds
Class XdsNameResolver
java.lang.Object
io.grpc.NameResolver
io.grpc.xds.XdsNameResolver
final class XdsNameResolver
extends io.grpc.NameResolver
A
NameResolver for resolving gRPC target names with "xds:" scheme.
Resolving a gRPC target involves contacting the control plane management server via xDS protocol to retrieve service information and produce a service config to the caller.
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static classprivate final classprivate static final classprivate classprivate static classVirtualHost-level configuration for request routing.Nested classes/interfaces inherited from class io.grpc.NameResolver
io.grpc.NameResolver.Args, io.grpc.NameResolver.ConfigOrError, io.grpc.NameResolver.Factory, io.grpc.NameResolver.Listener, io.grpc.NameResolver.Listener2, io.grpc.NameResolver.ResolutionResult, io.grpc.NameResolver.ResolutionResultAttr, io.grpc.NameResolver.ServiceConfigParser -
Field Summary
FieldsModifier and TypeFieldDescription(package private) static final io.grpc.CallOptions.Key<String> private final ConcurrentMap<String, XdsNameResolver.ClusterRefState> private final XdsNameResolver.ConfigSelector(package private) static booleanprivate final Stringprivate final FilterRegistryprivate final XxHash64private io.grpc.NameResolver.Listener2private final XdsLoggerprivate final io.grpc.InternalLogIdprivate final Stringprivate final ThreadSafeRandomprivate final longprivate booleanprivate XdsNameResolver.ResolveStateprivate XdsNameResolver.RoutingConfig(package private) static final io.grpc.CallOptions.Key<Long> private final ScheduledExecutorServiceprivate final Stringprivate final io.grpc.NameResolver.ServiceConfigParserprivate final io.grpc.SynchronizationContextprivate final Stringprivate final Stringprivate XdsClientprivate io.grpc.internal.ObjectPool<XdsClient> private final XdsClientPoolFactory -
Constructor Summary
ConstructorsConstructorDescriptionXdsNameResolver(URI targetUri, String name, String overrideAuthority, io.grpc.NameResolver.ServiceConfigParser serviceConfigParser, io.grpc.SynchronizationContext syncContext, ScheduledExecutorService scheduler, Map<String, ?> bootstrapOverride) XdsNameResolver(URI targetUri, String targetAuthority, String name, String overrideAuthority, io.grpc.NameResolver.ServiceConfigParser serviceConfigParser, io.grpc.SynchronizationContext syncContext, ScheduledExecutorService scheduler, XdsClientPoolFactory xdsClientPoolFactory, ThreadSafeRandom random, FilterRegistry filterRegistry, Map<String, ?> bootstrapOverride) -
Method Summary
Modifier and TypeMethodDescriptionprivate static io.grpc.ClientInterceptorcombineInterceptors(List<io.grpc.ClientInterceptor> interceptors) private static StringexpandPercentS(String template, String replacement) generateServiceConfigWithMethodConfig(Long timeoutNano, VirtualHost.Route.RouteAction.RetryPolicy retryPolicy) private static StringgetHeaderValue(io.grpc.Metadata headers, String headerName) (package private) XdsClient(package private) static booleanmatchHostName(String hostName, String pattern) ReturnstrueiffhostNamematches the domain namepatternwith case-insensitive.private static StringprefixedClusterName(String name) private static StringprefixedClusterSpecifierPluginName(String pluginName) voidshutdown()voidstart(io.grpc.NameResolver.Listener2 listener) private voidMethods inherited from class io.grpc.NameResolver
refresh, start
-
Field Details
-
CLUSTER_SELECTION_KEY
-
RPC_HASH_KEY
-
enableTimeout
static boolean enableTimeout -
logId
private final io.grpc.InternalLogId logId -
logger
-
targetAuthority
-
target
-
serviceAuthority
-
encodedServiceAuthority
-
overrideAuthority
-
serviceConfigParser
private final io.grpc.NameResolver.ServiceConfigParser serviceConfigParser -
syncContext
private final io.grpc.SynchronizationContext syncContext -
scheduler
-
xdsClientPoolFactory
-
random
-
filterRegistry
-
hashFunc
-
clusterRefs
-
configSelector
-
randomChannelId
private final long randomChannelId -
routingConfig
-
listener
private io.grpc.NameResolver.Listener2 listener -
xdsClientPool
-
xdsClient
-
callCounterProvider
-
resolveState
-
receivedConfig
private boolean receivedConfig
-
-
Constructor Details
-
XdsNameResolver
-
XdsNameResolver
XdsNameResolver(URI targetUri, @Nullable String targetAuthority, String name, @Nullable String overrideAuthority, io.grpc.NameResolver.ServiceConfigParser serviceConfigParser, io.grpc.SynchronizationContext syncContext, ScheduledExecutorService scheduler, XdsClientPoolFactory xdsClientPoolFactory, ThreadSafeRandom random, FilterRegistry filterRegistry, @Nullable Map<String, ?> bootstrapOverride)
-
-
Method Details
-
getServiceAuthority
- Specified by:
getServiceAuthorityin classio.grpc.NameResolver
-
start
public void start(io.grpc.NameResolver.Listener2 listener) - Overrides:
startin classio.grpc.NameResolver
-
expandPercentS
-
shutdown
public void shutdown()- Specified by:
shutdownin classio.grpc.NameResolver
-
generateServiceConfigWithMethodConfig
-
getXdsClient
XdsClient getXdsClient() -
updateResolutionResult
private void updateResolutionResult() -
matchHostName
ReturnstrueiffhostNamematches the domain namepatternwith case-insensitive.Wildcard pattern rules:
- A single asterisk (*) matches any domain.
- Asterisk (*) is only permitted in the left-most or the right-most part of the pattern, but not both.
-
combineInterceptors
private static io.grpc.ClientInterceptor combineInterceptors(List<io.grpc.ClientInterceptor> interceptors) -
getHeaderValue
-
prefixedClusterName
-
prefixedClusterSpecifierPluginName
-