rpc

package
v0.9.3 Latest Latest
Warning

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

Go to latest
Published: Aug 7, 2018 License: Apache-2.0 Imports: 23 Imported by: 0

Documentation

Overview

Package rpc is a generated protocol buffer package.

It is generated from these files:

codec.proto

It has these top-level messages:

GettyRPCRequestHeader
GettyRPCResponseHeader

Index

Constants

View Source
const (
	CodecUnknown  CodecType = 0x00
	CodecJson               = 0x01
	CodecProtobuf           = 0x02
)

Variables

View Source
var (
	ErrNotEnoughStream = jerrors.New("packet stream is not enough")
	ErrTooLargePackage = jerrors.New("package length is exceed the getty package's legal maximum length.")
	ErrInvalidPackage  = jerrors.New("invalid rpc package")
	ErrIllegalMagic    = jerrors.New("package magic is not right.")
)
View Source
var (
	ErrInvalidLengthCodec = fmt.Errorf("proto: negative length found during unmarshaling")
	ErrIntOverflowCodec   = fmt.Errorf("proto: integer overflow")
)
View Source
var CallType_name = map[int32]string{
	0: "CT_UNKOWN",
	1: "CT_OneWay",
	2: "CT_TwoWay",
	3: "CT_TwoWayNoReply",
}
View Source
var CallType_value = map[string]int32{
	"CT_UNKOWN":        0,
	"CT_OneWay":        1,
	"CT_TwoWay":        2,
	"CT_TwoWayNoReply": 3,
}
View Source
var (
	Codecs = map[CodecType]Codec{
		CodecJson:     &JSONCodec{},
		CodecProtobuf: &PBCodec{},
	}
)
View Source
var (
	ErrIllegalConf = "illegal conf: "
)

Functions

This section is empty.

Types

type CallType added in v0.9.3

type CallType int32
const (
	CT_UNKOWN        CallType = 0
	CT_OneWay        CallType = 1
	CT_TwoWay        CallType = 2
	CT_TwoWayNoReply CallType = 3
)

func (CallType) Enum added in v0.9.3

func (x CallType) Enum() *CallType

func (CallType) EnumDescriptor added in v0.9.3

func (CallType) EnumDescriptor() ([]byte, []int)

func (CallType) MarshalJSON added in v0.9.3

func (x CallType) MarshalJSON() ([]byte, error)

func (CallType) String added in v0.9.3

func (x CallType) String() string

func (*CallType) UnmarshalJSON added in v0.9.3

func (x *CallType) UnmarshalJSON(data []byte) error

type Client

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

func NewClient

func NewClient(conf *ClientConfig) (*Client, error)

func (*Client) AddPendingResponse

func (c *Client) AddPendingResponse(pr *PendingResponse)

func (*Client) Call

func (c *Client) Call(typ CodecType, addr, service, method string, args interface{}, reply interface{}) error

func (*Client) ClearPendingResponses

func (c *Client) ClearPendingResponses() map[SequenceType]*PendingResponse

func (*Client) Close

func (c *Client) Close()

func (*Client) PendingResponseCount

func (c *Client) PendingResponseCount() int

func (*Client) RemovePendingResponse

func (c *Client) RemovePendingResponse(seq SequenceType) *PendingResponse

type ClientConfig

