-
Notifications
You must be signed in to change notification settings - Fork 2
node
liangmanlin edited this page Apr 14, 2021
·
2 revisions
有时候你可能在构建一个大型集群系统,你的节点可能不止一个,这个时候你希望节点间可以无缝交互,并且就好像在一个节点里面一样。
这里推荐你使用 node 库,该库实现了类似erlang/OTP
一样的多节点模式。
你只需要在需要的时候,启动一下node服务即可。由于go无法像erlang一样从二进制中直接获得对象,所以夸节点传输这里是选择gootp/gate/pb作为打包协议。
-
Start(nodeName string, cookie string, defs []interface{})
启动多节点支持,其中
defs
是一组需要跨节点传输的数据结构,例如[]interface}{&Succ{}}
,nodeName 需要符合这个规则:[email protected]
-
ConnectNode(destNode string) bool
链接目标节点,成功返回true
-
GetCookie() string
获取当前节点cookie
-
Monitor(nodeName string,pid *kernel.Pid)
有时候你需要关心节点是否断开链接了,你可以使用这个api,当节点状态发生变化后,目标进程会收到cast消息:
*NodeOP
-
DeMonitor(nodeName string,pid *kernel.Pid)
取消监控
-
RpcRegister(fun string,function RpcFunc)
注册一个函数到rpc服务
-
RpcCall(node interface{}, fun string, argStruct interface{}) (succ bool, result interface{})
远程调用注册的函数,即使是当前节点,也可以返回。