const (
LoadBalancer_BalanceLoad_FullMethodName = "/grpc.lb.v1.LoadBalancer/BalanceLoad"
)
var File_grpc_lb_v1_load_balancer_proto protoreflect.FileDescriptor
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)
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", }
func RegisterLoadBalancerServer(s grpc.ServiceRegistrar, srv LoadBalancerServer)
Contains client level statistics that are useful to load balancing. Each count except the timestamp should be reset to zero after reporting the stats.
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 `protobuf:"varint,6,opt,name=num_calls_finished_with_client_failed_to_send,json=numCallsFinishedWithClientFailedToSend,proto3" json:"num_calls_finished_with_client_failed_to_send,omitempty"` // The total number of RPCs that finished and are known to have been received // by a server. NumCallsFinishedKnownReceived int64 `protobuf:"varint,7,opt,name=num_calls_finished_known_received,json=numCallsFinishedKnownReceived,proto3" json:"num_calls_finished_known_received,omitempty"` // The list of dropped calls. CallsFinishedWithDrop []*ClientStatsPerToken `protobuf:"bytes,8,rep,name=calls_finished_with_drop,json=callsFinishedWithDrop,proto3" json:"calls_finished_with_drop,omitempty"` // contains filtered or unexported fields }
func (*ClientStats) Descriptor() ([]byte, []int)
Deprecated: Use ClientStats.ProtoReflect.Descriptor instead.
func (x *ClientStats) GetCallsFinishedWithDrop() []*ClientStatsPerToken
func (x *ClientStats) GetNumCallsFinished() int64
func (x *ClientStats) GetNumCallsFinishedKnownReceived() int64
func (x *ClientStats) GetNumCallsFinishedWithClientFailedToSend() int64
func (x *ClientStats) GetNumCallsStarted() int64
func (x *ClientStats) GetTimestamp() *timestamppb.Timestamp
func (*ClientStats) ProtoMessage()
func (x *ClientStats) ProtoReflect() protoreflect.Message
func (x *ClientStats) Reset()
func (x *ClientStats) String() string
Contains the number of calls finished for a particular load balance token.
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 }
func (*ClientStatsPerToken) Descriptor() ([]byte, []int)
Deprecated: Use ClientStatsPerToken.ProtoReflect.Descriptor instead.
func (x *ClientStatsPerToken) GetLoadBalanceToken() string
func (x *ClientStatsPerToken) GetNumCalls() int64
func (*ClientStatsPerToken) ProtoMessage()
func (x *ClientStatsPerToken) ProtoReflect() protoreflect.Message
func (x *ClientStatsPerToken) Reset()
func (x *ClientStatsPerToken) String() string
type FallbackResponse struct {
// contains filtered or unexported fields
}
func (*FallbackResponse) Descriptor() ([]byte, []int)
Deprecated: Use FallbackResponse.ProtoReflect.Descriptor instead.
func (*FallbackResponse) ProtoMessage()
func (x *FallbackResponse) ProtoReflect() protoreflect.Message
func (x *FallbackResponse) Reset()
func (x *FallbackResponse) String() string
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() ([]byte, []int)
Deprecated: Use InitialLoadBalanceRequest.ProtoReflect.Descriptor instead.
func (x *InitialLoadBalanceRequest) GetName() string
func (*InitialLoadBalanceRequest) ProtoMessage()
func (x *InitialLoadBalanceRequest) ProtoReflect() protoreflect.Message
func (x *InitialLoadBalanceRequest) Reset()
func (x *InitialLoadBalanceRequest) String() string
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 `protobuf:"bytes,2,opt,name=client_stats_report_interval,json=clientStatsReportInterval,proto3" json:"client_stats_report_interval,omitempty"` // contains filtered or unexported fields }
func (*InitialLoadBalanceResponse) Descriptor() ([]byte, []int)
Deprecated: Use InitialLoadBalanceResponse.ProtoReflect.Descriptor instead.
func (x *InitialLoadBalanceResponse) GetClientStatsReportInterval() *durationpb.Duration
func (*InitialLoadBalanceResponse) ProtoMessage()
func (x *InitialLoadBalanceResponse) ProtoReflect() protoreflect.Message
func (x *InitialLoadBalanceResponse) Reset()
func (x *InitialLoadBalanceResponse) String() string
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() ([]byte, []int)
Deprecated: Use LoadBalanceRequest.ProtoReflect.Descriptor instead.
func (x *LoadBalanceRequest) GetClientStats() *ClientStats
func (x *LoadBalanceRequest) GetInitialRequest() *InitialLoadBalanceRequest
func (m *LoadBalanceRequest) GetLoadBalanceRequestType() isLoadBalanceRequest_LoadBalanceRequestType
func (*LoadBalanceRequest) ProtoMessage()
func (x *LoadBalanceRequest) ProtoReflect() protoreflect.Message
func (x *LoadBalanceRequest) Reset()
func (x *LoadBalanceRequest) String() string
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 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 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() ([]byte, []int)
Deprecated: Use LoadBalanceResponse.ProtoReflect.Descriptor instead.
func (x *LoadBalanceResponse) GetFallbackResponse() *FallbackResponse
func (x *LoadBalanceResponse) GetInitialResponse() *InitialLoadBalanceResponse
func (m *LoadBalanceResponse) GetLoadBalanceResponseType() isLoadBalanceResponse_LoadBalanceResponseType
func (x *LoadBalanceResponse) GetServerList() *ServerList
func (*LoadBalanceResponse) ProtoMessage()
func (x *LoadBalanceResponse) ProtoReflect() protoreflect.Message
func (x *LoadBalanceResponse) Reset()
func (x *LoadBalanceResponse) String() string
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 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 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"` }
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 LoadBalancerClient interface { // Bidirectional rpc to get a list of servers. BalanceLoad(ctx context.Context, opts ...grpc.CallOption) (LoadBalancer_BalanceLoadClient, error) }
func NewLoadBalancerClient(cc grpc.ClientConnInterface) LoadBalancerClient
LoadBalancerServer is the server API for LoadBalancer service. All implementations should embed UnimplementedLoadBalancerServer for forward compatibility
type LoadBalancerServer interface { // Bidirectional rpc to get a list of servers. BalanceLoad(LoadBalancer_BalanceLoadServer) error }
type LoadBalancer_BalanceLoadClient interface { Send(*LoadBalanceRequest) error Recv() (*LoadBalanceResponse, error) grpc.ClientStream }
type LoadBalancer_BalanceLoadServer interface { Send(*LoadBalanceResponse) error Recv() (*LoadBalanceRequest, error) grpc.ServerStream }
Contains server information. When the drop field is not true, use the other fields.
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 }
func (*Server) Descriptor() ([]byte, []int)
Deprecated: Use Server.ProtoReflect.Descriptor instead.
func (x *Server) GetDrop() bool
func (x *Server) GetIpAddress() []byte
func (x *Server) GetLoadBalanceToken() string
func (x *Server) GetPort() int32
func (*Server) ProtoMessage()
func (x *Server) ProtoReflect() protoreflect.Message
func (x *Server) Reset()
func (x *Server) String() string
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() ([]byte, []int)
Deprecated: Use ServerList.ProtoReflect.Descriptor instead.
func (x *ServerList) GetServers() []*Server
func (*ServerList) ProtoMessage()
func (x *ServerList) ProtoReflect() protoreflect.Message
func (x *ServerList) Reset()
func (x *ServerList) String() string
UnimplementedLoadBalancerServer should be embedded to have forward compatible implementations.
type UnimplementedLoadBalancerServer struct { }
func (UnimplementedLoadBalancerServer) BalanceLoad(LoadBalancer_BalanceLoadServer) error
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.
type UnsafeLoadBalancerServer interface {
// contains filtered or unexported methods
}