type ClientConfig struct {
	// local address
	AppName     string `default:"rcp-client" yaml:"app_name" json:"app_name,omitempty"`
	Host        string `default:"127.0.0.1" yaml:"host" json:"host,omitempty"`
	ProfilePort int    `default:"10086" yaml:"profile_port" json:"profile_port,omitempty"`

	// session pool
	ConnectionNum int `default:"16" yaml:"connection_num" json:"connection_num,omitempty"`

	// heartbeat
	HeartbeatPeriod string `default:"15s" yaml:"heartbeat_period" json:"heartbeat_period, omitempty"`

	// session
	SessionTimeout string `default:"60s" yaml:"session_timeout" json:"session_timeout,omitempty"`

	// app
	FailFastTimeout string `default:"5s" yaml:"fail_fast_timeout" json:"fail_fast_timeout, omitempty"`

	// Connection Pool
	PoolSize int `default:"2" yaml:"pool_size" json:"pool_size,omitempty"`
	PoolTTL  int `default:"180" yaml:"pool_ttl" json:"pool_ttl,omitempty"`

	// session tcp parameters
	GettySessionParam GettySessionParam `required:"true" yaml:"getty_session_param" json:"getty_session_param,omitempty"`
	// contains filtered or unexported fields
}

Config holds supported types by the multiconfig package

func (*ClientConfig) CheckValidity added in v0.9.3

func (c *ClientConfig) CheckValidity() error

type Codec

type Codec interface {
	Encode(interface{}) ([]byte, error)
	Decode([]byte, interface{}) error
}

type CodecType added in v0.9.3

type CodecType int16

func GetCodecType added in v0.9.3

func GetCodecType(codecType string) CodecType

func (CodecType) CheckValidity added in v0.9.3

func (c CodecType) CheckValidity() bool

func (CodecType) String added in v0.9.3

func (c CodecType) String() string

type GettyErrorCode

type GettyErrorCode int16
const (
	GettyOK   GettyErrorCode = 0x00
	GettyFail                = 0x01
)

type GettyPackage

type GettyPackage struct {
	H GettyPackageHeader
	B RPCPackage
}

func (*GettyPackage) Marshal

func (p *GettyPackage) Marshal() (*bytes.Buffer, error)

func (GettyPackage) String

func (p GettyPackage) String() string

func (*GettyPackage) Unmarshal

func (p *GettyPackage) Unmarshal(buf *bytes.Buffer) (int, error)

type GettyPackageHeader

type GettyPackageHeader struct {
	Magic    MagicType    // magic number
	LogID    LogIDType    // log id
	Sequence SequenceType // request/response sequence

	Command   gettyCommand  // operation command code
	ServiceID ServiceIDType // service id

	Code      GettyErrorCode // error code
	CodecType CodecType
	PkgLen    PkgLenType
}

type GettyRPCHeaderLenType

type GettyRPCHeaderLenType uint16

type GettyRPCRequest

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

func (*GettyRPCRequest) GetBody

func (req *GettyRPCRequest) GetBody() []byte

func (*GettyRPCRequest) GetHeader

func (req *GettyRPCRequest) GetHeader() interface{}

func (*GettyRPCRequest) Marshal

func (req *GettyRPCRequest) Marshal(sz CodecType, buf *bytes.Buffer) (int, error)

func (*GettyRPCRequest) Unmarshal

func (req *GettyRPCRequest) Unmarshal(sz CodecType, buf *bytes.Buffer) error

type GettyRPCRequestHeader

type GettyRPCRequestHeader struct {
	Service  string   `protobuf:"bytes,1,opt,name=Service" json:"Service"`
	Method   string   `protobuf:"bytes,2,opt,name=Method" json:"Method"`
	CallType CallType `protobuf:"varint,3,opt,name=CallType,enum=rpc.CallType" json:"CallType"`
}

func (*GettyRPCRequestHeader) Descriptor added in v0.9.3

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

func (*GettyRPCRequestHeader) Equal added in v0.9.3

func (this *GettyRPCRequestHeader) Equal(that interface{}) bool

func (*GettyRPCRequestHeader) GoString added in v0.9.3

func (this *GettyRPCRequestHeader) GoString() string

func (*GettyRPCRequestHeader) Marshal added in v0.9.3

func (m *GettyRPCRequestHeader) Marshal() (dAtA []byte, err error)

func (*GettyRPCRequestHeader) MarshalTo added in v0.9.3

func (m *GettyRPCRequestHeader) MarshalTo(dAtA []byte) (int, error)

