DLI flink在边缘流计算上的实践(三)
> 本文中我们将介绍DLI 边缘Flink的实现原理,完全基于华为云公开资料阐述,实现细节作相应屏蔽。
DLI Flink基于边缘智能平台IEF所提供的边云协同能力提供服务,总体方案如下图所示。
1. 安装边缘流应用到边缘节点
首先用户通过在边缘节点安装IEF Agent和Docker完成环境初始化,打通边缘节点与华为云的网络通信。
DLI在IEF边缘市场上线容器化Flink应用,用户选择Flink应用,通过IEF Agent将应用镜像从云端拉取到本地,完成Flink应用部署,启动Flink 相关组件。
2. 打通DLI服务端到边缘节点的网络
边缘Flink应用启动后,用户需要通过DLI控制台完成Flink作业的编辑与调试,然后下发作业到边缘节点的Flink客户端。想完成这个,我们需要先打通DLI服务端到边缘节点的网络。基于IEF提供的边云消息功能,我们可以很容易实现该功能(IEF边云消息相关资料见这里:https://support.huaweicloud.com/usermanual-ief/ief_01_0018.html)。
首先需要阐述清楚相关概念:
- 消息端点:发送或接收消息的一方,可以是设备、云服务等。
- 消息路由:消息转发的路径。
IEF提供如下默认消息端点:
- SystemEventBus:边缘节点上的MQTT,代表节点通信,可以作为源端点向云上发数据,也可以作为目的端点,接收云上消息。端点资源为边缘节点MQTT Topic。
- SystemREST:云端的REST网关接口,可以作为源端点,向边缘侧发送REST请求。端点资源为REST请求的路径。
- SysEdgedb:时序数据库边缘侧入口,只能作为源端点,向云上Systsdb目标端点发送数据。
- Systsdb:时序数据库云端入口,只能作为目标端点,向云服务Cloudtable发送数据。
除此之外,我们还需要利用到以下自定义消息端点:
- APIG:API网关服务,可以作为目的端点,接收由IEF转发的数据。端点资源为在API网关服务中创建的API地址。
IEF Agent内置了MQTT,所以实现以下两点就可以实现边云消息互通:
- 创建SystemRest到SystemEventBus的消息路由,就可以实现云端消息向边缘节点下发。
- 创建SytemEventBus到APIG的消息路由,就可以实现边缘应用向云端的消息回传。
而边缘应用需要做的,只是处理MQTT中指定topic的消息即可。
下图是个简化版的边云通信示意图。
当然,对普通用户而言,只需要在创建边缘Flink作业时指定边缘节点创建IEF消息通道即可,DLI会自动创建相关边云消息。
3. Flink作业启动和状态监控
用户在DLI Console完成作业编辑和IEF消息通道创建后,提交作业。DLI会将用户message通过IEF边云消息下发到指定边缘节点。
Flink Agent监听Flink operate topic,接收到作业启动消息后,启动作业相关依赖下载。完成后通过Flink client提交作业,即可完成作业启动。作业停止原理亦然。
作业启动后,Flink Agent定期获取作业相关状态信息,封装成固定格式后通过Flink status report topic发送给MQTT,再通过边云消息上行转发到华为云APIG。经过DLI服务端鉴权后,处理并显示到Flink作业详情页面,方便客户查看作业状态。
以上即是DLI 边缘Flink的基本原理,如果用户感兴趣,可以试用华为云的相关功能。当然,您也可以基于IEF提供的能力实现自定义的边缘应用,欢迎留言与我交流。
- 点赞
- 收藏
- 关注作者
评论(0)