Package io.grpc.xds
Class XdsNameResolver
- java.lang.Object
-
- io.grpc.NameResolver
-
- io.grpc.xds.XdsNameResolver
-
final class XdsNameResolver extends io.grpc.NameResolverANameResolverfor 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:
XdsNameResolverProvider
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static classXdsNameResolver.ClusterRefStateprivate classXdsNameResolver.ConfigSelectorprivate static classXdsNameResolver.FailingConfigSelectorprivate classXdsNameResolver.ResolveStateprivate static classXdsNameResolver.RoutingConfigVirtualHost-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
Fields Modifier and Type Field Description private XdsNameResolverProvider.CallCounterProvidercallCounterProvider(package private) static io.grpc.CallOptions.Key<java.lang.String>CLUSTER_SELECTION_KEYprivate java.util.concurrent.ConcurrentMap<java.lang.String,XdsNameResolver.ClusterRefState>clusterRefsprivate XdsNameResolver.ConfigSelectorconfigSelector(package private) static booleanenableTimeoutprivate java.lang.StringencodedServiceAuthorityprivate FilterRegistryfilterRegistryprivate XxHash64hashFuncprivate io.grpc.NameResolver.Listener2listenerprivate XdsLoggerloggerprivate io.grpc.InternalLogIdlogIdprivate java.lang.StringoverrideAuthorityprivate ThreadSafeRandomrandomprivate longrandomChannelIdprivate booleanreceivedConfigprivate XdsNameResolver.ResolveStateresolveStateprivate XdsNameResolver.RoutingConfigroutingConfig(package private) static io.grpc.CallOptions.Key<java.lang.Long>RPC_HASH_KEYprivate java.util.concurrent.ScheduledExecutorServiceschedulerprivate java.lang.StringserviceAuthorityprivate io.grpc.NameResolver.ServiceConfigParserserviceConfigParserprivate io.grpc.SynchronizationContextsyncContextprivate java.lang.Stringtargetprivate java.lang.StringtargetAuthorityprivate XdsClientxdsClientprivate io.grpc.internal.ObjectPool<XdsClient>xdsClientPoolprivate XdsClientPoolFactoryxdsClientPoolFactory
-
Constructor Summary
Constructors Constructor Description XdsNameResolver(java.net.URI targetUri, java.lang.String name, java.lang.String overrideAuthority, io.grpc.NameResolver.ServiceConfigParser serviceConfigParser, io.grpc.SynchronizationContext syncContext, java.util.concurrent.ScheduledExecutorService scheduler, java.util.Map<java.lang.String,?> bootstrapOverride)XdsNameResolver(java.net.URI targetUri, java.lang.String targetAuthority, java.lang.String name, java.lang.String overrideAuthority, io.grpc.NameResolver.ServiceConfigParser serviceConfigParser, io.grpc.SynchronizationContext syncContext, java.util.concurrent.ScheduledExecutorService scheduler, XdsClientPoolFactory xdsClientPoolFactory, ThreadSafeRandom random, FilterRegistry filterRegistry, java.util.Map<java.lang.String,?> bootstrapOverride)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private static io.grpc.ClientInterceptorcombineInterceptors(java.util.List<io.grpc.ClientInterceptor> interceptors)private static java.lang.StringexpandPercentS(java.lang.String template, java.lang.String replacement)(package private) static java.util.Map<java.lang.String,?>generateServiceConfigWithMethodConfig(java.lang.Long timeoutNano, VirtualHost.Route.RouteAction.RetryPolicy retryPolicy)private static java.lang.StringgetHeaderValue(io.grpc.Metadata headers, java.lang.String headerName)java.lang.StringgetServiceAuthority()(package private) XdsClientgetXdsClient()(package private) static booleanmatchHostName(java.lang.String hostName, java.lang.String pattern)ReturnstrueiffhostNamematches the domain namepatternwith case-insensitive.private static java.lang.StringprefixedClusterName(java.lang.String name)private static java.lang.StringprefixedClusterSpecifierPluginName(java.lang.String pluginName)voidshutdown()voidstart(io.grpc.NameResolver.Listener2 listener)private voidupdateResolutionResult()
-
-
-
Field Detail
-
CLUSTER_SELECTION_KEY
static final io.grpc.CallOptions.Key<java.lang.String> CLUSTER_SELECTION_KEY
-
RPC_HASH_KEY
static final io.grpc.CallOptions.Key<java.lang.Long> RPC_HASH_KEY
-
enableTimeout
static boolean enableTimeout
-
logId
private final io.grpc.InternalLogId logId
-
logger
private final XdsLogger logger
-
targetAuthority
@Nullable private final java.lang.String targetAuthority
-
target
private final java.lang.String target
-
serviceAuthority
private final java.lang.String serviceAuthority
-
encodedServiceAuthority
private final java.lang.String encodedServiceAuthority
-
overrideAuthority
private final java.lang.String overrideAuthority
-
serviceConfigParser
private final io.grpc.NameResolver.ServiceConfigParser serviceConfigParser
-
syncContext
private final io.grpc.SynchronizationContext syncContext
-
scheduler
private final java.util.concurrent.ScheduledExecutorService scheduler
-
xdsClientPoolFactory
private final XdsClientPoolFactory xdsClientPoolFactory
-
random
private final ThreadSafeRandom random
-
filterRegistry
private final FilterRegistry filterRegistry
-
hashFunc
private final XxHash64 hashFunc
-
clusterRefs
private final java.util.concurrent.ConcurrentMap<java.lang.String,XdsNameResolver.ClusterRefState> clusterRefs
-
configSelector
private final XdsNameResolver.ConfigSelector configSelector
-
randomChannelId
private final long randomChannelId
-
routingConfig
private volatile XdsNameResolver.RoutingConfig routingConfig
-
listener
private io.grpc.NameResolver.Listener2 listener
-
xdsClientPool
private io.grpc.internal.ObjectPool<XdsClient> xdsClientPool
-
xdsClient
private XdsClient xdsClient
-
callCounterProvider
private XdsNameResolverProvider.CallCounterProvider callCounterProvider
-
resolveState
private XdsNameResolver.ResolveState resolveState
-
receivedConfig
private boolean receivedConfig
-
-
Constructor Detail
-
XdsNameResolver
XdsNameResolver(java.net.URI targetUri, java.lang.String name, @Nullable java.lang.String overrideAuthority, io.grpc.NameResolver.ServiceConfigParser serviceConfigParser, io.grpc.SynchronizationContext syncContext, java.util.concurrent.ScheduledExecutorService scheduler, @Nullable java.util.Map<java.lang.String,?> bootstrapOverride)
-
XdsNameResolver
XdsNameResolver(java.net.URI targetUri, @Nullable java.lang.String targetAuthority, java.lang.String name, @Nullable java.lang.String overrideAuthority, io.grpc.NameResolver.ServiceConfigParser serviceConfigParser, io.grpc.SynchronizationContext syncContext, java.util.concurrent.ScheduledExecutorService scheduler, XdsClientPoolFactory xdsClientPoolFactory, ThreadSafeRandom random, FilterRegistry filterRegistry, @Nullable java.util.Map<java.lang.String,?> bootstrapOverride)
-
-
Method Detail
-
getServiceAuthority
public java.lang.String getServiceAuthority()
- Specified by:
getServiceAuthorityin classio.grpc.NameResolver
-
start
public void start(io.grpc.NameResolver.Listener2 listener)
- Overrides:
startin classio.grpc.NameResolver
-
expandPercentS
private static java.lang.String expandPercentS(java.lang.String template, java.lang.String replacement)
-
shutdown
public void shutdown()
- Specified by:
shutdownin classio.grpc.NameResolver
-
generateServiceConfigWithMethodConfig
static java.util.Map<java.lang.String,?> generateServiceConfigWithMethodConfig(@Nullable java.lang.Long timeoutNano, @Nullable VirtualHost.Route.RouteAction.RetryPolicy retryPolicy)
-
getXdsClient
XdsClient getXdsClient()
-
updateResolutionResult
private void updateResolutionResult()
-
matchHostName
static boolean matchHostName(java.lang.String hostName, java.lang.String pattern)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(java.util.List<io.grpc.ClientInterceptor> interceptors)
-
getHeaderValue
@Nullable private static java.lang.String getHeaderValue(io.grpc.Metadata headers, java.lang.String headerName)
-
prefixedClusterName
private static java.lang.String prefixedClusterName(java.lang.String name)
-
prefixedClusterSpecifierPluginName
private static java.lang.String prefixedClusterSpecifierPluginName(java.lang.String pluginName)
-
-