func (*GettyRPCRequestHeader) ProtoMessage added in v0.9.3

func (*GettyRPCRequestHeader) ProtoMessage()

func (*GettyRPCRequestHeader) Reset added in v0.9.3

func (m *GettyRPCRequestHeader) Reset()

func (*GettyRPCRequestHeader) Size added in v0.9.3

func (m *GettyRPCRequestHeader) Size() (n int)

func (*GettyRPCRequestHeader) String added in v0.9.3

func (this *GettyRPCRequestHeader) String() string

func (*GettyRPCRequestHeader) Unmarshal added in v0.9.3

func (m *GettyRPCRequestHeader) Unmarshal(dAtA []byte) error

func (*GettyRPCRequestHeader) VerboseEqual added in v0.9.3

func (this *GettyRPCRequestHeader) VerboseEqual(that interface{}) error

type GettyRPCRequestPackage

type GettyRPCRequestPackage struct {
	H GettyPackageHeader
	// contains filtered or unexported fields
}

type GettyRPCResponse

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

func (*GettyRPCResponse) GetBody

func (resp *GettyRPCResponse) GetBody() []byte

func (*GettyRPCResponse) GetHeader

func (resp *GettyRPCResponse) GetHeader() interface{}

func (*GettyRPCResponse) Marshal

func (resp *GettyRPCResponse) Marshal(sz CodecType, buf *bytes.Buffer) (int, error)

func (*GettyRPCResponse) Unmarshal

func (resp *GettyRPCResponse) Unmarshal(sz CodecType, buf *bytes.Buffer) error

type GettyRPCResponseHeader

type GettyRPCResponseHeader struct {
	Error string `protobuf:"bytes,1,opt,name=Error" json:"Error"`
}

func (*GettyRPCResponseHeader) Descriptor added in v0.9.3

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

func (*GettyRPCResponseHeader) Equal added in v0.9.3

func (this *GettyRPCResponseHeader) Equal(that interface{}) bool

func (*GettyRPCResponseHeader) GoString added in v0.9.3

func (this *GettyRPCResponseHeader) GoString() string

func (*GettyRPCResponseHeader) Marshal added in v0.9.3

func (m *GettyRPCResponseHeader) Marshal() (dAtA []byte, err error)

func (*GettyRPCResponseHeader) MarshalTo added in v0.9.3

func (m *GettyRPCResponseHeader) MarshalTo(dAtA []byte) (int, error)

func (*GettyRPCResponseHeader) ProtoMessage added in v0.9.3

func (*GettyRPCResponseHeader) ProtoMessage()

func (*GettyRPCResponseHeader) Reset added in v0.9.3

func (m *GettyRPCResponseHeader) Reset()

func (*GettyRPCResponseHeader) Size added in v0.9.3

func (m *GettyRPCResponseHeader) Size() (n int)

func (*GettyRPCResponseHeader) String added in v0.9.3

func (this *GettyRPCResponseHeader) String() string

func (*GettyRPCResponseHeader) Unmarshal added in v0.9.3

func (m *GettyRPCResponseHeader) Unmarshal(dAtA []byte) error

func (*GettyRPCResponseHeader) VerboseEqual added in v0.9.3

func (this *GettyRPCResponseHeader) VerboseEqual(that interface{}) error

type GettyRPCResponsePackage

type GettyRPCResponsePackage struct {
	H GettyPackageHeader
	// contains filtered or unexported fields
}

type GettyRPCService added in v0.9.3

type GettyRPCService interface {
	Service() string // Service Interface
	Version() string
}

type GettySessionParam

