Documentation
¶
Index ¶
- Variables
- func DefaultOnDelHandler(key []byte, value []byte, state *DiscoverState)
- func DefaultOnDoneHandler(key []byte, state State)
- func DefaultOnFailedHandler(key []byte, value []byte, state State, err error)
- func DefaultOnIntervalHandler(key []byte, state *RegisterState, ...)
- func DefaultOnPutHandler(key []byte, value []byte, state *DiscoverState)
- func NewMonitor()
- type ChangedHandler
- type DataContainer
- type Discover
- type DiscoverOption
- type DiscoverState
- func (h *DiscoverState) AddOnDelHandlers(handler ChangedHandler)
- func (h *DiscoverState) AddOnDoneHandler(handler DoneHandler)
- func (h *DiscoverState) AddOnFailedHandler(handler FailedHandler)
- func (h *DiscoverState) AddOnIntervalHandler(handler IntervalHandler)
- func (h *DiscoverState) AddOnPutHandler(handler ChangedHandler)
- func (d *DiscoverState) GetCurrentPath() string
- func (d *DiscoverState) Start()
- func (d *DiscoverState) Stop()
- type DiscoverStateChildren
- type DoneHandler
- type FailedHandler
- type IntervalHandler
- type Monitor
- type Register
- type RegisterOption
- type RegisterState
- func (h *RegisterState) AddOnDelHandlers(handler ChangedHandler)
- func (h *RegisterState) AddOnDoneHandler(handler DoneHandler)
- func (h *RegisterState) AddOnFailedHandler(handler FailedHandler)
- func (h *RegisterState) AddOnIntervalHandler(handler IntervalHandler)
- func (h *RegisterState) AddOnPutHandler(handler ChangedHandler)
- func (r *RegisterState) GetCurrentPath() string
- func (r *RegisterState) Keepalive()
- func (r *RegisterState) Start()
- func (r *RegisterState) Stop()
- type State
Constants ¶
This section is empty.
Variables ¶
View Source
var DiscoverExistError = errors.New("The current path already exists ")
View Source
var NotAllowMultiError = errors.New("The current service does not allow multiple instances ")
View Source
var PathError = errors.New("The path cannot be empty ")
View Source
var RegisterExistError = errors.New("The current path already exists ")
Functions ¶
func DefaultOnDelHandler ¶
func DefaultOnDelHandler(key []byte, value []byte, state *DiscoverState)
默认的删除时触发的函数
func DefaultOnFailedHandler ¶
默认的失败时触发的函数
func DefaultOnIntervalHandler ¶
func DefaultOnIntervalHandler(key []byte, state *RegisterState, KeepaliveResponse *clientv3.LeaseKeepAliveResponse)
默认的间隔时触发的函数
func DefaultOnPutHandler ¶
func DefaultOnPutHandler(key []byte, value []byte, state *DiscoverState)
默认的增加时触发的函数
func NewMonitor ¶
func NewMonitor()
Types ¶
type ChangedHandler ¶
type ChangedHandler func(key []byte, value []byte, state *DiscoverState)
当增、删时触发的函数接口
type DataContainer ¶
type DataContainer struct { ID int64 // 唯一ID HostName string // 主机名 GRPCPort int // GRPC端口 Domain string // 主机坐在的域 ServiceId int // 服务ID HttpPort int // http端口 MetaData map[string]string // 扩展的信息 }
数据容器
func (*DataContainer) GetGRPCConn ¶
func (d *DataContainer) GetGRPCConn() (*grpc.ClientConn, error)
获取grpc连接
type Discover ¶
func NewDefaultDiscover ¶
func NewDiscover ¶
func (*Discover) PrefixGet ¶
func (d *Discover) PrefixGet(prefix string) (*DiscoverState, bool)
使用前缀获取状态信息, 当被监听者为单实例时使用此函数
func (*Discover) PrefixGetChildren ¶
func (d *Discover) PrefixGetChildren(prefix string) *DiscoverStateChildren
使用前缀获取状态信息, 当被监听者为多实例时使用此函数
func (*Discover) PrefixRoundRobinChildren ¶
func (d *Discover) PrefixRoundRobinChildren(prefix string) *DiscoverState
使用前缀获取状态信息, 当被监听者为多实例时, 且期望轮询时 使用此函数
type DiscoverOption ¶
type DiscoverOption struct { Path string Prefix bool OnPutHandler ChangedHandler OnDelHandler ChangedHandler OnFailedHandler FailedHandler OnDoneHandler DoneHandler }
添加监听的参数选项
type DiscoverState ¶
type DiscoverState struct { Option *DiscoverOption // 监听参数 CurrentPath string // 当前的监听路径。 IsChild bool // 是否为子状态 Data *DataContainer // 数据 // contains filtered or unexported fields }
监听状态
func (*DiscoverState) AddOnDelHandlers ¶
func (h *DiscoverState) AddOnDelHandlers(handler ChangedHandler)
追加删除时触发的函数
func (*DiscoverState) AddOnDoneHandler ¶
func (h *DiscoverState) AddOnDoneHandler(handler DoneHandler)
追加结束时触发的函数
func (*DiscoverState) AddOnFailedHandler ¶
func (h *DiscoverState) AddOnFailedHandler(handler FailedHandler)
追加失败时触发的函数
func (*DiscoverState) AddOnIntervalHandler ¶
func (h *DiscoverState) AddOnIntervalHandler(handler IntervalHandler)
追加间隔时触发的函数
func (*DiscoverState) AddOnPutHandler ¶
func (h *DiscoverState) AddOnPutHandler(handler ChangedHandler)
追加增加时触发的函数
type DiscoverStateChildren ¶
子状态集
func (DiscoverStateChildren) All ¶
func (c DiscoverStateChildren) All() map[string]*DiscoverState
获取所有子状态
func (DiscoverStateChildren) Get ¶
func (c DiscoverStateChildren) Get(path string) *DiscoverState
获取子状态
func (DiscoverStateChildren) IndexGet ¶
func (c DiscoverStateChildren) IndexGet(i int) *DiscoverState
通过索引获取子状态
type FailedHandler ¶
当失败时触发的函数接口
type IntervalHandler ¶
type IntervalHandler func(key []byte, state *RegisterState, KeepaliveResponse *clientv3.LeaseKeepAliveResponse)
当间隔时触发的函数接口
type RegisterOption ¶
type RegisterOption struct { Path string OnFailedHandler FailedHandler OnDoneHandler DoneHandler OnIntervalHandler IntervalHandler Ttl int64 Info interface{} Multi bool }
注册参数
type RegisterState ¶
type RegisterState struct { Option *RegisterOption // 注册时所用的参数 CurrentPath string // 当前注册的路径。当允许多服务时,当前路径是 Option.Path 加上时间戳的。 // contains filtered or unexported fields }
注册状态记录
func (*RegisterState) AddOnDelHandlers ¶
func (h *RegisterState) AddOnDelHandlers(handler ChangedHandler)
追加删除时触发的函数
func (*RegisterState) AddOnDoneHandler ¶
func (h *RegisterState) AddOnDoneHandler(handler DoneHandler)
追加结束时触发的函数
func (*RegisterState) AddOnFailedHandler ¶
func (h *RegisterState) AddOnFailedHandler(handler FailedHandler)
追加失败时触发的函数
func (*RegisterState) AddOnIntervalHandler ¶
func (h *RegisterState) AddOnIntervalHandler(handler IntervalHandler)
追加间隔时触发的函数
func (*RegisterState) AddOnPutHandler ¶
func (h *RegisterState) AddOnPutHandler(handler ChangedHandler)
追加增加时触发的函数
type State ¶
type State interface { AddOnPutHandler(handler ChangedHandler) AddOnDelHandlers(handler ChangedHandler) AddOnFailedHandler(handler FailedHandler) AddOnDoneHandler(handler DoneHandler) AddOnIntervalHandler(handler IntervalHandler) Start() Stop() }
状态接口
Click to show internal directories.
Click to hide internal directories.