Documentation

Index

Constants

This section is empty.

Variables

View Source
var File_grpc_lb_v1_load_balancer_proto protoreflect.FileDescriptor
View Source
var LoadBalancer_ServiceDesc = grpc.ServiceDesc{
	ServiceName: "grpc.lb.v1.LoadBalancer",
	HandlerType: (*LoadBalancerServer)(nil),
	Methods:     []grpc.MethodDesc{},
	Streams: []grpc.StreamDesc{
		{
			StreamName:    "BalanceLoad",
			Handler:       _LoadBalancer_BalanceLoad_Handler,
			ServerStreams: true,
			ClientStreams: true,
		},
	},
	Metadata: "grpc/lb/v1/load_balancer.proto",
}

    LoadBalancer_ServiceDesc is the grpc.ServiceDesc for LoadBalancer service. It's only intended for direct use with grpc.RegisterService, and not to be introspected or modified (even as a copy)

    Functions

    func RegisterLoadBalancerServer

    func RegisterLoadBalancerServer(s grpc.ServiceRegistrar, srv LoadBalancerServer)

    Types

    type ClientStats

    type ClientStats struct {
    
    	// The timestamp of generating the report.
    	Timestamp *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
    	// The total number of RPCs that started.
    	NumCallsStarted int64 `protobuf:"varint,2,opt,name=num_calls_started,json=numCallsStarted,proto3" json:"num_calls_started,omitempty"`
    	// The total number of RPCs that finished.
    	NumCallsFinished int64 `protobuf:"varint,3,opt,name=num_calls_finished,json=numCallsFinished,proto3" json:"num_calls_finished,omitempty"`
    	// The total number of RPCs that failed to reach a server except dropped RPCs.
    	NumCallsFinishedWithClientFailedToSend int64 `` /* 188-byte string literal not displayed */
    	// The total number of RPCs that finished and are known to have been received
    	// by a server.
    	NumCallsFinishedKnownReceived int64 `` /* 155-byte string literal not displayed */
    	// The list of dropped calls.
    	CallsFinishedWithDrop []*ClientStatsPerToken `` /* 128-byte string literal not displayed */
    	// contains filtered or unexported fields
    }

      Contains client level statistics that are useful to load balancing. Each count except the timestamp should be reset to zero after reporting the stats.

      func (*ClientStats) Descriptor

      func (*ClientStats) Descriptor() ([]byte, []int)

        Deprecated: Use ClientStats.ProtoReflect.Descriptor instead.

        func (*ClientStats) GetCallsFinishedWithDrop

        func (x *ClientStats) GetCallsFinishedWithDrop() []*ClientStatsPerToken

        func (*ClientStats) GetNumCallsFinished

        func (x *ClientStats) GetNumCallsFinished() int64

        func (*ClientStats) GetNumCallsFinishedKnownReceived

        func (x *ClientStats) GetNumCallsFinishedKnownReceived() int64

        func (*ClientStats) GetNumCallsFinishedWithClientFailedToSend

        func (x *ClientStats) GetNumCallsFinishedWithClientFailedToSend() int64

        func (*ClientStats) GetNumCallsStarted

        func (x *ClientStats) GetNumCallsStarted() int64

        func (*ClientStats) GetTimestamp

        func (x *ClientStats) GetTimestamp() *timestamppb.Timestamp

        func (*ClientStats) ProtoMessage

        func (*ClientStats) ProtoMessage()

        func (*ClientStats) ProtoReflect

        func (x *ClientStats) ProtoReflect() protoreflect.Message

        func (*ClientStats) Reset

        func (x *ClientStats) Reset()

        func (*ClientStats) String

        func (x *ClientStats) String() string

        type ClientStatsPerToken

        type ClientStatsPerToken struct {
        
        	// See Server.load_balance_token.
        	LoadBalanceToken string `protobuf:"bytes,1,opt,name=load_balance_token,json=loadBalanceToken,proto3" json:"load_balance_token,omitempty"`
        	// The total number of RPCs that finished associated with the token.
        	NumCalls int64 `protobuf:"varint,2,opt,name=num_calls,json=numCalls,proto3" json:"num_calls,omitempty"`
        	// contains filtered or unexported fields
        }

          Contains the number of calls finished for a particular load balance token.

          func (*ClientStatsPerToken) Descriptor

          func (*ClientStatsPerToken) Descriptor() ([]byte, []int)

            Deprecated: Use ClientStatsPerToken.ProtoReflect.Descriptor instead.

            func (*ClientStatsPerToken) GetLoadBalanceToken

            func (x *ClientStatsPerToken) GetLoadBalanceToken() string

            func (*ClientStatsPerToken) GetNumCalls

            func (x *ClientStatsPerToken) GetNumCalls() int64

            func (*ClientStatsPerToken) ProtoMessage

            func (*ClientStatsPerToken) ProtoMessage()

            func (*ClientStatsPerToken) ProtoReflect

            func (x *ClientStatsPerToken) ProtoReflect() protoreflect.Message

            func (*ClientStatsPerToken) Reset

            func (x *ClientStatsPerToken) Reset()

            func (*ClientStatsPerToken) String

            func (x *ClientStatsPerToken) String() string

            type FallbackResponse

            type FallbackResponse struct {
            	// contains filtered or unexported fields
            }

            func (*FallbackResponse) Descriptor

            func (*FallbackResponse) Descriptor() ([]byte, []int)

              Deprecated: Use FallbackResponse.ProtoReflect.Descriptor instead.

              func (*FallbackResponse) ProtoMessage

              func (*FallbackResponse) ProtoMessage()

              func (*FallbackResponse) ProtoReflect

              func (x *FallbackResponse) ProtoReflect() protoreflect.Message

              func (*FallbackResponse) Reset

              func (x *FallbackResponse) Reset()

              func (*FallbackResponse) String

              func (x *FallbackResponse) String() string

              type InitialLoadBalanceRequest

              type InitialLoadBalanceRequest struct {
              
              	// The name of the load balanced service (e.g., service.googleapis.com). Its
              	// length should be less than 256 bytes.
              	// The name might include a port number. How to handle the port number is up
              	// to the balancer.
              	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
              	// contains filtered or unexported fields
              }

              func (*InitialLoadBalanceRequest) Descriptor

              func (*InitialLoadBalanceRequest) Descriptor() ([]byte, []int)

                Deprecated: Use InitialLoadBalanceRequest.ProtoReflect.Descriptor instead.

                func (*InitialLoadBalanceRequest) GetName

                func (x *InitialLoadBalanceRequest) GetName() string

                func (*InitialLoadBalanceRequest) ProtoMessage

                func (*InitialLoadBalanceRequest) ProtoMessage()

                func (*InitialLoadBalanceRequest) ProtoReflect

                func (*InitialLoadBalanceRequest) Reset

                func (x *InitialLoadBalanceRequest) Reset()

                func (*InitialLoadBalanceRequest) String

                func (x *InitialLoadBalanceRequest) String() string

                type InitialLoadBalanceResponse

                type InitialLoadBalanceResponse struct {
                
                	// This interval defines how often the client should send the client stats
                	// to the load balancer. Stats should only be reported when the duration is
                	// positive.
                	ClientStatsReportInterval *durationpb.Duration `` /* 140-byte string literal not displayed */
                	// contains filtered or unexported fields
                }

                func (*InitialLoadBalanceResponse) Descriptor

                func (*InitialLoadBalanceResponse) Descriptor() ([]byte, []int)

                  Deprecated: Use InitialLoadBalanceResponse.ProtoReflect.Descriptor instead.

                  func (*InitialLoadBalanceResponse) GetClientStatsReportInterval

                  func (x *InitialLoadBalanceResponse) GetClientStatsReportInterval() *durationpb.Duration

                  func (*InitialLoadBalanceResponse) ProtoMessage

                  func (*InitialLoadBalanceResponse) ProtoMessage()

                  func (*InitialLoadBalanceResponse) ProtoReflect

                  func (*InitialLoadBalanceResponse) Reset

                  func (x *InitialLoadBalanceResponse) Reset()

                  func (*InitialLoadBalanceResponse) String

                  func (x *InitialLoadBalanceResponse) String() string

                  type LoadBalanceRequest

                  type LoadBalanceRequest struct {
                  
                  	// Types that are assignable to LoadBalanceRequestType:
                  	//	*LoadBalanceRequest_InitialRequest
                  	//	*LoadBalanceRequest_ClientStats
                  	LoadBalanceRequestType isLoadBalanceRequest_LoadBalanceRequestType `protobuf_oneof:"load_balance_request_type"`
                  	// contains filtered or unexported fields
                  }

                  func (*LoadBalanceRequest) Descriptor

                  func (*LoadBalanceRequest) Descriptor() ([]byte, []int)

                    Deprecated: Use LoadBalanceRequest.ProtoReflect.Descriptor instead.

                    func (*LoadBalanceRequest) GetClientStats

                    func (x *LoadBalanceRequest) GetClientStats() *ClientStats

                    func (*LoadBalanceRequest) GetInitialRequest

                    func (x *LoadBalanceRequest) GetInitialRequest() *InitialLoadBalanceRequest

                    func (*LoadBalanceRequest) GetLoadBalanceRequestType

                    func (m *LoadBalanceRequest) GetLoadBalanceRequestType() isLoadBalanceRequest_LoadBalanceRequestType

                    func (*LoadBalanceRequest) ProtoMessage

                    func (*LoadBalanceRequest) ProtoMessage()

                    func (*LoadBalanceRequest) ProtoReflect

                    func (x *LoadBalanceRequest) ProtoReflect() protoreflect.Message

                    func (*LoadBalanceRequest) Reset

                    func (x *LoadBalanceRequest) Reset()

                    func (*LoadBalanceRequest) String

                    func (x *LoadBalanceRequest) String() string

                    type LoadBalanceRequest_ClientStats

                    type LoadBalanceRequest_ClientStats struct {
                    	// The client stats should be periodically reported to the load balancer
                    	// based on the duration defined in the InitialLoadBalanceResponse.
                    	ClientStats *ClientStats `protobuf:"bytes,2,opt,name=client_stats,json=clientStats,proto3,oneof"`
                    }

                    type LoadBalanceRequest_InitialRequest

                    type LoadBalanceRequest_InitialRequest struct {
                    	// This message should be sent on the first request to the load balancer.
                    	InitialRequest *InitialLoadBalanceRequest `protobuf:"bytes,1,opt,name=initial_request,json=initialRequest,proto3,oneof"`
                    }

                    type LoadBalanceResponse

                    type LoadBalanceResponse struct {
                    
                    	// Types that are assignable to LoadBalanceResponseType:
                    	//	*LoadBalanceResponse_InitialResponse
                    	//	*LoadBalanceResponse_ServerList
                    	//	*LoadBalanceResponse_FallbackResponse
                    	LoadBalanceResponseType isLoadBalanceResponse_LoadBalanceResponseType `protobuf_oneof:"load_balance_response_type"`
                    	// contains filtered or unexported fields
                    }

                    func (*LoadBalanceResponse) Descriptor

                    func (*LoadBalanceResponse) Descriptor() ([]byte, []int)

                      Deprecated: Use LoadBalanceResponse.ProtoReflect.Descriptor instead.

                      func (*LoadBalanceResponse) GetFallbackResponse

                      func (x *LoadBalanceResponse) GetFallbackResponse() *FallbackResponse

                      func (*LoadBalanceResponse) GetInitialResponse

                      func (x *LoadBalanceResponse) GetInitialResponse() *InitialLoadBalanceResponse

                      func (*LoadBalanceResponse) GetLoadBalanceResponseType

                      func (m *LoadBalanceResponse) GetLoadBalanceResponseType() isLoadBalanceResponse_LoadBalanceResponseType

                      func (*LoadBalanceResponse) GetServerList

                      func (x *LoadBalanceResponse) GetServerList() *ServerList

                      func (*LoadBalanceResponse) ProtoMessage

                      func (*LoadBalanceResponse) ProtoMessage()

                      func (*LoadBalanceResponse) ProtoReflect

                      func (x *LoadBalanceResponse) ProtoReflect() protoreflect.Message

                      func (*LoadBalanceResponse) Reset

                      func (x *LoadBalanceResponse) Reset()

                      func (*LoadBalanceResponse) String

                      func (x *LoadBalanceResponse) String() string

                      type LoadBalanceResponse_FallbackResponse

                      type LoadBalanceResponse_FallbackResponse struct {
                      	// If this field is set, then the client should eagerly enter fallback
                      	// mode (even if there are existing, healthy connections to backends).
                      	FallbackResponse *FallbackResponse `protobuf:"bytes,3,opt,name=fallback_response,json=fallbackResponse,proto3,oneof"`
                      }

                      type LoadBalanceResponse_InitialResponse

                      type LoadBalanceResponse_InitialResponse struct {
                      	// This message should be sent on the first response to the client.
                      	InitialResponse *InitialLoadBalanceResponse `protobuf:"bytes,1,opt,name=initial_response,json=initialResponse,proto3,oneof"`
                      }

                      type LoadBalanceResponse_ServerList

                      type LoadBalanceResponse_ServerList struct {
                      	// Contains the list of servers selected by the load balancer. The client
                      	// should send requests to these servers in the specified order.
                      	ServerList *ServerList `protobuf:"bytes,2,opt,name=server_list,json=serverList,proto3,oneof"`
                      }

                      type LoadBalancerClient

                      type LoadBalancerClient interface {
                      	// Bidirectional rpc to get a list of servers.
                      	BalanceLoad(ctx context.Context, opts ...grpc.CallOption) (LoadBalancer_BalanceLoadClient, error)
                      }

                        LoadBalancerClient is the client API for LoadBalancer service.

                        For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.

                        type LoadBalancerServer

                        type LoadBalancerServer interface {
                        	// Bidirectional rpc to get a list of servers.
                        	BalanceLoad(LoadBalancer_BalanceLoadServer) error
                        }

                          LoadBalancerServer is the server API for LoadBalancer service. All implementations should embed UnimplementedLoadBalancerServer for forward compatibility

                          type LoadBalancer_BalanceLoadClient

                          type LoadBalancer_BalanceLoadClient interface {
                          	Send(*LoadBalanceRequest) error
                          	Recv() (*LoadBalanceResponse, error)
                          	grpc.ClientStream
                          }

                          type LoadBalancer_BalanceLoadServer

                          type LoadBalancer_BalanceLoadServer interface {
                          	Send(*LoadBalanceResponse) error
                          	Recv() (*LoadBalanceRequest, error)
                          	grpc.ServerStream
                          }

                          type Server

                          type Server struct {
                          
                          	// A resolved address for the server, serialized in network-byte-order. It may
                          	// either be an IPv4 or IPv6 address.
                          	IpAddress []byte `protobuf:"bytes,1,opt,name=ip_address,json=ipAddress,proto3" json:"ip_address,omitempty"`
                          	// A resolved port number for the server.
                          	Port int32 `protobuf:"varint,2,opt,name=port,proto3" json:"port,omitempty"`
                          	// An opaque but printable token for load reporting. The client must include
                          	// the token of the picked server into the initial metadata when it starts a
                          	// call to that server. The token is used by the server to verify the request
                          	// and to allow the server to report load to the gRPC LB system. The token is
                          	// also used in client stats for reporting dropped calls.
                          	//
                          	// Its length can be variable but must be less than 50 bytes.
                          	LoadBalanceToken string `protobuf:"bytes,3,opt,name=load_balance_token,json=loadBalanceToken,proto3" json:"load_balance_token,omitempty"`
                          	// Indicates whether this particular request should be dropped by the client.
                          	// If the request is dropped, there will be a corresponding entry in
                          	// ClientStats.calls_finished_with_drop.
                          	Drop bool `protobuf:"varint,4,opt,name=drop,proto3" json:"drop,omitempty"`
                          	// contains filtered or unexported fields
                          }

                            Contains server information. When the drop field is not true, use the other fields.

                            func (*Server) Descriptor

                            func (*Server) Descriptor() ([]byte, []int)

                              Deprecated: Use Server.ProtoReflect.Descriptor instead.

                              func (*Server) GetDrop

                              func (x *Server) GetDrop() bool

                              func (*Server) GetIpAddress

                              func (x *Server) GetIpAddress() []byte

                              func (*Server) GetLoadBalanceToken

                              func (x *Server) GetLoadBalanceToken() string

                              func (*Server) GetPort

                              func (x *Server) GetPort() int32

                              func (*Server) ProtoMessage

                              func (*Server) ProtoMessage()

                              func (*Server) ProtoReflect

                              func (x *Server) ProtoReflect() protoreflect.Message

                              func (*Server) Reset

                              func (x *Server) Reset()

                              func (*Server) String

                              func (x *Server) String() string

                              type ServerList

                              type ServerList struct {
                              
                              	// Contains a list of servers selected by the load balancer. The list will
                              	// be updated when server resolutions change or as needed to balance load
                              	// across more servers. The client should consume the server list in order
                              	// unless instructed otherwise via the client_config.
                              	Servers []*Server `protobuf:"bytes,1,rep,name=servers,proto3" json:"servers,omitempty"`
                              	// contains filtered or unexported fields
                              }

                              func (*ServerList) Descriptor

                              func (*ServerList) Descriptor() ([]byte, []int)

                                Deprecated: Use ServerList.ProtoReflect.Descriptor instead.

                                func (*ServerList) GetServers

                                func (x *ServerList) GetServers() []*Server

                                func (*ServerList) ProtoMessage

                                func (*ServerList) ProtoMessage()

                                func (*ServerList) ProtoReflect

                                func (x *ServerList) ProtoReflect() protoreflect.Message

                                func (*ServerList) Reset

                                func (x *ServerList) Reset()

                                func (*ServerList) String

                                func (x *ServerList) String() string

                                type UnimplementedLoadBalancerServer

                                type UnimplementedLoadBalancerServer struct {
                                }

                                  UnimplementedLoadBalancerServer should be embedded to have forward compatible implementations.

                                  func (UnimplementedLoadBalancerServer) BalanceLoad

                                  type UnsafeLoadBalancerServer

                                  type UnsafeLoadBalancerServer interface {
                                  	// contains filtered or unexported methods
                                  }

                                    UnsafeLoadBalancerServer may be embedded to opt out of forward compatibility for this service. Use of this interface is not recommended, as added methods to LoadBalancerServer will result in compilation errors.