type GettySessionParam struct {
	CompressEncoding bool   `default:"false" yaml:"compress_encoding" json:"compress_encoding,omitempty"`
	TcpNoDelay       bool   `default:"true" yaml:"tcp_no_delay" json:"tcp_no_delay,omitempty"`
	TcpKeepAlive     bool   `default:"true" yaml:"tcp_keep_alive" json:"tcp_keep_alive,omitempty"`
	KeepAlivePeriod  string `default:"180s" yaml:"keep_alive_period" json:"keep_alive_period,omitempty"`

	TcpRBufSize    int    `default:"262144" yaml:"tcp_r_buf_size" json:"tcp_r_buf_size,omitempty"`
	TcpWBufSize    int    `default:"65536" yaml:"tcp_w_buf_size" json:"tcp_w_buf_size,omitempty"`
	PkgRQSize      int    `default:"1024" yaml:"pkg_rq_size" json:"pkg_rq_size,omitempty"`
	PkgWQSize      int    `default:"1024" yaml:"pkg_wq_size" json:"pkg_wq_size,omitempty"`
	TcpReadTimeout string `default:"1s" yaml:"tcp_read_timeout" json:"tcp_read_timeout,omitempty"`

	TcpWriteTimeout string `default:"5s" yaml:"tcp_write_timeout" json:"tcp_write_timeout,omitempty"`

	WaitTimeout string `default:"7s" yaml:"wait_timeout" json:"wait_timeout,omitempty"`

	MaxMsgLen   int    `default:"1024" yaml:"max_msg_len" json:"max_msg_len,omitempty"`
	SessionName string `default:"rpc" yaml:"session_name" json:"session_name,omitempty"`
	// contains filtered or unexported fields
}

func (*GettySessionParam) CheckValidity added in v0.9.3

func (c *GettySessionParam) CheckValidity() error

type JSONCodec

type JSONCodec struct{}

func (JSONCodec) Decode

func (c JSONCodec) Decode(data []byte, i interface{}) error

func (JSONCodec) Encode

func (c JSONCodec) Encode(i interface{}) ([]byte, error)

type LogIDType added in v0.9.3

type LogIDType int32

type MagicType added in v0.9.3

type MagicType int32

type PBCodec

type PBCodec struct{}

func (PBCodec) Decode

func (c PBCodec) Decode(buf []byte, msg interface{}) error

Decode parses the protocol buffer representation in buf and writes the decoded result to pb. If the struct underlying pb does not match the data in buf, the results can be unpredictable.

UnmarshalMerge merges into existing data in pb. Most code should use Unmarshal instead.

func (PBCodec) Encode

func (c PBCodec) Encode(msg interface{}) ([]byte, error)

Encode takes the protocol buffer and encodes it into the wire format, returning the data.

type PendingResponse

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

func NewPendingResponse

func NewPendingResponse() *PendingResponse

type PkgLenType added in v0.9.3

type PkgLenType int32

type RPCPackage

type RPCPackage interface {
	Marshal(CodecType, *bytes.Buffer) (int, error)
	// @buf length should be equal to GettyPkg.GettyPackageHeader.Len
	Unmarshal(sz CodecType, buf *bytes.Buffer) error
	GetBody() []byte
	GetHeader() interface{}
}

func NewGettyRPCRequest

func NewGettyRPCRequest() RPCPackage

func NewGettyRPCResponse

func NewGettyRPCResponse() RPCPackage

type RegistryConfig added in v0.9.3

type RegistryConfig struct {
	Type             string `default:"etcd" yaml:"type" json:"type,omitempty"`
	Addr             string `default:"" yaml:"addr" json:"addr,omitempty"`
	KeepaliveTimeout int    `default:"5" yaml:"keepalive_time" json:"keepalive_timeout,omitempty"`
	Root             string `default:"getty" yaml:"keepalive_time" json:"keepalive_timeout,omitempty"`
	IDC              string `default:"idc-bj" yaml:"idc" json:"idc,omitempty"`
	NodeID           string `default:"node0" yaml:"node_id" json:"node_id,omitempty"`
}

type RpcClientHandler

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

func NewRpcClientHandler

func NewRpcClientHandler(client *gettyRPCClientConn) *RpcClientHandler

