在看kubeedge的源码过程中发现对beehive的理解不够深刻,所以又回来看了一下beehive的官方文档
Beehive是基于go-channel的消息传递框架,用于KubeEdge模块之间的通信。如果已注册其他beehive模块的名称或该模块组的名称已知,则在蜂箱中注册的模块可以与其他蜂箱模块进行通信。Beehive支持以下模块操作:
Beehive支持以下消息操作:
消息分为三部分
1.header:
2.Route:
3.content:消息的内容(interface{})
coreContext.Addmodule(“edged”)
coreContext.AddModuleGroup(“edged”,”edged”)
coreContext.CleanUp(“edged”)
coreContext.Send(“edged”,message)
coreContext.SendToGroup(“edged”,message) message will be sent to all modules in edged group.
msg, err := coreContext.Receive("edged")
response, err := coreContext.SendSync("edged",message,60*time.Second)
err := coreContext.SendToGroupSync("edged",message,60*time.Second)
coreContext.SendResp(respMessage)