Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type IMemberManager ¶
type IMemberManager interface {
GetRemovedKeysChan(routerKey string) chan string
// 同时会注册结点(服务)
RegisteRpc(m ...interface{}) error
StartService() error
Unregister()
GetServiceXX(blocking bool)
GetMembers() []IMember
GetLocal() IMember
GetLocalCopy() IMember
//Set(key string, val interface{})
// 返回路由的IMember ,r如果没有则本地做,并广播其他已知节点 这个状态,其他节点收到要clear本地local记录
GetMember(routerKey string) IMember // 只取当前节点 只是判断取 全局的 还是 local的
GetMemberWithRemote(routerKey string) IMember // 先判断本节点,再获取远程节点,并同步, 如果都没有否则业务自行处理,新建或some
GetMemberWithTry(routerKey string, retryCount int) (wantMember IMember)
UpateLocalRoute(routerKey string, member IMember) // 更新本地路由
RemoveLocalRoute(routerKey string) error
RemoveUpdateLocalRoute(routerKey string, member IMember) error
BroadCastRoute(routerKey string, member IMember) // 发布key在哪个节点, 至于发布策略,业务自己搞 一般第一次广播就行了
BroadCastDelRoute(routerKey string) error
BroadCastDelUpdateRoute(routerKey string, member IMember) error //
// 高度集成的接口,包括了查找及update router
// 查找节点,找不到则自己处理
CallWithSync(routerKey, rpcName string, req, resp interface{}, localHandle func(found bool, req, resp interface{}) error) error
CallWithOnceSync(routerKey, rpcName string, req, resp interface{}, localHandle func(found bool, req, resp interface{}) error) error
CallWithUpdateSync(routerKey, rpcName string, req, resp interface{}, localHandle func(found bool, req, resp interface{}) error) error
CallWithDelSync(routerKey, rpcName string, req, resp interface{}, localHandle func(req, resp interface{}) error) error
// 以下这些接口 暂时没有真正的策略逻辑
// sync 随机一个节点同步?
SyncRoute(member IMember)
// 广播 异步
BroadCast(rpcname string, args interface{}, reply interface{}) error // 异步
// 广播 同步
CallAll(rpcname string, args interface{}, reply interface{}) ([]interface{}, error) // 同步,有一个“正确”响应即可
// debug router
GetRouter() *buntdb.DB
}
路由信息 维护一颗B+数的映射,key->IMember 启动时从一个节点同步过来
type ISynMessage ¶ added in v0.1.3
req, resp 必须 实现的接口
Click to show internal directories.
Click to hide internal directories.