grpc_lb_v1

package
v1.26.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 17, 2019 License: Apache-2.0 Imports: 9 Imported by: 37

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func RegisterLoadBalancerServer

func RegisterLoadBalancerServer(s *grpc.Server, srv LoadBalancerServer)

Types

type ClientStats

type ClientStats struct {
	// The timestamp of generating the report.
	Timestamp *timestamp.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 */
	XXX_NoUnkeyedLiteral  struct{}               `json:"-"`
	XXX_unrecognized      []byte                 `json:"-"`
	XXX_sizecache         int32                  `json:"-"`
}

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)

func (*ClientStats) GetCallsFinishedWithDrop

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

func (*ClientStats) GetNumCallsFinished

func (m *ClientStats) GetNumCallsFinished() int64

func (*ClientStats) GetNumCallsFinishedKnownReceived

func (m *ClientStats) GetNumCallsFinishedKnownReceived() int64

func (*ClientStats) GetNumCallsFinishedWithClientFailedToSend

func (m *ClientStats) GetNumCallsFinishedWithClientFailedToSend() int64

func (*ClientStats) GetNumCallsStarted

func (m *ClientStats) GetNumCallsStarted() int64

func (*ClientStats) GetTimestamp

func (m *ClientStats) GetTimestamp() *timestamp.Timestamp

func (*ClientStats) ProtoMessage

func (*ClientStats) ProtoMessage()

func (*ClientStats) Reset

func (m *ClientStats) Reset()

func (*ClientStats) String

func (m *ClientStats) String() string

func (*ClientStats) XXX_DiscardUnknown

func (m *ClientStats) XXX_DiscardUnknown()

func (*ClientStats) XXX_Marshal

func (m *ClientStats) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*ClientStats) XXX_Merge

func (m *ClientStats) XXX_Merge(src proto.Message)

func (*ClientStats) XXX_Size

func (m *ClientStats) XXX_Size() int

func (*ClientStats) XXX_Unmarshal

func (m *ClientStats) XXX_Unmarshal(b []byte) error

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"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

func (*ClientStatsPerToken) Descriptor

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

func (*ClientStatsPerToken) GetLoadBalanceToken

func (m *ClientStatsPerToken) GetLoadBalanceToken() string

func (*ClientStatsPerToken) GetNumCalls

func (m *ClientStatsPerToken) GetNumCalls() int64

func (*ClientStatsPerToken) ProtoMessage

func (*ClientStatsPerToken) ProtoMessage()

func (*ClientStatsPerToken) Reset

func (m *ClientStatsPerToken) Reset()

func (*ClientStatsPerToken) String

func (m *ClientStatsPerToken) String() string

func (*ClientStatsPerToken) XXX_DiscardUnknown

func (m *ClientStatsPerToken) XXX_DiscardUnknown()

func (*ClientStatsPerToken) XXX_Marshal

func (m *ClientStatsPerToken) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*ClientStatsPerToken) XXX_Merge

func (m *ClientStatsPerToken) XXX_Merge(src proto.Message)

func (*ClientStatsPerToken) XXX_Size

func (m *ClientStatsPerToken) XXX_Size() int

func (*ClientStatsPerToken) XXX_Unmarshal

func (m *ClientStatsPerToken) XXX_Unmarshal(b []byte) error

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"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (*InitialLoadBalanceRequest) Descriptor

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

func (*InitialLoadBalanceRequest) GetName

func (m *InitialLoadBalanceRequest) GetName() string

func (*InitialLoadBalanceRequest) ProtoMessage

func (*InitialLoadBalanceRequest) ProtoMessage()

func (*InitialLoadBalanceRequest) Reset

func (m *InitialLoadBalanceRequest) Reset()

func (*InitialLoadBalanceRequest) String

func (m *InitialLoadBalanceRequest) String() string

func (*InitialLoadBalanceRequest) XXX_DiscardUnknown

func (m *InitialLoadBalanceRequest) XXX_DiscardUnknown()

func (*InitialLoadBalanceRequest) XXX_Marshal

func (m *InitialLoadBalanceRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*InitialLoadBalanceRequest) XXX_Merge

func (m *InitialLoadBalanceRequest) XXX_Merge(src proto.Message)

func (*InitialLoadBalanceRequest) XXX_Size

func (m *InitialLoadBalanceRequest) XXX_Size() int

func (*InitialLoadBalanceRequest) XXX_Unmarshal

func (m *InitialLoadBalanceRequest) XXX_Unmarshal(b []byte) error

type InitialLoadBalanceResponse

