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

(接上篇)

EdgeCore edgemesh

前面对EdgeCore组件的edged、devicetwin、edgehub、eventbus、metamanager功能模块进行了分析,本节对EdgeCore组件的另一个功能模块edgemesh进行剖析。目前,KubeEdge官网没有edgemesh相关介绍,根据华为近期的边缘计算视频分享课程获得edgemsh的相关信息。edgemesh作为EdgeCore中节点级别的网络解决方案,主要实现了节点内的流量代理、节点间的流量代理和节点内的DNS解析3块功能。本节剖析这三块功能的具体实现,包括edgemesh Struct组成及注册、edgemesh业务逻辑剖析。

edgemesh Struct组成及注册

edgemesh模块的注册函数具体如下所示。

|-------------------------------------------------------------------------------|
| KubeEdge/edgemesh/pkg/module.go |
| // Register register edgemesh func Register() { core.Register(&EdgeMesh{}) } |

注册函数只干了一件事,就是将实例化的edgemesh struct加入到一个全局map中。EdgeMesh struct的定义具体如下所示。

|-------------------------------------------------------------------------------------------------|
| KubeEdge/edgemesh/pkg/module.go |
| //EdgeMesh defines EdgeMesh object structure type EdgeMesh struct { context *context.Context } |

EdgeMesh struct的定义比较简单,只有context一个属性。该属性用来与EdgeCore中的其他模块进行通信。

edgemesh 业务逻辑剖析

edgemesh模块的启动函数具体如下所示。

|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| KubeEdge/edgemesh/pkg/module.go |
| //Start sets context and starts the controller func (em *EdgeMesh) Start(c *context.Context) { em.context = c proxy.Init() go server.Start() // we need watch message to update the cache of instances for { if msg, ok := em.context.Receive(constant.ModuleNameEdgeMesh); ok == nil { proxy.MsgProcess(msg) klog.Infof("get message: %v", msg) continue } } } |

启动函数Start()做了如下4件事。

1)接收并保存通信管道;

2)初始化porxy;

3)启动服务;

4)通过一个for循环接收通信管道中关于edgemesh的信息并处理。

下面对第第2和第4件事展开剖析。

未完待续......

相关推荐
搜yyzk66817 分钟前
智能电话机器人:1天千通电话,高效低成本
人工智能
fthux4 小时前
装闭 RenoPit 源码解析(09):AnalysisEngine装修闭坑分析主流程
人工智能·ai·开源·github·open source·renopit
敏编程4 小时前
开源项目 NextBand:探索融合健康传感、语音交互与 AI Agent 的下一代可穿戴设备
人工智能
ovO5 小时前
我按下“发送”之后:DeepSeek Harness 如何把一次请求变成 1,177 个增量片段
人工智能·开源·deepseek
昨日之日20065 小时前
LTX-2.5:更清晰、更可控、同步音画、多镜头连贯的AI视频神器
人工智能·音视频
九硕智慧建筑一体化厂家5 小时前
数字化管控落地,直流照明构筑安全照明体系
运维·人工智能·笔记·安全·智慧城市
江厌015 小时前
本地部署DeepSeek显卡怎么选?我把显存计算公式和实测记录写下来了
人工智能·百度·联想工作站·代理商推荐·渠道对比·工作站
小席是个热心肠5 小时前
AI相关的自我学习
java·人工智能·学习
FII工业富联科技服务5 小时前
工业AI自治的演进趋势:从内容生成到Agent驱动的工厂运营范式转变
人工智能
云和数据.ChenGuang6 小时前
fastapi的参数剖析
人工智能·深度学习·机器学习·语言模型·状态模式·fastapi