dubbo

package
v1.4.3 Latest Latest
Warning

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

Go to latest
Published: Jul 28, 2020 License: Apache-2.0 Imports: 27 Imported by: 142

Documentation

Index

Constants

View Source
const (
	// DUBBO ...
	DUBBO = "dubbo"
)

dubbo protocol constant

View Source
const (
	// WritePkg_Timeout ...
	WritePkg_Timeout = 5 * time.Second
)

todo: WritePkg_Timeout will entry *.yml

Variables

View Source
var (
	// ErrNoReply ...
	ErrNoReply          = perrors.New("request need @response")
	ErrDestroyedInvoker = perrors.New("request Destroyed invoker")
)

Functions

func GetProtocol

func GetProtocol() protocol.Protocol

GetProtocol ...

func SetClientConf

func SetClientConf(c ClientConfig)

SetClientConf ...

func SetServerConfig

func SetServerConfig(s ServerConfig)

SetServerConfig ...

func SetServerGrpool added in v1.2.0

func SetServerGrpool()

SetServerGrpool ...

Types

type AsyncCallbackResponse added in v1.3.0

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

AsyncCallbackResponse async response for dubbo

type CallType

type CallType int32

CallType call type

const (
	// CT_UNKNOWN unknown call type
	CT_UNKNOWN CallType = 0
	// CT_OneWay call one way
	CT_OneWay CallType = 1
	// CT_TwoWay call in request/response
	CT_TwoWay CallType = 2
)

type Client

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

Client ...

func NewClient

func NewClient(opt Options) *Client

NewClient ...

func (*Client) AsyncCall

func (c *Client) AsyncCall(request *Request, callback common.AsyncCallback, response *Response) error

AsyncCall ...

func (*Client) Call

func (c *Client) Call(request *Request, response *Response) error

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

func (*Client) CallOneway

func (c *Client) CallOneway(request *Request) error

CallOneway call one way

func (*Client) Close

func (c *Client) Close()

Close ...

type ClientConfig

type ClientConfig struct {
	ReconnectInterval int `default:"0" yaml:"reconnect_interval" json:"reconnect_interval,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"`

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

	// grpool
	GrPoolSize  int `default:"0" yaml:"gr_pool_size" json:"gr_pool_size,omitempty"`
	QueueLen    int `default:"0" yaml:"queue_len" json:"queue_len,omitempty"`
	QueueNumber int `default:"0" yaml:"queue_number" json:"queue_number,omitempty"`

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

ClientConfig Config holds supported types by the multiconfig package

func GetClientConf

func GetClientConf() ClientConfig

GetClientConf ...

func GetDefaultClientConfig added in v1.2.0

func GetDefaultClientConfig() ClientConfig

GetDefaultClientConfig ...

func (*ClientConfig) CheckValidity

func (c *ClientConfig) CheckValidity() error

CheckValidity ...

type DubboExporter

type DubboExporter struct {
	protocol.BaseExporter
}

DubboExporter ...

func NewDubboExporter

func NewDubboExporter(key string, invoker protocol.Invoker, exporterMap *sync.Map) *DubboExporter

NewDubboExporter ...

func (*DubboExporter) Unexport

func (de *DubboExporter) Unexport()

Unexport ...

type DubboInvoker

type DubboInvoker struct {
	protocol.BaseInvoker
	// contains filtered or unexported fields
}

DubboInvoker ...

func NewDubboInvoker

func NewDubboInvoker(url common.URL, client *Client) *DubboInvoker

NewDubboInvoker ...

func (*DubboInvoker) Destroy

func (di *DubboInvoker) Destroy()

Destroy ...

func (*DubboInvoker) Invoke

func (di *DubboInvoker) Invoke(ctx context.Context, invocation protocol.Invocation) protocol.Result

Invoke ...

type DubboPackage

type DubboPackage struct {
	Header  hessian.DubboHeader
	Service hessian.Service
	Body    interface{}
	Err     error
}

DubboPackage ...

func (*DubboPackage) Marshal

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

Marshal ...

func (DubboPackage) String

func (p DubboPackage) String() string

func (*DubboPackage) Unmarshal

func (p *DubboPackage) Unmarshal(buf *bytes.Buffer, opts ...interface{}) error

Unmarshal ...

type DubboProtocol

type DubboProtocol struct {
	protocol.BaseProtocol
	// contains filtered or unexported fields
}

DubboProtocol ...

func NewDubboProtocol

func NewDubboProtocol() *DubboProtocol

NewDubboProtocol ...

func (*DubboProtocol) Destroy

func (dp *DubboProtocol) Destroy()

Destroy ...

func (*DubboProtocol) Export

func (dp *DubboProtocol) Export(invoker protocol.Invoker) protocol.Exporter

Export ...

func (*DubboProtocol) Refer

func (dp *DubboProtocol) Refer(url common.URL) protocol.Invoker

Refer ...

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"`
	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
}