type InitialLoadBalanceResponse struct {
	// This is an application layer redirect that indicates the client should use
	// the specified server for load balancing. When this field is non-empty in
	// the response, the client should open a separate connection to the
	// load_balancer_delegate and call the BalanceLoad method. Its length should
	// be less than 64 bytes.
	LoadBalancerDelegate string `protobuf:"bytes,1,opt,name=load_balancer_delegate,json=loadBalancerDelegate,proto3" json:"load_balancer_delegate,omitempty"`
	// 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 *duration.Duration `` /* 140-byte string literal not displayed */
	XXX_NoUnkeyedLiteral      struct{}           `json:"-"`
	XXX_unrecognized          []byte             `json:"-"`
	XXX_sizecache             int32              `json:"-"`
}

func (*InitialLoadBalanceResponse) Descriptor

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

func (*InitialLoadBalanceResponse) GetClientStatsReportInterval

func (m *InitialLoadBalanceResponse) GetClientStatsReportInterval() *duration.Duration

func (*InitialLoadBalanceResponse) GetLoadBalancerDelegate

func (m *InitialLoadBalanceResponse) GetLoadBalancerDelegate() string

func (*InitialLoadBalanceResponse) ProtoMessage

func (*InitialLoadBalanceResponse) ProtoMessage()

func (*InitialLoadBalanceResponse) Reset

func (m *InitialLoadBalanceResponse) Reset()

func (*InitialLoadBalanceResponse) String

func (m *InitialLoadBalanceResponse) String() string

func (*InitialLoadBalanceResponse) XXX_DiscardUnknown

func (m *InitialLoadBalanceResponse) XXX_DiscardUnknown()

func (*InitialLoadBalanceResponse) XXX_Marshal

func (m *InitialLoadBalanceResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*InitialLoadBalanceResponse) XXX_Merge

func (m *InitialLoadBalanceResponse) XXX_Merge(src proto.Message)

func (*InitialLoadBalanceResponse) XXX_Size

func (m *InitialLoadBalanceResponse) XXX_Size() int

func (*InitialLoadBalanceResponse) XXX_Unmarshal

func (m *InitialLoadBalanceResponse) XXX_Unmarshal(b []byte) error

type LoadBalanceRequest

type LoadBalanceRequest struct {
	// Types that are valid to be assigned to LoadBalanceRequestType:
	//	*LoadBalanceRequest_InitialRequest
	//	*LoadBalanceRequest_ClientStats
	LoadBalanceRequestType isLoadBalanceRequest_LoadBalanceRequestType `protobuf_oneof:"load_balance_request_type"`
	XXX_NoUnkeyedLiteral   struct{}                                    `json:"-"`
	XXX_unrecognized       []byte                                      `json:"-"`
	XXX_sizecache          int32                                       `json:"-"`
}

func (*LoadBalanceRequest) Descriptor

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

func (*LoadBalanceRequest) GetClientStats

func (m *LoadBalanceRequest) GetClientStats() *ClientStats

func (*LoadBalanceRequest) GetInitialRequest

func (m *LoadBalanceRequest) GetInitialRequest() *InitialLoadBalanceRequest

func (*LoadBalanceRequest) GetLoadBalanceRequestType

func (m *LoadBalanceRequest) GetLoadBalanceRequestType() isLoadBalanceRequest_LoadBalanceRequestType

func (*LoadBalanceRequest) ProtoMessage

func (*LoadBalanceRequest) ProtoMessage()

func (*LoadBalanceRequest) Reset

func (m *LoadBalanceRequest) Reset()

func (*LoadBalanceRequest) String

func (m *LoadBalanceRequest) String() string

func (*LoadBalanceRequest) XXX_DiscardUnknown

func (m *LoadBalanceRequest) XXX_DiscardUnknown()

func (*LoadBalanceRequest) XXX_Marshal

func (m *LoadBalanceRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*LoadBalanceRequest) XXX_Merge

func (m *LoadBalanceRequest) XXX_Merge(src proto.Message)

func (*LoadBalanceRequest) XXX_OneofWrappers added in v1.24.0

func (*LoadBalanceRequest) XXX_OneofWrappers() []interface{}

XXX_OneofWrappers is for the internal use of the proto package.

func (*LoadBalanceRequest) XXX_Size

func (m *LoadBalanceRequest) XXX_Size() int

func (*LoadBalanceRequest) XXX_Unmarshal

func (m *LoadBalanceRequest) XXX_Unmarshal(b []byte) error

type LoadBalanceRequest_ClientStats

type LoadBalanceRequest_ClientStats struct {
	ClientStats *ClientStats `protobuf:"bytes,2,opt,name=client_stats,json=clientStats,proto3,oneof"`
}

type LoadBalanceRequest_InitialRequest

type LoadBalanceRequest_InitialRequest struct {
	InitialRequest *InitialLoadBalanceRequest `protobuf:"bytes,1,opt,name=initial_request,json=initialRequest,proto3,oneof"`
}

type LoadBalanceResponse

