Source File
weight.go
Belonging Package
google.golang.org/grpc/internal/balancer/weight
/*** Copyright 2025 gRPC authors.** Licensed under the Apache License, Version 2.0 (the "License");* you may not use this file except in compliance with the License.* You may obtain a copy of the License at** http://www.apache.org/licenses/LICENSE-2.0** Unless required by applicable law or agreed to in writing, software* distributed under the License is distributed on an "AS IS" BASIS,* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.* See the License for the specific language governing permissions and* limitations under the License.**/// Package weight contains utilities to manage endpoint weights. Weights are// used by LB policies such as ringhash to distribute load across multiple// endpoints.package weightimport ()// attributeKey is the type used as the key to store EndpointInfo in the// Attributes field of resolver.Endpoint.type attributeKey struct{}// EndpointInfo will be stored in the Attributes field of Endpoints in order to// use the ringhash balancer.type EndpointInfo struct {Weight uint32}// Equal allows the values to be compared by Attributes.Equal.func ( EndpointInfo) ( any) bool {, := .(EndpointInfo)return && .Weight == .Weight}// Set returns a copy of endpoint in which the Attributes field is updated with// EndpointInfo.func ( resolver.Endpoint, EndpointInfo) resolver.Endpoint {.Attributes = .Attributes.WithValue(attributeKey{}, )return}// String returns a human-readable representation of EndpointInfo.// This method is intended for logging, testing, and debugging purposes only.// Do not rely on the output format, as it is not guaranteed to remain stable.func ( EndpointInfo) () string {return fmt.Sprintf("Weight: %d", .Weight)}// FromEndpoint returns the EndpointInfo stored in the Attributes field of an// endpoint. It returns an empty EndpointInfo if attribute is not found.func ( resolver.Endpoint) EndpointInfo {:= .Attributes.Value(attributeKey{}), := .(EndpointInfo)return}
![]() |
The pages are generated with Golds v0.8.2. (GOOS=linux GOARCH=amd64) Golds is a Go 101 project developed by Tapir Liu. PR and bug reports are welcome and can be submitted to the issue list. Please follow @zigo_101 (reachable from the left QR code) to get the latest news of Golds. |