GettySessionParam ...

func (*GettySessionParam) CheckValidity

func (c *GettySessionParam) CheckValidity() error

CheckValidity ...

type Options added in v1.2.0

type Options struct {
	// connect timeout
	ConnectTimeout time.Duration
	// request timeout
	RequestTimeout time.Duration
}

Options ...

type PendingResponse

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

PendingResponse ...

func NewPendingResponse

func NewPendingResponse() *PendingResponse

NewPendingResponse ...

func (PendingResponse) GetCallResponse

func (r PendingResponse) GetCallResponse() common.CallbackResponse

GetCallResponse ...

type Request added in v1.2.0

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

Request ...

func NewRequest added in v1.2.0

func NewRequest(addr string, svcUrl common.URL, method string, args interface{}, atta map[string]string) *Request

NewRequest ...

type Response added in v1.2.0

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

Response ...

func NewResponse added in v1.2.0

func NewResponse(reply interface{}, atta map[string]string) *Response

NewResponse ...

type RpcClientHandler

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

RpcClientHandler ...

func NewRpcClientHandler

func NewRpcClientHandler(client *gettyRPCClient) *RpcClientHandler

NewRpcClientHandler ...

func (*RpcClientHandler) OnClose

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

OnClose ...

func (*RpcClientHandler) OnCron

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

OnCron ...

func (*RpcClientHandler) OnError

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

OnError ...

func (*RpcClientHandler) OnMessage

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

OnMessage ...

func (*RpcClientHandler) OnOpen

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

OnOpen ...

type RpcClientPackageHandler

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

RpcClientPackageHandler ...

func NewRpcClientPackageHandler

func NewRpcClientPackageHandler(client *Client) *RpcClientPackageHandler

NewRpcClientPackageHandler ...

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{}) ([]byte, error)

type RpcServerHandler

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

RpcServerHandler ...

func NewRpcServerHandler

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

NewRpcServerHandler ...

func (*RpcServerHandler) OnClose

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

OnClose ...

func (*RpcServerHandler) OnCron

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

OnCron ...

func (*RpcServerHandler) OnError

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

OnError ...

func (*RpcServerHandler) OnMessage

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

OnMessage ...

func (*RpcServerHandler) OnOpen

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

OnOpen ...

type RpcServerPackageHandler

type RpcServerPackageHandler struct{}

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{}) ([]byte, error)

type SequenceType

type SequenceType int64

SequenceType ...

type SerialID

type SerialID byte

SerialID serial ID

const (
	// S_Dubbo dubbo serial id
	S_Dubbo SerialID = 2
)

type Server

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

Server ...

func NewServer

func NewServer() *Server

NewServer ...

func (*Server) Start

func (s *Server) Start(url common.URL)

Start ...

func (*Server) Stop

func (s *Server) Stop()

Stop ...

type ServerConfig

type ServerConfig struct {
	// session
	SessionTimeout string `default:"60s" yaml:"session_timeout" json:"session_timeout,omitempty"`

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

	// grpool
	GrPoolSize  int `default:"0" yaml:"gr_pool_size" json:"gr_pool_size,omitempty"`
	QueueLen    int `default:"0" yaml:"queue_len" json:"queue_len,omitempty"`
	QueueNumber int `default:"0" yaml:"queue_number" json:"queue_number,omitempty"`

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

ServerConfig Config holds supported types by the multiconfig package

func GetDefaultServerConfig added in v1.2.0

func GetDefaultServerConfig() ServerConfig

GetDefaultServerConfig ...

func GetServerConfig

func GetServerConfig() ServerConfig

GetServerConfig ...

func (*ServerConfig) CheckValidity

func (c *ServerConfig) CheckValidity() error

CheckValidity ...

Jump to

Keyboard shortcuts

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