package clusterimpl

import "google.golang.org/grpc/xds/internal/balancer/clusterimpl"

Package clusterimpl implements the xds_cluster_impl balancing policy. It handles the cluster features (e.g. circuit_breaking, RPC dropping).

Note that it doesn't handle name resolution, which is done by policy xds_cluster_resolver.

Index

Constants

const (
	// Name is the name of the cluster_impl balancer.
	Name = "xds_cluster_impl_experimental"
)

Variables

var NewRandomWRR = wrr.NewRandom

NewRandomWRR is used when calculating drops. It's exported so that tests can override it.

Types

type DropConfig

type DropConfig struct {
	Category           string
	RequestsPerMillion uint32
}

DropConfig contains the category, and drop ratio.

type LBConfig

type LBConfig struct {
	serviceconfig.LoadBalancingConfig `json:"-"`

	Cluster        string `json:"cluster,omitempty"`
	EDSServiceName string `json:"edsServiceName,omitempty"`
	// LoadReportingServer is the LRS server to send load reports to. If not
	// present, load reporting will be disabled.
	LoadReportingServer   *bootstrap.ServerConfig `json:"lrsLoadReportingServer,omitempty"`
	MaxConcurrentRequests *uint32                 `json:"maxConcurrentRequests,omitempty"`
	DropCategories        []DropConfig            `json:"dropCategories,omitempty"`
	// TelemetryLabels are the telemetry Labels associated with this cluster.
	TelemetryLabels map[string]string                     `json:"telemetryLabels,omitempty"`
	ChildPolicy     *internalserviceconfig.BalancerConfig `json:"childPolicy,omitempty"`
}

LBConfig is the balancer config for cluster_impl balancer.

Source Files

clusterimpl.go config.go logging.go picker.go

Directories

PathSynopsis
xds/internal/balancer/clusterimpl/tests
Version
v1.70.0 (latest)
Published
Jan 23, 2025
Platform
linux/amd64
Imports
26 packages
Last checked
29 minutes ago

Tools for package owners.