Documentation

Overview

    Package balancer implements client balancer.

    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.

          Directories

          Path Synopsis
          Package connectivity implements client connectivity operations.
          Package connectivity implements client connectivity operations.
          Package picker defines/implements client balancer picker policy.
          Package picker defines/implements client balancer picker policy.
          resolver
          endpoint
          Package endpoint resolves etcd entpoints using grpc targets of the form 'endpoint://<id>/<endpoint>'.
          Package endpoint resolves etcd entpoints using grpc targets of the form 'endpoint://<id>/<endpoint>'.