clusterimpl

package
v1.78.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 23, 2025 License: Apache-2.0 Imports: 30 Imported by: 0

Documentation

Overview

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

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

Variables

View Source
var NewRandomWRR = wrr.NewRandom

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

Functions

func AutoHostRewriteForTesting added in v1.78.0

func AutoHostRewriteForTesting(ctx context.Context) bool

AutoHostRewriteForTesting returns the value of autoHostRewrite field; to be used for testing only.

func SetAutoHostRewrite added in v1.78.0

func SetAutoHostRewrite(ctx context.Context, autohostRewrite bool) context.Context

SetAutoHostRewrite adds the autoHostRewrite value to the context for the xds_cluster_impl LB policy to pick.

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.