DLI flink在边缘流计算上的实践(三)

举报
Yunz Bao 发表于 2020/12/28 17:01:25 2020/12/28
【摘要】 本文中我们将介绍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提供的能力实现自定义的边缘应用,欢迎留言与我交流。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。