「连载」边缘计算(二十五)03-05:边缘部分源码(源码分析篇)

(接上篇)

1)EdgehubConfig初始化具体如下所示。

config.InitEdgehubConfig()

config.InitEdgehubConfig()函数定义具体如下所示。

KubeEdge/edge/pkg/edgehub/config/config.go

// InitEdgehubConfig init edgehub config

func InitEdgehubConfig() {

err := getControllerConfig()

...

if edgeHubConfig.CtrConfig.Protocol == protocolWebsocket {

err = getWebSocketConfig()

...

} else if edgeHubConfig.CtrConfig.Protocol == protocolQuic {

err = getQuicConfig()

...

} else {

...

}

}

InitEdgehubConfig()函数首先通过err := getControllerConfig()获得EdgeHub Controller的配置信息,然后通过获得的配置信息中的Protocol字段来判断是哪个协议,最后根据判断结果获取相应的协议绑定的配置信息或报错。针对以上获取配置的操作,重点分析获得EdgeHub Controller的配置信息。

getControllerConfig()函数定义具体下所示。

KubeEdge/edge/pkg/edgehub/config/config.go

var edgeHubConfig EdgeHubConfig

...

func getControllerConfig() error {

protocol, err := config.CONFIG.GetValue("edgehub.controller.protocol").ToString()

...

edgeHubConfig.CtrConfig.Protocol = protocol

heartbeat, err := config.CONFIG.GetValue("edgehub.controller.heartbeat").ToInt()

...

edgeHubConfig.CtrConfig.HeartbeatPeriod = time.Duration(heartbeat) * time.Second

projectID, err := config.CONFIG.GetValue("edgehub.controller.project-id").ToString()

...

edgeHubConfig.CtrConfig.ProjectID = projectID

nodeID, err := config.CONFIG.GetValue("edgehub.controller.node-id").ToString()

...

edgeHubConfig.CtrConfig.NodeID = nodeID

return nil

}

getControllerConfig()获取edgehub.controller.*相关的配置信息并赋值给变量edgeHubConfig

到此,前面提到的EdgeHubConfig赋值也得到了解答。

2)EdgeHub Controller初始化具体如下所示。

err := ehc.initial(ctx)

ehc.initial()函数定义具体如下所示。

KubeEdge/edge/pkg/edgehub/controller.go

func (ehc *Controller) initial(ctx *context.Context) (err error) {

config.GetConfig().WSConfig.URL, err = bhconfig.CONFIG.GetValue("edgehub.websocket.url").ToString()

...

cloudHubClient, err := clients.GetClient(ehc.config.Protocol, config.GetConfig())

...

ehc.context = ctx

ehc.chClient = cloudHubClient

return nil

}

其中,第一行单独获取edgehub.websocket.url,这里感觉与“初始化EdgehubConfig”中的websocket配置信息初始化重复,在此留个疑问——

获取websocket配置信息重复。

未完待续……  

  • 21
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值