Documentation ¶
Index ¶
- Variables
- func GenRandomId(prefix ...string) string
- func NewInstance(id, serviceName string, Addrs map[string]string) *dm.Instance
- func NewPollsStreamPool(client pb.DiscoveryClient, initCap, maxCap int, idleTimeout time.Duration) (pool.Pool, error)
- func Polls(p pool.Pool, req *pb.PollsReq, opts ...OpPollsCallOption) (resp *pb.PollsResp, err error)
- type Client
- type OpOption
- type OpPollsCallOption
- type PollsStream
Constants ¶
This section is empty.
Variables ¶
View Source
var ( ConnectTimeout = time.Duration(5) * time.Second ReadTimeout = time.Duration(10) * time.Second WriteTimeout = time.Duration(10) * time.Second DefaultRegistryTTL = time.Duration(60) * time.Second Stdout io.Writer = os.Stdout Stderr io.Writer = os.Stderr SchemaHttp = "http" SchemaRpc = "rpc" ErrNoService = errors.New("has no service") ErrNoScheduler = errors.New("has no scheduler") ErrNoSchema = errors.New("has no schema") )
View Source
var ( ErrTypeInValid = errors.New("stream from pool is invalid") ErrSendTimeout = errors.New("stream send timeout") )
Functions ¶
func GenRandomId ¶
func NewInstance ¶
注意,id每个节点确保唯一,否则会相互覆盖,服务发现列表中会丢失节点!!!类似于gokeepr中的nodeId
func NewPollsStreamPool ¶
Types ¶
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
服务发现的client结构体
func (*Client) GetService ¶
获取服务列表信息
func (*Client) GetServiceAddr ¶
根据负载均衡策略,随机选择服务中的某个instance,返回节点addr
func (*Client) SignalDeregister ¶
发送信号进行解注册
type OpOption ¶
type OpOption func(option *option)
func WithDiscovery ¶
设置要发现的服务列表,如果不需要服务发现,不用调用该函数 subscriber为服务的订阅者,理论上subscriber是唯一的,例如live订阅了counter的服务,此时subscriber为live,serviceNames为[]string{"counter"}
type OpPollsCallOption ¶
type OpPollsCallOption func(o *pollsCallOption)
func WithPollsCallRetryTimes ¶
func WithPollsCallRetryTimes(retryTimes int) OpPollsCallOption
func WithPollsCallTimeout ¶
func WithPollsCallTimeout(timeout time.Duration) OpPollsCallOption
type PollsStream ¶
type PollsStream struct { pb.Discovery_PollsClient // contains filtered or unexported fields }
Click to show internal directories.
Click to hide internal directories.