1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- package mhayaFacade
- import (
- "time"
- cproto "github.com/mhaya/net/proto"
- )
- type (
- // IDiscovery 发现服务接口
- IDiscovery interface {
- Load(app IApplication)
- Name() string // 发现服务名称
- Map() map[string]IMember // 获取成员列表
- ListByType(nodeType string, filterNodeId ...string) []IMember // 根据节点类型获取列表
- Random(nodeType string) (IMember, bool) // 根据节点类型随机一个
- GetType(nodeId string) (nodeType string, err error) // 根据节点id获取类型
- GetMember(nodeId string) (member IMember, found bool) // 获取成员
- AddMember(member IMember) // 添加成员
- RemoveMember(nodeId string) // 移除成员
- OnAddMember(listener MemberListener) // 添加成员监听函数
- OnRemoveMember(listener MemberListener) // 移除成员监听函数
- Stop()
- }
- IMember interface {
- GetNodeId() string
- GetNodeType() string
- GetAddress() string
- GetSettings() map[string]string
- }
- MemberListener func(member IMember) // MemberListener 成员增、删监听函数
- )
- type (
- ICluster interface {
- Init() // 初始化
- PublishLocal(nodeId string, packet *cproto.ClusterPacket) error // 发布本地消息
- PublishRemote(nodeId string, packet *cproto.ClusterPacket) error // 发布远程消息
- RequestRemote(nodeId string, packet *cproto.ClusterPacket, timeout ...time.Duration) cproto.Response // 请求远程消息
- Stop() // 停止
- }
- )
|