rpc

package
v1.0.3 Latest Latest
Warning

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

Go to latest
Published: Oct 19, 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{},
	}
)

Functions

This section is empty.

Types

type AsyncCallback added in v1.0.3

type AsyncCallback func(response CallResponse)

type CallOption added in v1.0.3

type CallOption func(*CallOptions)

func WithCallMeta added in v1.0.3

func WithCallMeta(k, v interface{}) CallOption

func WithCallRequestTimeout added in v1.0.3

func WithCallRequestTimeout(d time.Duration) CallOption

func WithCallResponseTimeout added in v1.0.3

func WithCallResponseTimeout(d time.Duration) CallOption

type CallOptions added in v1.0.3

type CallOptions struct {
	// request timeout
	RequestTimeout time.Duration
	// response timeout
	ResponseTimeout time.Duration
	Meta            map[interface{}]interface{}
}

type CallResponse added in v1.0.3

type CallResponse struct {
	Opts      CallOptions
	Cause     error
	Start     time.Time // invoke(call) start time == write start time
	ReadStart time.Time // read start time, write duration = ReadStart - Start
	Reply     interface{}
}

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) AsyncCall added in v1.0.3

func (c *Client) AsyncCall(typ CodecType, addr, service, method string, args interface{},
	callback AsyncCallback, reply interface{}, opts ...CallOption) error

func (*Client) Call

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

if @reply is nil, the transport layer will get the response without notify the invoker.

func (*Client) CallOneway added in v1.0.3

func (c *Client) CallOneway(typ CodecType, addr, service, method string, args interface{}, opts ...CallOption) error

call one way

func (*Client) Close

func (c *Client) Close()

type ClientConfig

type ClientConfig struct {
	// local address
	AppName     string `default:"rpc-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_number" json:"connection_number,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 ErrorCode added in v1.0.2

type ErrorCode int16
const (
	GettyOK   ErrorCode = 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
	Command   gettyCommand  // operation command code
	ServiceID ServiceIDType // service id
	Sequence  SequenceType  // request/response sequence
	LogID     LogIDType     // log id

	Code      ErrorCode  // error code
	CodecType CodecType  // codec type
	PkgLen    PkgLenType // package body length
}

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(ct 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 int64

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

func (PendingResponse) GetCallResponse added in v1.0.3

func (r PendingResponse) GetCallResponse() CallResponse

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 RpcClientHandler

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

func NewRpcClientHandler

func NewRpcClientHandler(client *gettyRPCClient) *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:"rpc-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 int16

Jump to

Keyboard shortcuts

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