func (*RpcClientHandler) OnClose

func (h *RpcClientHandler) OnClose(session getty.Session)

func (*RpcClientHandler) OnCron

func (h *RpcClientHandler) OnCron(session getty.Session)

func (*RpcClientHandler) OnError

func (h *RpcClientHandler) OnError(session getty.Session, err error)

func (*RpcClientHandler) OnMessage

func (h *RpcClientHandler) OnMessage(session getty.Session, pkg interface{})

func (*RpcClientHandler) OnOpen

func (h *RpcClientHandler) OnOpen(session getty.Session) error

type RpcClientPackageHandler

type RpcClientPackageHandler struct {
}

func NewRpcClientPackageHandler

func NewRpcClientPackageHandler() *RpcClientPackageHandler

func (*RpcClientPackageHandler) Read

func (p *RpcClientPackageHandler) Read(ss getty.Session, data []byte) (interface{}, int, error)

func (*RpcClientPackageHandler) Write

func (p *RpcClientPackageHandler) Write(ss getty.Session, pkg interface{}) error

type RpcServerHandler

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

func NewRpcServerHandler

func NewRpcServerHandler(maxSessionNum int, sessionTimeout time.Duration) *RpcServerHandler

func (*RpcServerHandler) OnClose

func (h *RpcServerHandler) OnClose(session getty.Session)

func (*RpcServerHandler) OnCron

func (h *RpcServerHandler) OnCron(session getty.Session)

func (*RpcServerHandler) OnError

func (h *RpcServerHandler) OnError(session getty.Session, err error)

func (*RpcServerHandler) OnMessage

func (h *RpcServerHandler) OnMessage(session getty.Session, pkg interface{})

func (*RpcServerHandler) OnOpen

func (h *RpcServerHandler) OnOpen(session getty.Session) error

type RpcServerPackageHandler

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

func NewRpcServerPackageHandler

func NewRpcServerPackageHandler(server *Server) *RpcServerPackageHandler

func (*RpcServerPackageHandler) Read

func (p *RpcServerPackageHandler) Read(ss getty.Session, data []byte) (interface{}, int, error)

func (*RpcServerPackageHandler) Write

func (p *RpcServerPackageHandler) Write(ss getty.Session, pkg interface{}) error

type SequenceType added in v0.9.3

type SequenceType uint64

type Server

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

func NewServer

func NewServer(conf *ServerConfig) (*Server, error)

func (*Server) Register

func (s *Server) Register(rcvr GettyRPCService) error

func (*Server) Start added in v0.9.3

func (s *Server) Start()

func (*Server) Stop

func (s *Server) Stop()

type ServerConfig

type ServerConfig struct {
	// local address
	AppName     string   `default:"rcp-server" yaml:"app_name" json:"app_name,omitempty"`
	Host        string   `default:"127.0.0.1" yaml:"host" json:"host,omitempty"`
	Ports       []string `yaml:"ports" json:"ports,omitempty"` // `default:["10000"]`
	ProfilePort int      `default:"10086" yaml:"profile_port" json:"profile_port,omitempty"`

	// session
	SessionTimeout string `default:"60s" yaml:"session_timeout" json:"session_timeout,omitempty"`

	SessionNumber int `default:"1000" yaml:"session_number" json:"session_number,omitempty"`

	// app
	FailFastTimeout string `default:"5s" yaml:"fail_fast_timeout" json:"fail_fast_timeout,omitempty"`

	// session tcp parameters
	GettySessionParam GettySessionParam `required:"true" yaml:"getty_session_param" json:"getty_session_param,omitempty"`
	// contains filtered or unexported fields
}

Config holds supported types by the multiconfig package

func (*ServerConfig) CheckValidity added in v0.9.3

func (c *ServerConfig) CheckValidity() error

type ServiceIDType added in v0.9.3

type ServiceIDType int32

Jump to

Keyboard shortcuts

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