Package io.grpc.xds
@ExperimentalApi("https://github.com/grpc/grpc-java/issues/5288")
package io.grpc.xds
Library for gPRC proxyless service mesh using Envoy xDS protocol.
The package currently includes a name resolver plugin and a family of load balancer plugins.
A gRPC channel for a target with "xds:"
scheme will load the plugins and a
bootstrap file, and will communicate with an external control plane management server (e.g.
Traffic Director) that speaks Envoy xDS protocol to retrieve routing, load balancing, load
reporting configurations etc. for the channel. More features will be added.
The library is currently in an agile development phase, so API and design are subject to breaking changes.
-
ClassDescriptionLoad balancer for cds_experimental LB policy.The provider for the "cds" balancing policy.Represents a successfully parsed and validated LoadBalancingConfig for CDS.Load balancer for cluster_impl_experimental LB policy.Represents the
LoadStatsManager2.ClusterLocalityStats
and network locality name of a cluster.The provider for the cluster_impl load balancing policy.The top-level load balancing policy for use in XDS.The provider for the cluster_manager load balancing policy.Load balancer for cluster_resolver_experimental LB policy.The provider for the cluster_resolver load balancing policy.Defines the parsing functionality of a ClusterSpecifierPlugin as defined in the Enovy proto api/envoy/config/route/v3/route.proto.Represents an opaque data structure holding configuration for a ClusterSpecifierPlugin.The CSDS service provides information about the status of a running xDS client.Locality and endpoint level load balancing configurations.Represents a drop policy.Represents a single endpoint to be load balanced.Represents a group of endpoints belong to a single locality.Defines gRPC data types for Envoy protobuf messages used in xDS protocol on the server side, similar to howEnvoyProtoData
defines it for the client side.Corresponds to Envoy proto messageFilterChain
.Corresponds to Envoy proto messageFilterChainMatch
.Corresponds to Envoy proto messageListener
and related classes.Corresponds to Envoy proto messageOutlierDetection
.Fault injection configurations.Fault configurations for delaying requests.Fault configurations for aborting requests.HttpFault filter implementation.Defines the parsing functionality of an HTTP filter.Uses the FilterConfigs produced above to produce an HTTP filter interceptor for clients.Represents an opaque data structure holding configuration for a filter.Filter config with instance name.Uses the FilterConfigs produced above to produce an HTTP filter interceptor for the server.Handles L4 filter chain match for the connection based on the xds configuration.The FilterChain level configuration.Maintains the current xDS selector and any resources using that selector.A registry for all supportedFilter
s.HttpConnectionManager is a network filter for proxying HTTP requests.Internal accessors for GrpcBootstrapperImpl.This class exposes some functionality in RbacFilter to other packages.Accessor for global factory for managing XdsClient instance.Internal attributes used for xDS implementation.A load balancer that starts in IDLE instead of CONNECTING.ALoadBalancer
that provides least request load balancing based on outstanding request counters.Provider for the "least_request_experimental" balancing policy.Creates service config JSON load balancer config objects for a given xDS Cluster message.Builds a JSON LB configuration based on the old style of using the xDS Cluster proto message.Responsible for converting from aenvoy.config.cluster.v3.LoadBalancingPolicy
proto message to a gRPC service config format.Converts protobuf message to human readable String format.Load balancer for priority policy.Provider for priority load balancing policy.Rbac configuration for Rbac filter.RBAC Http filter implementation.ALoadBalancer
that provides consistent hashing based load balancing to upstream hosts.Configures the ring property.An unmodifiable view of a subchannel with state not subject to its real connectivity state changes.The provider for the "ring_hash_experimental" balancing policy.Utility class that provides a way to configure ring hash size limits.The ClusterSpecifierPlugin for RouteLookup policy.Router filter implementation.Utilities for performing virtual host domain name matching and route matching.The global map for holding circuit breaker atomic counters.The global factory for creating a singletonXdsClient
instance to be used by all gRPC clients in the process.Represents an upstream virtual host.Matcher for HTTP request path.ALoadBalancer
that provides weighted-round-robin load-balancing over theEquivalentAddressGroup
s from theNameResolver
.Provides aWeightedRoundRobinLoadBalancer
.Load balancer for weighted_target policy.The provider for the weighted_target balancing policy.The lb config for WeightedTargetLoadBalancer.This load balancer acts as a parent for theWeightedTargetLoadBalancer
and configures it with a child policy in its configuration and locality weights it gets from an attribute inLoadBalancer.ResolvedAddresses
.The LB config forWrrLocalityLoadBalancer
.The provider forWrrLocalityLoadBalancer
.xDS resource update for cluster-level configuration.Provider of credentials which can be consumed by clients for xds communications.Registry ofXdsCredentialsProvider
s.ANameResolver
for resolving gRPC target names with "xds:" scheme.VirtualHost-level configuration for request routing.A provider forXdsNameResolver
.Provides the counter for aggregating outstanding requests per cluster:eds_service_name.A version ofServerBuilder
to create xDS managed servers.Default implementation ofXdsServerBuilder.XdsServingStatusListener
that logs at WARNING level.Applications can register this listener to receive "serving" and "not serving" states of the server usingXdsServerBuilder.xdsServingStatusListener(XdsServingStatusListener)
.The HttpConnectionManager level configuration.The XxHash is a fast, non-cryptographic, 64-bit hash function that has excellent avalanche and 2-way bit independence properties.