rpc

package
v2.0.2-alpha.4 Latest Latest
Warning

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

Go to latest
Published: Dec 13, 2021 License: Apache-2.0 Imports: 29 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

Functions

func ExecuteWithRetry

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

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

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, addrs []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) (clientConn *grpc.ClientConn, err 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(addrs []dfnet.NetAddr)

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
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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