Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Hash ¶
Hash consistently chooses a hash bucket number in the range [0, numBuckets) for the given key. numBuckets must be >= 1.
func JumpConsistentHash ¶
JumpConsistentHash selects a server by serviceMethod and args
Types ¶
type ConsulClientSelector ¶
type ConsulClientSelector struct { ConsulAddress string Servers []*api.AgentService ServiceName string SelectMode rpcx.SelectMode HashServiceAndArgs HashServiceAndArgs Client *rpcx.Client // contains filtered or unexported fields }
ConsulClientSelector is used to select a rpc server from consul. This registry is experimental and has not been test.
func NewConsulClientSelector ¶
func NewConsulClientSelector(consulAddress string, serviceName string, sessionTimeout time.Duration, sm rpcx.SelectMode, timeout time.Duration) *ConsulClientSelector
NewConsulClientSelector creates a ConsulClientSelector
func (*ConsulClientSelector) Select ¶
func (s *ConsulClientSelector) Select(clientCodecFunc rpcx.ClientCodecFunc, options ...interface{}) (*rpc.Client, error)
Select returns a rpc client
func (*ConsulClientSelector) SetClient ¶
func (s *ConsulClientSelector) SetClient(c *rpcx.Client)
type EtcdClientSelector ¶
type EtcdClientSelector struct { EtcdServers []string KeysAPI client.KeysAPI BasePath string //should endwith serviceName Servers []string SelectMode rpcx.SelectMode HashServiceAndArgs HashServiceAndArgs Client *rpcx.Client // contains filtered or unexported fields }
EtcdClientSelector is used to select a rpc server from etcd.
func NewEtcdClientSelector ¶
func NewEtcdClientSelector(etcdServers []string, basePath 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
func (*EtcdClientSelector) SetClient ¶
func (s *EtcdClientSelector) SetClient(c *rpcx.Client)
type HashServiceAndArgs ¶
HashServiceAndArgs define a hash function
type MultiClientSelector ¶
type MultiClientSelector struct { Servers []ServerPair SelectMode rpcx.SelectMode HashServiceAndArgs HashServiceAndArgs Client *rpcx.Client // 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
func (*MultiClientSelector) SetClient ¶
func (s *MultiClientSelector) SetClient(c *rpcx.Client)
type ZooKeeperClientSelector ¶
type ZooKeeperClientSelector struct { ZKServers []string BasePath string //should endwith serviceName Servers []string SelectMode rpcx.SelectMode HashServiceAndArgs HashServiceAndArgs Client *rpcx.Client // contains filtered or unexported fields }
ZooKeeperClientSelector is used to select a rpc server from zookeeper.
func NewZooKeeperClientSelector ¶
func NewZooKeeperClientSelector(zkServers []string, basePath string, sessionTimeout time.Duration, sm rpcx.SelectMode, timeout time.Duration) *ZooKeeperClientSelector
NewZooKeeperClientSelector creates a ZooKeeperClientSelector sessionTimeout is timeout configuration for zookeeper. timeout is timeout configuration for TCP connection to RPC servers.
func (*ZooKeeperClientSelector) Select ¶
func (s *ZooKeeperClientSelector) Select(clientCodecFunc rpcx.ClientCodecFunc, options ...interface{}) (*rpc.Client, error)
Select returns a rpc client
func (*ZooKeeperClientSelector) SetClient ¶
func (s *ZooKeeperClientSelector) SetClient(c *rpcx.Client)