rpc

package
v0.1.0-beta-3 Latest Latest
Warning

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

Go to latest
Published: Jul 12, 2021 License: Apache-2.0 Imports: 26 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ExecuteWithRetry

func ExecuteWithRetry(f func() (interface{}, error), initBackoff float64, maxBackoff float64, maxAttempts int, cause error) (interface{}, error)

func GetTCPServerPort

func GetTCPServerPort() int

func Listen

func Listen(netAddr dfnet.NetAddr) (net.Listener, error)

Listen wraps net.Listen with dfnet.NetAddr Example:

Listen(dfnet.NetAddr{Type: dfnet.UNIX, Addr: "/var/run/df.sock"})
Listen(dfnet.NetAddr{Type: dfnet.TCP, Addr: ":12345"})

func ListenWithPortRange

func ListenWithPortRange(listen string, startPort, endPort int) (net.Listener, int, error)

ListenWithPortRange tries to listen a port between startPort and endPort, return net.Listener and listen port Example:

ListenWithPortRange("0.0.0.0", 12345, 23456)
ListenWithPortRange("192.168.0.1", 12345, 23456)
ListenWithPortRange("192.168.0.1", 0, 0) // random port

func SetRegister

func SetRegister(f RegisterFunc)

func StartTCPServer

func StartTCPServer(incrementPort int, upLimit int, impl interface{}, opts ...grpc.ServerOption) error

for client, start tcp first and then start unix on server process

func StartUnixServer

func StartUnixServer(sockPath string, impl interface{}, opts ...grpc.ServerOption) error

func StopServer

func StopServer()

Types

type Closer

type Closer interface {
	Close() error
}

type ConnOption

type ConnOption interface {
	// contains filtered or unexported methods
}

func WithConnExpireTime

func WithConnExpireTime(duration time.Duration) ConnOption

func WithDialOption

func WithDialOption(opts []grpc.DialOption) ConnOption

func WithDialTimeout

func WithDialTimeout(dialTimeout time.Duration) ConnOption

func WithGcConnInterval

func WithGcConnInterval(gcConnInterval time.Duration) ConnOption

func WithGcConnTimeout

func WithGcConnTimeout(gcConnTimeout time.Duration) ConnOption

type ConnStatus

type ConnStatus string

todo Perfect state

type Connection

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

func NewConnection

func NewConnection(ctx context.Context, name string, adders []dfnet.NetAddr, connOpts []ConnOption) *Connection

func (*Connection) AddServerNodes

func (conn *Connection) AddServerNodes(addrs []dfnet.NetAddr) error

func (*Connection) Close

func (conn *Connection) Close() error

func (*Connection) CorrectKey2NodeRelation

func (conn *Connection) CorrectKey2NodeRelation(tmpHashKey, realHashKey string)

func (*Connection) GetClientConn

func (conn *Connection) GetClientConn(hashKey string, stick bool) (*grpc.ClientConn, error)

GetClientConn get conn or bind hashKey to candidate node, don't do the migrate action stick whether hash key need already associated with specify node

func (*Connection) GetClientConnByTarget

func (conn *Connection) GetClientConnByTarget(node string) (*grpc.ClientConn, error)

func (*Connection) GetServerNode

func (conn *Connection) GetServerNode(hashKey string) (string, bool)

GetServerNode

func (*Connection) TryMigrate

func (conn *Connection) TryMigrate(key string, cause error, exclusiveNodes []string) (preNode string, err error)

TryMigrate migrate key to another hash node other than exclusiveNodes preNode node before the migration

func (*Connection) UpdateAccessNodeMapByHashKey

func (conn *Connection) UpdateAccessNodeMapByHashKey(key string)

func (*Connection) UpdateAccessNodeMapByServerNode

func (conn *Connection) UpdateAccessNodeMapByServerNode(serverNode string)

func (*Connection) UpdateState

func (conn *Connection) UpdateState(adders []dfnet.NetAddr)

type RegisterFunc

type RegisterFunc func(*grpc.Server, interface{})

type RetryMeta

type RetryMeta struct {
	StreamTimes int     // times of replacing stream on the current client
	MaxAttempts int     // limit times for execute
	InitBackoff float64 // second
	MaxBackOff  float64 // second
}

type Server

type Server interface {
	Serve(net.Listener) error
	Stop()
	GracefulStop()
}

func NewServer

func NewServer(impl interface{}, opts ...grpc.ServerOption) Server

NewServer returns a Server with impl Example:

s := NewServer(impl, ...)
s.Serve(listener)

Directories

Path Synopsis
examples

Jump to

Keyboard shortcuts

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