Documentation ¶
Index ¶
- func ExecuteWithRetry(f func() (interface{}, error), initBackoff float64, maxBackoff float64, ...) (interface{}, error)
- func GetTCPServerPort() int
- func Listen(netAddr dfnet.NetAddr) (net.Listener, error)
- func ListenWithPortRange(listen string, startPort, endPort int) (net.Listener, int, error)
- func SetRegister(f RegisterFunc)
- func StartTCPServer(incrementPort int, upLimit int, impl interface{}, opts ...grpc.ServerOption) error
- func StartUnixServer(sockPath string, impl interface{}, opts ...grpc.ServerOption) error
- func StopServer()
- type Closer
- type ConnOption
- func WithConnExpireTime(duration time.Duration) ConnOption
- func WithDialOption(opts []grpc.DialOption) ConnOption
- func WithDialTimeout(dialTimeout time.Duration) ConnOption
- func WithGcConnInterval(gcConnInterval time.Duration) ConnOption
- func WithGcConnTimeout(gcConnTimeout time.Duration) ConnOption
- type ConnStatus
- type Connection
- func (conn *Connection) AddServerNodes(addrs []dfnet.NetAddr) error
- func (conn *Connection) Close() error
- func (conn *Connection) CorrectKey2NodeRelation(tmpHashKey, realHashKey string)
- func (conn *Connection) GetClientConn(hashKey string, stick bool) (clientConn *grpc.ClientConn, err error)
- func (conn *Connection) GetClientConnByTarget(node string) (*grpc.ClientConn, error)
- func (conn *Connection) GetServerNode(hashKey string) (string, bool)
- func (conn *Connection) TryMigrate(key string, cause error, exclusiveNodes []string) (preNode string, err error)
- func (conn *Connection) UpdateAccessNodeMapByHashKey(key string)
- func (conn *Connection) UpdateAccessNodeMapByServerNode(serverNode string)
- func (conn *Connection) UpdateState(addrs []dfnet.NetAddr)
- type RegisterFunc
- type RetryMeta
- type Server
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ExecuteWithRetry ¶
func GetTCPServerPort ¶
func GetTCPServerPort() int
func Listen ¶
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 ¶
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 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 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 RegisterFunc ¶
Click to show internal directories.
Click to hide internal directories.