type LoadBalanceResponse struct {
	// Types that are valid to be assigned to LoadBalanceResponseType:
	//	*LoadBalanceResponse_InitialResponse
	//	*LoadBalanceResponse_ServerList
	LoadBalanceResponseType isLoadBalanceResponse_LoadBalanceResponseType `protobuf_oneof:"load_balance_response_type"`
	XXX_NoUnkeyedLiteral    struct{}                                      `json:"-"`
	XXX_unrecognized        []byte                                        `json:"-"`
	XXX_sizecache           int32                                         `json:"-"`
}

func (*LoadBalanceResponse) Descriptor

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

func (*LoadBalanceResponse) GetInitialResponse

func (m *LoadBalanceResponse) GetInitialResponse() *InitialLoadBalanceResponse

func (*LoadBalanceResponse) GetLoadBalanceResponseType

func (m *LoadBalanceResponse) GetLoadBalanceResponseType() isLoadBalanceResponse_LoadBalanceResponseType

func (*LoadBalanceResponse) GetServerList

func (m *LoadBalanceResponse) GetServerList() *ServerList

func (*LoadBalanceResponse) ProtoMessage

func (*LoadBalanceResponse) ProtoMessage()

func (*LoadBalanceResponse) Reset

func (m *LoadBalanceResponse) Reset()

func (*LoadBalanceResponse) String

func (m *LoadBalanceResponse) String() string

func (*LoadBalanceResponse) XXX_DiscardUnknown

func (m *LoadBalanceResponse) XXX_DiscardUnknown()

func (*LoadBalanceResponse) XXX_Marshal

func (m *LoadBalanceResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*LoadBalanceResponse) XXX_Merge

func (m *LoadBalanceResponse) XXX_Merge(src proto.Message)

func (*LoadBalanceResponse) XXX_OneofWrappers added in v1.24.0

func (*LoadBalanceResponse) XXX_OneofWrappers() []interface{}

XXX_OneofWrappers is for the internal use of the proto package.

func (*LoadBalanceResponse) XXX_Size

func (m *LoadBalanceResponse) XXX_Size() int

func (*LoadBalanceResponse) XXX_Unmarshal

func (m *LoadBalanceResponse) XXX_Unmarshal(b []byte) error

type LoadBalanceResponse_InitialResponse

type LoadBalanceResponse_InitialResponse struct {
	InitialResponse *InitialLoadBalanceResponse `protobuf:"bytes,1,opt,name=initial_response,json=initialResponse,proto3,oneof"`
}

type LoadBalanceResponse_ServerList

type LoadBalanceResponse_ServerList struct {
	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://godoc.org/google.golang.org/grpc#ClientConn.NewStream.

func NewLoadBalancerClient

func NewLoadBalancerClient(cc *grpc.ClientConn) LoadBalancerClient

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.

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"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

func (*Server) Descriptor

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

func (*Server) GetDrop

func (m *Server) GetDrop() bool

func (*Server) GetIpAddress

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

func (*Server) GetLoadBalanceToken

func (m *Server) GetLoadBalanceToken() string

func (*Server) GetPort

func (m *Server) GetPort() int32

func (*Server) ProtoMessage

func (*Server) ProtoMessage()

func (*Server) Reset

func (m *Server) Reset()

func (*Server) String

func (m *Server) String() string

func (*Server) XXX_DiscardUnknown

func (m *Server) XXX_DiscardUnknown()

func (*Server) XXX_Marshal

func (m *Server) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*Server) XXX_Merge

func (m *Server) XXX_Merge(src proto.Message)

func (*Server) XXX_Size

func (m *Server) XXX_Size() int

func (*Server) XXX_Unmarshal

func (m *Server) XXX_Unmarshal(b []byte) error

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"`
	XXX_NoUnkeyedLiteral struct{}  `json:"-"`
	XXX_unrecognized     []byte    `json:"-"`
	XXX_sizecache        int32     `json:"-"`
}

func (*ServerList) Descriptor

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

func (*ServerList) GetServers

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

func (*ServerList) ProtoMessage

func (*ServerList) ProtoMessage()

func (*ServerList) Reset

func (m *ServerList) Reset()

func (*ServerList) String

func (m *ServerList) String() string

func (*ServerList) XXX_DiscardUnknown

func (m *ServerList) XXX_DiscardUnknown()

func (*ServerList) XXX_Marshal

func (m *ServerList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error)

func (*ServerList) XXX_Merge

func (m *ServerList) XXX_Merge(src proto.Message)

func (*ServerList) XXX_Size

func (m *ServerList) XXX_Size() int

func (*ServerList) XXX_Unmarshal

func (m *ServerList) XXX_Unmarshal(b []byte) error

type UnimplementedLoadBalancerServer added in v1.24.0

type UnimplementedLoadBalancerServer struct {
}

UnimplementedLoadBalancerServer can be embedded to have forward compatible implementations.

func (*UnimplementedLoadBalancerServer) BalanceLoad added in v1.24.0

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL