EdgeX Foundry理论篇
总体架构
核心服务层
核心数据微服务
搜集持久化设备和传感器等边缘设备数据,支持导出到云。目前,数据本地存储交互通过REST APIs,未来会支持更多协议:MQTT, AMQP等。数据导出到Export Service layer,通过ZeroMQ、MQTT。persist.data=false,数据不存核心数据,直接通过消息队列到达Export Service layer。本服务是唯一能获得设备数据的服务。
查询数据流程图
添加属性流程图
命令微服务
负责把命令从北端传到南端,不允许非法命令与设备交互。命令主要来自一下:其他微服务命令(本地边缘数据分析、规则引擎微服务)、其他应用命令(系统管理agent关闭一个设备)和外部系统命令(修改一系列设备设置文件)。命令微服务提供统一规范方式与设备通信,GET命令获取设备数据;PUT命令下发action或下发配置数据。命令微服务通过设备服务同设备交互,不直接交互设备。
查询命令流程图
发送命令流程图
元数据微服务
元数据微服务主要包括管理设备配置文件,包括设备信息、设备数据结构类型和设备命令。每个被EdgeX 管理的设备,都在元数据有关联ID,设备关联设备配置文件和设备服务。元数据微服务管理设备服务信息,其他微服务通过设备服务同设备交互。设备服务,对应一特定设备协议,比如Modbus设备服务,负责管理所有Modbus设备。本服务是唯一能获得设备、设备配置和设备服务的微服务。数据本地存储交互通过REST API,未来会支持更多协议:MQTT, AMQP等
架构图
启动设备流程图
添加设备流程图
配置注册微服务
管理EdgeX Foundry微服务配置、执行参数和状态。提供微服务启动所需配置,如端口号等。各微服务启动,注册自身信息到本服务。对于注册服务,采用ping各微服务方式来探活, 频率每10 seconds一次。配置发生变更,本服务会及时通知对应微服务,配置信息会覆盖微服务内置配置信息,可支持动态切换环境,满足微服务架构动态扩展需求。在配置注册微服务不可用时,微服务可脱离本服务,使用自身内嵌配置启动。交互方式:RESTful APIs。
配置注册服务交互图
支撑服务层
通知告警微服务
告警通知微服务负责在设备发生故障,生成告警,发生告警到目的应端目前支持e-mail 和 REST 回调。通知分两种,NORMAL和CRITICAL,CRITICAL立刻发送通知到分发协调组,NORMAL等待消息调度器统一处理。可扩展,按需起调度器处理通知作业。
架构图
左边:API提供给其他微服务和应用调用,能通过 REST, AMQP, MQTT,或者其他标准应用协议,目前支持REST。
右边:消息订阅者通过订阅RESTful,订阅特定类型通知。消息接收者,在事件发生时,可通过SMS、, e-mail, REST callback, AMQP, MQTT等。
发现告警流程图
响应告警流程图
日志微服务
通过RESTful APIs提交日志请求、查询历史日志、移除历史日志,用LOGBack做日志框架,可以通过文件或MongoDB持久化日志。
架构图
日志请求流程图
调度微服务
EdgeX 的调度服务及其轻量,只负责定时清理设备数据。默认每30分钟执行一次,调用Core Data API执行清理任务
规则引擎微服务
规则引擎提供了一种边缘事件触发机制,监控边缘设备数据。符合条件,触发行为,通过命令服务下发指令。内核引擎采用Drools,由JBoss社区提供的开源规则引擎。规则引擎启动会自动注册到输出客户端注册服务,检测设备数据对于重要敏感案例,规则引擎可以直接对接核心数据微服务,需要设置配置文件,export.client=true。通过RESTful API动态添加规则。
架构图
添加规则流程图
输出服务
客户端注册微服务
输出客户端注册微服务让客户端注册为数据接收者,按需过滤流转数据。Clients on-gateway:包括本地分析服务,事件处理器,规则引擎等。Clients off-gateway:经典企业云系统或网关聚合系统,提供历史数据和更深层次数据分析能力。通过REST API创建新请求,更新存在请求,删除请求。
架构图
分发微服务
分发微服务,基于EAI技术,管道过滤体系。通过消息队列,接收数据,过滤、传输和格式化数据,通过REST, MQTT, 0MQ分发数据到特定注册客户端。
分发流程图
系统管理服务
系统管理模块提供微服务安装、升级、启动、停止和监控功能
安全服务
支持AAA访问控制,AES256数据加密,唯一证书认证,HTTPS协议流程数据。
设备服务层
虚拟设备微服务
模拟不同协议设备,生成Events and Readings到核心数据微服务,通过H2 database存储虚拟设备资源。用户通过命令微服务下发命令到
。虚拟设备服务依赖数据微服务和元数据微服务,启动会ping核心数据和元数据微服务,超时时间600秒,未ping通,启动失败。虚拟设备服务启动初始化过程中,会在元数据微服务创建设备,设备配置,设备服务。
架构图
原理篇总体结合官网和自己理解
英文版请登入官网
https://wiki.edgexfoundry.org/display/FA/EdgeX+Foundry+Microservices+Architecture
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
淘拍-视频云剪辑,我们这样做
一、前言 首先说说视频剪辑,视频剪辑其实是一个跨终端、跨多个知识栈的横向领域。任何平台任何语言下,只要有足够的计算能力,应该都可以进行视频剪辑。也相信看完这篇文章后,你对于视频的剪辑不会再感觉陌生。 传统的桌面剪辑软件是提供一个GUI界面,给用户提供所见既所得的编辑效果反馈,并在编辑完成之后产生编辑描述数据,最后交由图形图像模块、音频处理模块以及视频编码模块去生成最终视频文件。 参考大部分开源剪辑软件实现,前半部分GUI大部分通过操作系统图形界面或跨平台如QT、SDL、SWT方式实现,这部分我们称之为“前端”。而后面涉及图形图像、音频、编码相关部分,大部分都会有一套媒体编辑内核来支撑,例如Linux下著名的MLT、GStreamer等等,这里我们称之为“编辑内核”。 云剪辑,其实是剪辑端的一种,这里GUI“前端”需要通过浏览器呈现给用户,而“编辑内核”完全可以复用传统的媒体编辑框架。只是在云编辑场景下,“编辑内核”的计算能力是多用户共用,因此需要解决好资源调度问题即可。在Zookeeper、MQ流行的今天,这些调度问题在Java工程师眼里也都不是问题了。 那么云编辑需要解决以下几个问题...
- 下一篇
阿里云新功能:EIP高精度实时互联网流量秒级监控(可能是史上最好用的实时流量监控)
大家好,很高兴向大家介绍一下高精度秒级监控 很高兴的告诉大家,阿里云弹性公网IP即日起支持高精度秒级监控了。而令人激动的是,这可能是史上最好用的实时业务流量监控功能,没有之一。 众所周知,弹性公网IP(EIP)承载了海量的互联网BGP流量,这些流量实时性要求很高,对公网带宽的质量要求也很高。如果公网带宽跑满未及时扩容,很容易出现业务流量限速丢包,进而引发客户端访问质量恶化的和用户体验的直线下降。 对于极度关注和珍视用户体验的互联网内容提供方,是十分在意互联网流量的实时监控的。如果业务流量超过预设的门限要及时扩容带宽以支撑业务的快速发展。 但令人沮丧的是,当前给业务流量监控提供的精度都是分钟级的。以分钟为精度的数据虽然可以反映业务流量的情况,但精度是有限的。互联网的业务流量在很多时候呈现较大的突发性,有可能在一分钟内流量的实时带宽
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- 2048小游戏-低调大师作品
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- Mario游戏-低调大师作品
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS7,CentOS8安装Elasticsearch6.8.6
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- CentOS6,CentOS7官方镜像安装Oracle11G
- Docker使用Oracle官方镜像安装(12C,18C,19C)