clientselector

package
v0.0.0-...-12bc8e4 Latest Latest
Warning

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

Go to latest
Published: May 27, 2016 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Hash

func Hash(key uint64, buckets int32) int32

Hash consistently chooses a hash bucket number in the range [0, numBuckets) for the given key. numBuckets must be >= 1.

func HashString

func HashString(s string) uint64

HashString get a hash value of a string

func JumpConsistentHash

func JumpConsistentHash(len int, options ...interface{}) int

JumpConsistentHash selects a server by serviceMethod and args

Types

type EtcdClientSelector

type EtcdClientSelector struct {
	EtcdServers []string
	KeysAPI     client.KeysAPI

	BasePath   string //should endwith serviceName
	Servers    []string
	SelectMode rpcx.SelectMode

	HashServiceAndArgs HashServiceAndArgs
	// contains filtered or unexported fields
}

EtcdClientSelector is used to select a rpc server from etcd.

func NewEtcdClientSelector

func NewEtcdClientSelector(etcdServers []string, sessionTimeout time.Duration, sm rpcx.SelectMode, timeout time.Duration) *EtcdClientSelector

NewEtcdClientSelector creates a EtcdClientSelector

func (*EtcdClientSelector) Select

func (s *EtcdClientSelector) Select(clientCodecFunc rpcx.ClientCodecFunc, options ...interface{}) (*rpc.Client, error)

Select returns a rpc client

type HashServiceAndArgs

type HashServiceAndArgs func(len int, options ...interface{}) int

HashServiceAndArgs define a hash function

type MultiClientSelector

type MultiClientSelector struct {
	Servers    []ServerPair
	SelectMode rpcx.SelectMode

	HashServiceAndArgs HashServiceAndArgs
	// contains filtered or unexported fields
}

MultiClientSelector is used to select a direct rpc server from a list.

func NewMultiClientSelector

func NewMultiClientSelector(servers []ServerPair, sm rpcx.SelectMode, timeout time.Duration) *MultiClientSelector

NewMultiClientSelector creates a MultiClientSelector

func (*MultiClientSelector) Select

func (s *MultiClientSelector) Select(clientCodecFunc rpcx.ClientCodecFunc, options ...interface{}) (*rpc.Client, error)

Select returns a rpc client

type ServerPair

type ServerPair struct {
	Network, Address string
}

ServerPair is

type ZooKeeperClientSelector

type ZooKeeperClientSelector struct {
	ZKServers []string

	BasePath   string //should endwith serviceName
	Servers    []string
	SelectMode rpcx.SelectMode

	HashServiceAndArgs HashServiceAndArgs
	// contains filtered or unexported fields
}

ZooKeeperClientSelector is used to select a rpc server from zookeeper.

func NewZooKeeperClientSelector

func NewZooKeeperClientSelector(zkServers []string, sessionTimeout time.Duration, sm rpcx.SelectMode, timeout time.Duration) *ZooKeeperClientSelector

NewZooKeeperClientSelector creates a ZooKeeperClientSelector

func (*ZooKeeperClientSelector) Select

func (s *ZooKeeperClientSelector) Select(clientCodecFunc rpcx.ClientCodecFunc, options ...interface{}) (*rpc.Client, error)

Select returns a rpc client

Jump to

Keyboard shortcuts

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