「连载」边缘计算(三十二)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件事展开剖析。

「 未完待续...... 」

相关推荐
微帧Visionular21 分钟前
AI视频反复抽卡太贵,哪些问题可以用后处理修复?
人工智能·音视频
X54先生(人文科技)23 分钟前
社会嵌入式终身学习机器与修复时代-ELR架构和技术演化探讨
人工智能·深度学习·学习·架构·开源协议
Elcker34 分钟前
YnuoAgent(依诺):一个 npm 包,跑起属于自己的 AI 研发平台
前端·人工智能·npm
2601_965619691 小时前
让开源项目「会说话」:AI自动生成语音讲解+演示
人工智能·开源
residual_fan1 小时前
船用柴油机动态机动工况故障诊断:控制感知仿射网络(CAAN)的技术实现
人工智能·算法·数据挖掘·数据分析
珠海西格电力1 小时前
零碳园区管理系统的性能评估体系的行业标准
大数据·网络·人工智能·物联网·机器学习·架构·能源
wangruofeng1 小时前
黑色十月:AI 找到的漏洞,两小时数十万次利用
人工智能·安全·php
二川bro1 小时前
1美金撬动完整开源项目,Gemini+DeepSeek双AI组队写软件
人工智能
一线数智2 小时前
朱鹰:人的判断力,比算力更重要
大数据·人工智能
IT_陈寒2 小时前
Java性能优化完全指南
前端·人工智能·后端