Documentation ¶
Overview ¶
Copyright 2020 duyanghao
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 balancer implements client balancer.
Copyright 2020 duyanghao ¶
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.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func RegisterBuilder ¶
func RegisterBuilder(cfg Config)
RegisterBuilder creates and registers a builder. Since this function calls balancer.Register, it must be invoked at initialization time.
Types ¶
type Balancer ¶
type Balancer interface { // Balancer is called on specified client connection. Client initiates gRPC // connection with "grpc.Dial(addr, grpc.WithBalancerName)", and then those resolved // addresses are passed to "grpc/balancer.Balancer.HandleResolvedAddrs". // For each resolved address, balancer calls "balancer.ClientConn.NewSubConn". // "grpc/balancer.Balancer.HandleSubConnStateChange" is called when connectivity state // changes, thus requires failover logic in this method. balancer.Balancer // Picker calls "Pick" for every client request. picker.Picker }
Balancer defines client balancer interface.
type Config ¶
type Config struct { // Policy configures balancer policy. Policy picker.Policy // Name defines an additional name for balancer. // Useful for balancer testing to avoid register conflicts. // If empty, defaults to policy name. Name string // Logger configures balancer logging. // If nil, logs are discarded. Logger *zap.Logger }
Config defines balancer configurations.