CN115102986B - 一种边缘环境下物联网数据分发、存储方法及系统 - Google Patents
一种边缘环境下物联网数据分发、存储方法及系统 Download PDFInfo
- Publication number
- CN115102986B CN115102986B CN202210677109.3A CN202210677109A CN115102986B CN 115102986 B CN115102986 B CN 115102986B CN 202210677109 A CN202210677109 A CN 202210677109A CN 115102986 B CN115102986 B CN 115102986B
- Authority
- CN
- China
- Prior art keywords
- edge
- node
- data
- internet
- things
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 31
- 238000007781 pre-processing Methods 0.000 claims description 37
- 238000012544 monitoring process Methods 0.000 claims description 35
- 238000004891 communication Methods 0.000 claims description 24
- 238000012545 processing Methods 0.000 claims description 17
- 230000006870 function Effects 0.000 claims description 8
- 238000001514 detection method Methods 0.000 claims description 7
- 238000009792 diffusion process Methods 0.000 claims description 3
- 230000001360 synchronised effect Effects 0.000 abstract description 7
- 238000004364 calculation method Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 230000004044 response Effects 0.000 description 5
- 238000012935 Averaging Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 4
- 238000013500 data storage Methods 0.000 description 4
- 239000010410 layer Substances 0.000 description 4
- 238000005070 sampling Methods 0.000 description 4
- 238000010276 construction Methods 0.000 description 3
- 239000000523 sample Substances 0.000 description 3
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000002346 layers by function Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- LMOINURANNBYCM-UHFFFAOYSA-N metaproterenol Chemical compound CC(C)NCC(O)C1=CC(O)=CC(O)=C1 LMOINURANNBYCM-UHFFFAOYSA-N 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000005057 refrigeration Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0823—Errors, e.g. transmission errors
- H04L43/0829—Packet loss
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0852—Delays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0852—Delays
- H04L43/087—Jitter
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/12—Network monitoring probes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Abstract
本发明涉及一种边缘环境下物联网数据分发、存储方法及系统。该方法包括在边缘环境中部署多个边缘小型主机,将边缘小型主机作为边缘节点,并随机选择一个边缘节点为目标节点;边缘客户端将物联网数据发送至网络连接最佳的边缘节点中,并将对应的边缘节点作为代理节点;根据边缘节点之间的网络连接状态,确定代理节点与目标节点之间的最短分发路径;根据最短分发路径,将物联网数据发送至目标节点;当目标节点与云端节点网络连接畅通时,将物联网数据同步到云端节点中,实现云端存储。本发明能够在网络故障频发的情况下,为边缘环境中物联网设备提供可靠的数据分发和存储服务。
Description
技术领域
本发明涉及边缘环境中数据分发和存储领域,特别是涉及一种边缘环境下物联网数据分发、存储方法及系统。
背景技术
在城市应用场景中,物联网设备靠近通信基站或与通信光缆直连,数据无需跨越地域限制,请求响应的及时性和可靠性相对能得到保证。而在远离城市的边缘环境,如山区、沙漠、海洋、极地,这里地域广袤,通信光缆无法完全覆盖,无线网络连接带宽低、延迟高且不稳定。大量物联网设备直接接入后方云计算中心,将对本身不够稳定的网络层产生了巨大的压力。现有的集中式的云计算处理架构已经无法满足这类环境下数据采集、分发、存储需求。
在一些特殊的应用场景中,如自然灾害救援、军事对抗任务,以上问题变得更加突出,这类场景对数据处理实时性、网络带宽利用率、系统稳定性有着更加苛刻的要求。随着我国信息化部队建设的不断深入,军事物联网设备如无人机、个人穿戴设备、车载通信系统、手提电脑逐渐普及,这些设备将产生大量数据,能否及时、准确利用这些数据将直接影响战场决策的好坏。战场环境下,网络带宽代价昂贵,部队的快速机动,又会造成网络连接频繁抖动,如果设备直接与后方云端数据中心进行交互,将对原本脆弱的网络层造成更大负担。同时在战场环境下,提供数据分发、存储服务的主机设备可能面临断网、断电、甚至遭受攻击等极端情况,这对平台的可用性、稳定性提出了很高的要求,需要平台在部分节点失效的情况下,仍然能保证主体功能的可用性。
基于以上原因,亟需提供一种边缘环境下物联网数据分发、存储方法或系统,在网络故障频发的情况下,为边缘环境中物联网设备提供可靠的数据分发和存储服务。
发明内容
本发明的目的是提供一种边缘环境下物联网数据分发、存储方法及系统,能够在网络故障频发的情况下,为边缘环境中物联网设备提供可靠的数据分发和存储服务。
为实现上述目的,本发明提供了如下方案:
一种边缘环境下物联网数据分发、存储方法,包括:
在边缘环境中部署多个边缘小型主机,将边缘小型主机作为边缘节点,并随机选择一个边缘节点为目标节点;
边缘客户端将物联网数据发送至网络连接最佳的边缘节点中,并将对应的边缘节点作为代理节点;
根据边缘节点之间的网络连接状态,确定代理节点与目标节点之间的最短分发路径;
根据最短分发路径,将物联网数据发送至目标节点;
当目标节点与云端节点网络连接畅通时,将物联网数据同步到云端节点中,实现云端存储。
可选地,所述在边缘环境中部署多个边缘小型主机,将边缘小型主机作为边缘节点,并随机选择一个边缘节点为目标节点,具体包括:
在每个边缘节点上部署Flink平台;Flink平台用于对接收的物联网数据进行预处理。
可选地,所述根据边缘节点之间的网络连接状态,确定代理节点与目标节点之间的最短分发路径,具体包括:
网络监控每隔30s运行系统命令ping,各边缘节点发送多个icmp探测包,获取边缘节点之间的网络连接信息;网络连接信息包括:平均网络延时、丢包率和网络抖动;
将网络连接信息发送至MQTT广播主题,扩散至所有的边缘节点;
根据网络连接信息,采用Dijkstra算法确定代理节点与目标节点之间的最短分发路径。
可选地,所述边缘客户端采用MQTT轻量级通信通信协议与边缘节点进行通信。
一种边缘环境下物联网数据分发、存储系统,应用于所述的一种边缘环境下物联网数据分发、存储方法,所述系统包括:
边缘节点确定模块,用于在边缘环境中部署多个边缘小型主机,将边缘小型主机作为边缘节点,并随机选择一个边缘节点为目标节点;
代理节点确定模块,用于边缘客户端将物联网数据发送至网络连接最佳的边缘节点中,并将对应的边缘节点作为代理节点;
最短分发路径确定模块,用于根据边缘节点之间的网络连接状态,确定代理节点与目标节点之间的最短分发路径;
物联网数据发送模块,用于根据最短分发路径,将物联网数据发送至目标节点;
云端存储模块,用于当目标节点与云端节点网络连接畅通时,将物联网数据同步到云端节点中,实现云端存储。
可选地,所述边缘节点确定模块具体包括:
数据预处理单元,用于在每个边缘节点上部署Flink平台;Flink平台用于对接收的物联网数据进行预处理。
可选地,所述最短分发路径确定模块具体包括:
网络连接信息确定单元,用于网络监控每隔30s运行系统命令ping,各边缘节点发送多个icmp探测包,获取边缘节点之间的网络连接信息;网络连接信息包括:平均网络延时、丢包率和网络抖动;
信息扩散单元,用于将网络连接信息发送至MQTT广播主题,扩散至所有的边缘节点;
最短分发路径确定单元,用于根据网络连接信息,采用Dijkstra算法确定代理节点与目标节点之间的最短分发路径。
一种边缘环境下物联网数据分发、存储系统,应用于所述的一种边缘环境下物联网数据分发、存储方法,所述系统包括:通信模块、数据分发模块、监控模块、边缘存储模块以及数据预处理模块;
通信模块用于使用MQTT和Gossip提供数据的单播和广播功能;
数据分发模块用于定时从MQTT广播主题接收网络连接信息;
监控模块用于对边缘节点的运行状态和边缘节点之间的网络连接状态进行监控;
边缘存储模块用于进行物联网数据的存储;
数据预处理模块用于采用Flink流式数据处理平台对物联网数据进行预处理。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
本发明所提供的一种边缘环境下物联网数据分发、存储方法及系统,通过边缘节点的设置,将边缘客户端的物联网数据进行分发以及存储,并当目标节点与云端节点网络连接畅通时,将物联网数据同步到云端节点中,实现云端存储。进而在网络故障频发的情况下,为边缘环境中物联网设备提供可靠的数据分发和存储服务。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明所提供的一种边缘环境下物联网数据分发、存储方法流程示意图;
图2为整体框架图;
图3为边缘环境下物联网数据分发、存储流程图;
图4为通信模块消息广播设计图;
图5为Gossip集群构建、信息维护时序图;
图6为监控模块架构设计图;
图7为数据分发模块示意图;
图8为边缘节点数据读写示意图;
图9为一致性哈希算法,数据确定存储节点示意图;
图10为一致性哈希算法,数据确定存储节点示意图;
图11为数据预处理模块示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的目的是提供一种边缘环境下物联网数据分发、存储方法及系统,能够在网络故障频发的情况下,为边缘环境中物联网设备提供可靠的数据分发和存储服务。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
图1为本发明所提供的一种边缘环境下物联网数据分发、存储方法流程示意图,如图1所示,本发明所提供的一种边缘环境下物联网数据分发、存储方法,包括:
S101,在边缘环境中部署多个边缘小型主机,将边缘小型主机作为边缘节点,并随机选择一个边缘节点为目标节点;所述边缘客户端采用 MQTT轻量级通信通信协议与边缘节点进行通信。
边缘客户端包含物联网数据源(如传感器,个人穿戴设备)、物联网数据访问端。这类设备的特点是便携轻量;自身的计算能力弱;采用电池供电,续航能力有限,大多使用无线网络与边缘节点连接,自身所处地理位置不断变动,与平台的网络连接带宽低,且稳定性无法得到保证;由于边缘环境地域广袤,只能连接到部分边缘节点。边缘客户端是数据的生产者和消费者。
边缘小型主机自身计算资源、网络带宽相对受限,但是距离边缘客户端近,部署灵活。边缘节点作为边缘客户端和云端的缓冲,可以及时响应边缘客户端的请求。节点有一定的计算能力,但单个节点不能完成所有数据的分发、存储需求。其电力供应相对充裕,使用临时架设的大功率天线或者利用当地通信光纤接入网络,边缘数据节点之间网络连接相对稳定,但其地理位置不固定,自身会发生移动,且所处环境条件恶劣,有一定概率出现断电、断网,甚至被损毁的情况。
将边缘节点组成集群,在各类条件受限的边缘环境中,为用户提供数据分发、存储服务。
S101具体包括:
在每个边缘节点上部署Flink平台;Flink平台用于对接收的物联网数据进行预处理。
S102,边缘客户端将物联网数据发送至网络连接最佳的边缘节点中,并将对应的边缘节点作为代理节点。
S103,根据边缘节点之间的网络连接状态,确定代理节点与目标节点之间的最短分发路径。
S103具体包括:
网络监控每隔30s运行系统命令ping,各边缘节点发送多个icmp探测包,获取边缘节点之间的网络连接信息;网络连接信息包括:平均网络延时、丢包率和网络抖动。
将网络连接信息发送至MQTT广播主题,扩散至所有的边缘节点。
根据网络连接信息,采用Dijkstra算法确定代理节点与目标节点之间的最短分发路径。
S104,根据最短分发路径,将物联网数据发送至目标节点。
S105,当目标节点与云端节点网络连接畅通时,将物联网数据同步到云端节点中,实现云端存储。
云端节点为云端大型主机,云端节点位于城市数据中心,与边缘客户端地理距离遥远,且网络连接不够畅通,无法及时响应边缘客户端的请求,但是各云端节点之间网络连接稳定,带宽充裕,制冷、供电都能得到有效保证,且有自身拥有强大的算力,可作为数据存储的最终保证,并如表1所示。
表1
边缘客户端 | 边端节点 | 云端节点 | |
计算能力 | 弱算力 | 有一定算力 | 算力强大 |
网络状态 | 弱网络 | 相对稳定 | 稳定、高带宽 |
电力供应 | 缺乏 | 相对充裕 | 充裕 |
位置分布 | 广袤边缘环境 | 边缘临时站点 | 城市数据中心 |
响应速度 | ---- | 响应及时 | 响应缓慢 |
如图2所示,一种边缘环境下物联网数据分发、存储系统,应用于所述的一种边缘环境下物联网数据分发、存储方法,所述系统包括:通信模块、数据分发模块、监控模块、边缘存储模块以及数据预处理模块。
通信模块用于使用MQTT和Gossip提供数据的单播和广播功能。
数据分发模块用于定时从MQTT广播主题接收网络连接信息。
监控模块用于对边缘节点的运行状态和边缘节点之间的网络连接状态进行监控。
边缘存储模块用于进行物联网数据的存储。
数据预处理模块用于采用Flink流式数据处理平台对物联网数据进行预处理。
其中,一种边缘环境下物联网数据分发、存储系统对应的平台主要分为边缘子系统和云端子系统,通信模块使用Gossip,对MQTT轻量级通信协进行扩展,实现了消息的单播和广播,在对网络带宽高效利用的同时,有着高可用性。通信模块少量使用Thrift RPC调用,用于请求、响应式方法调用。数据分发模块实现了集群内大规模数据点对点传输,各节点协同转发,以提升数据传输功能的可用性。监控模块基于通信模块,对 Prometheus采集数据进行了去中心化改造,实现网络、主机指标的监控。边缘存储模块使用一致性哈希算法(算法具体介绍见图9),协同多个节点上的存储引擎,实现了数据的容灾备份和负载均衡。数据预处理模块,使用单节点版Flink流式处理框架,实现了对流数据的简单处理,包括求和、求平均、求最大、求最小和采样,同时暴露接口,支持用户提交自定义的处理任务。
功能层主要从用户视角出发,为用户提供数据采集、数据订阅、数据预处理、边缘存储和云端同步功能。
整体流程如图3所示:物联网数据源将数据发布到边缘节点,完成数据的采集。经过预处理后,通过集群进行分发,转发到目标节点,可以由客户端实时消费,也可以存储在边缘节点,边缘客户端对数据可以对存储的数据进行读取。在边端与云端网络连接良好的情况下,可以将数据上传至云端最后备份。
边缘物联网设备分布在广袤的地域,网络连接弱。平台采用去中心化的架构方案,暴露统一的MQTT接收接口,使得各类物联网设备不受特定节点的限制,完成数据的上传。同时考虑到边缘节点和物联网设备之间的弱网络连接,采用MQTT轻量级通信通信协议,提升网络连接质量的同时,降低对物联网设备对电力、计算能力的消耗。数据预处理:平台利用边端有限的计算资源,提供简单的数据处理服务,将简单的计算任务下沉到边缘节点,实现数据的实时处理和消费,避免大规模原始数据在边端和云端之间传输。数据分发:数据预处理模块对数据进行预处理之后,将数据发布到数据分发模块中,数据分发模根据网络连接状态,为数据规划最短路径,协同多个节点,将数据分发至目标节点。数据存储:数据达到目标节点之后,边缘节点利用自身的存储空间,在与中心云端断开的情况下,独立为边缘客户端提供存储和访问服务。考虑到单一节点数据存储能力有限,多节点需要均衡负载,提升整个平台吞吐量。云端同步:边缘环境中,节点的计算、存储能力有限。随着时间的增长,边缘节点有限的存储空间将无法容纳不断累积的数据,在边缘节点和云端网络连接畅通是,数据将同步至云端,实现最后的备份。
通信模块是边缘子系统的基础,所有模块基于通信模块运行,通信模块使用MQTT和Gossip(系统详细设计见图4)提供数据的单播和广播功能。在每个边缘节点上安装mosquitto server(Eclipse mosquitto是一款实现了MQTT 5.0、3.1.1、3.1协议的消息代理软件),用于边缘节点和物联网客户端、边缘节点之间单播。Gossip协议也叫Epidemic协议(流行病协议),集群构建完毕后,数据发布时,每个节点都随机地与其他节点通信,经过一番杂乱无章地通信,只要集群中整个网络保持联通,数据将实现最终一致性。在MQTT基础上封装Gossip协议,如图4所示, Gossip协议监听mosquitto 1883端口,订阅广播主题broadcast-topic的消息,一旦接收到消息,Gossip线程在边缘集群中随机选取几个节点,把消息发往这些节点上的broker,同时拉取这些节点上的最新消息,实现信息的同步。GossipGossip集群构建、信息维护时序图5介绍。
集群首先要启动seeds节点,再启动普通节点。节点启动之后, Gossip线程程获取seeds节点配置,向任意一个活着的seeds节点broker 上发送探测消息ProbeMsg,将自身的信息同步到seeds节点,再由seeds 节点扩散到整个集群。节点有三种状态,分别是join、up、down,当节点启动时,将自身状态设置成join,在往seeds节点发送第一条探测消息的时候,将自身状态设置成up。如果节点A往节点B发送探测消息,如果节点B超过一定时间内没有回应心跳,则节点A将节点B的状态设置成 down。
程序启动后定期、随机往宕机节点和正常运行的节点发送心跳,心跳中包含ProbeMsg。为防止信息孤岛的产生,如果节点知晓的节点中,活着节点数小于seeds节点数,就必须往其他seeds节点发送消息同步。收到消息的节点将本节点掌握的集群信息更新,然后返回AckMsg, AckMsg中包含交换之后的最新的集群信息,发送方接受到AckMsg之后,用对方的消息更新本节点维护的集群信息。本平台采用push-pull方式,即发送消息的同时,从AckMsg中更新自己节点的信息。主机edge2 在集群中随机选取主机发送心跳,并拉取对面主机信息。
广播自定义的消息(BroadcastMsg)
用户连接任意一个边缘节点broker,对广播主题broadcast-topic发布自定义信息。发布的消息中包括目标主题topic和内容content两个字段。边缘节点订阅广播消息主题,将接收到的广播消息暂时缓存本地,在下次发送心跳消息的时候,解析广播消息,使用相同的机制,将消息扩散至集群中所有MQTT broker上的目标主题。对其中一台机器发送自定义消息,集群中所有MQTT broker的目标主题(network-monitor-topic)都收到了广播消息。
监控模块主要对边缘节点运行状态和边缘节点之间的网络连接状态进行监控,系统设计如图6所示。监控模块主要对边缘节点运行状态和边缘节点之间的网络连接状态进行监控。边缘节点监控主要是对主机各项指标 (如CPU、内存、磁盘使用情况)进行监控,方便进行集群管理和故障定位。目前业界比较成熟的监控方案是在各节点安装exporter抓取各项机器指标,Promethues往exporter发送http请求,拉取监控数据,最后交由 Grafana仪表盘进行可视化展示。这样的模式依赖于单节点的Prometheus 汇总数据,Prometheus需要和所有安装exporter的机器保持通信。但是在边缘环境中,无法保证所有节点两两连通,而且单个Prometheus节点的崩溃将导致整个监控模块的崩溃,因此在这里做出改进。
监控模块使用Node exporter对集群主机进行监控。Node exporter是Prometheus社区提供的主机监控解决方案,可以抓取主机硬件和内核参数。监控模块使用node exporter采集主机中CPU使用率、内存、网络流量、磁盘使用量等指标,将监控信息通过MQTT广播主题发布至整个集群,如图4和图3所示。编写自定义exporter,从广播主题中订阅所有监控数据,将数据转化成适配Prometheus的格式,最后接入Grafana,将集群内所有主机运行信息可视化展示给管理人员,这种去中心化的监控架构不依赖于单一主控节点,任意节点脱离连接不会导致整个监控模块的崩溃。
网络监控主要监控主机之间的网络延时、网络丢包率和网络抖动,监控的结果将被用于数据分发路径规划的依据(节点优先将数据转发至网络延时短、丢包数量少的节点)。相比于主机故障,网络层故障原因更加复杂,比如物理线路故障、设备故障、网络拥塞或者软件设计上的缺陷,很难通过少量的信息分析故障的根源。因此这里使用黑盒监控方式监控网络延时、网络丢包率和网络抖动三个指标,综合判断网络连接状态。使用定时线程池,每隔30s运行系统命令ping,各边缘节点发送5个icmp探测包,获取本节点和各节点之间的平均网络延时、丢包率和网络抖动,之后将网络连接信息发送至MQTT广播主题,扩散至整个集群,最后用于业务数据转发路径规划。
数据分发模设计图如图7所示。数据分发模块定时从MQTT广播主题接收网络连接信息,包括各节点之间的网络延时、网络丢包率、网络抖动信息,从而得到边缘集群网络拓扑信息。根据边缘集群网络拓扑信息,以本节点为出发节点,其他节点为目标节点,使用Dijkstra算法规划数据分发路径,获得数据分发路由表,缓存在本地内存。边缘客户端将数据发布至MQTTbroker单播主题时,数据分发模块从MQTT broker主题上拉取数据之后,首先根据一致性哈希算法,求得目标节点,再根据路由表,为数据包规划最短分发路径。将路径信息附在数据包之上,发送到下一节点MQTT broker上,再由下一个边缘节点进行转发,直到数据包发送至目标节点。如果因为网络故障或者拥塞,导致数据暂时无法分发至目标节点,那么数据分发模块将数据缓存至代理节点数据库表。
数据存入边缘集群时,边缘客户端将数据发布至MQTT broker单播主题,数据分发模块从MQTT broker主题上拉取数据之后,首先根据一致性哈希算法,求得目标节点,再根据路由表,为数据包规划最短分发路径。将路径信息附在数据包之上,发送到下一节点MQTTbroker上,再由下一个边缘节点进行转发,直到数据包发送至目标节点。如果因为网络故障或者拥塞,导致数据暂时无法分发至目标节点,那么数据分发模块将数据缓存至代理节点数据库表。边缘节点定期扫描本地缓存数据库表,为分发失败的数据重新规划路径,再次尝试分发,直到数据分发成功。
当边缘客户端设备产生的数据需要实时消费,不需要存入数据库表时,边缘客户端连接上任意一个边缘节点的消息,订阅MQTT消息。以该边缘节点为代理节点,定期向数据源节点发送订阅消息。数据源节点的收到订阅消息之后,把本地broker接收的消息,附加上路径规划信息,通过同样的方式转发到代理节点broker,最终实现数据的实时消费。数据源节点在本地维护一个时间戳,每接收到一次订阅命令,就更新一下本地的时间戳,如果一段时间没有接受到订阅消息,就停止数据转发。
对于需要进行预先处理的数据,客户端将数据发布到MQTT broker 预处理模块主题,交由预处理模块计算处理,得到的派生数据会被发布至本地MQTTbroker数据分发主题,进行数据转发。物联网设备采集的数据往往是连续的时序数据,因此数据预处理模块使用了Flink流式数据处理平台。考虑到Flink主、从架构的集群方式无法适应不稳定的边缘网络环境,这里以单节点方式在每个边缘节点部署Flink平台,各节点之值间独立运行,无需信息交互。平台提供MaxAggregate,MinAggregate,AverageAggregate,SumAggregate,SampleAggregate 5种聚合算子,聚合算子以时间为维度,截取定长的时间窗口内(60s)的数据,对每个窗口内的数据进行运算,分别支持最大、最小、平均、求和以及采样5中计算方法。
数据存储模块中,边缘环境地域广袤,边缘客户端由于自身信号弱,无法直接连接所有边缘节点,而边缘节点之间网络连接相对稳定,带宽较高。因此,边缘客户端往集群中写数据时,只需要选取网络连接最佳的任意一个边缘节点,将数据发送给此边缘节点,以此节点为代理,由代理节点将数据转发至目标节点(如图8所示)。目标节点的使用一致性哈希算法,对数据进行负载均衡。平台进程启动时,首先从配置文件中获取所有边缘节点列表,构建集群Hash环。以真实节点为基础,每个节点虚拟出 30个虚拟节点,虚拟节点的使用可以使集群中的数据分布更加均衡。虚拟节点主机名由真实节点类型、真实节点id号、虚拟节点编号构成,如 edge-1-VM1,再由Hash算法对虚拟节点名称求得0~231-1的Hash值,确定虚拟节点在Hash环中的位置(如图10)。之后对数据partitionkey 采用同样的Hash算法,确定数据在Hash环上的位置,数据存储在沿 Hash环顺时针旋转第一个遇到的节点。
如图9和图10所示,一致性哈希算法可将数据随机分配到集群中各节点,均衡负载。首先使用对节点名称加虚拟节点名称(一个真实节点虚拟出多个虚拟节点)进行Hash映射,得到节点Hash值,从而确定边缘集群中各节点在Hash环的分布。数据的键值分为partition_key和 row_key。partition_key决定数据最终落在哪个节点,row_key用于在同一个节点内数据的区分。对partition_key进行Hash映射,从而确定数据在 Hash环的位置,数据存储在沿着顺时针方向遇到的第一个节点。
在本平台中,由于业务需要,经常需要对同一个业务线下某个项目的某个主题下全部数据进行查询或者汇总,为方便进行批处理,提升读写效率,希望每次查询的数据全部来自同一个节点。因此使用业务数据中 metadata_id和key作为partition_key(metadata_id可以唯一确定 service_name,namespace,topic和ttl),保证相同业务线同一项目下相同意义的数据分发到同一节点上去;row_key由device_identity,timestamp组成,用于同一节点内数据进一步地区分。
在传统平台处理数据的方式中,物联网数据源发送数据到平台,平台将原始数据从边端推送至中心云端,云端对数据处理之后,再将结果返回。数据预处理模块,将部分计算任务从中心远端下沉至边缘端,提升响应速度的同时,避免了大规模的原始数据从边端传送至云端,减少网络层流量传输,节省带宽资源。
考虑到物联网数据往往是连续的时序数据,因而数据预处理模块使用了Flink流式数据处理平台。Flink主、从架构的集群方式无法适应不稳定的边缘网络环境,这里以单节点方式在每个边缘节点部署Flink平台,各节点之值间独立运行,无需信息交互。数据预处理模块能对固定长度时间窗口内的原始数据流进行统计计算,支持Min,Max,Sum,Avg和采样五种数据预处理功能,同时支持用户提交自定义的程序对数据进行计算处理,如表2所示。物联网设备连接上边缘环境中任意一个节点,将数据推送至该节点上的MQTT broker上预处理主题。预处理模块拉取预处理配置,决定是否对原始数据进行预处理以及进行什么样的处理。预处理模块以固定长度的时间窗口截取数据流,对该段数据流进行运算,获得派生数据。获得的派生数据发布至本地的MQTT分发主题,交由数据分发模块进行分发,预处理模块设计如图11所示。同时数据预处理模块和数据分发模块可以完全解耦,仅由MQTTbroker进行连接,用户可以根据需要添加自定义的预处理任务。
表2
操作 | 描述 |
Min | 求指定的时间段内数据的最小值 |
Max | 求指定的时间段内数据的最大值 |
Sum | 求指定时间段内数据的和 |
Avg | 求指定时间段内数据的平均值 |
采样 | 在指定时间段抽取一个数据点 |
其他 | 可由用户自定义 |
云端子系统使用开源存储软件Cassandra构建存储集群,当边缘节点和云端节点网络连接畅通时,将存储在边缘节点上的数据同步到云端存储集群上,作为最后数据的备份。
本发明所提供的一种边缘环境下物联网数据分发、存储系统,应用于所述的一种边缘环境下物联网数据分发、存储方法,所述系统包括:
边缘节点确定模块,用于在边缘环境中部署多个边缘小型主机,将边缘小型主机作为边缘节点,并随机选择一个边缘节点为目标节点。
代理节点确定模块,用于边缘客户端将物联网数据发送至网络连接最佳的边缘节点中,并将对应的边缘节点作为代理节点。
最短分发路径确定模块,用于根据边缘节点之间的网络连接状态,确定代理节点与目标节点之间的最短分发路径。
物联网数据发送模块,用于根据最短分发路径,将物联网数据发送至目标节点。
云端存储模块,用于当目标节点与云端节点网络连接畅通时,将物联网数据同步到云端节点中,实现云端存储。
所述边缘节点确定模块具体包括:
数据预处理单元,用于在每个边缘节点上部署Flink平台;Flink平台用于对接收的物联网数据进行预处理。
所述最短分发路径确定模块具体包括:
网络连接信息确定单元,用于网络监控每隔30s运行系统命令ping,各边缘节点发送多个icmp探测包,获取边缘节点之间的网络连接信息;网络连接信息包括:平均网络延时、丢包率和网络抖动。
信息扩散单元,用于将网络连接信息发送至MQTT广播主题,扩散至所有的边缘节点。
最短分发路径确定单元,用于根据网络连接信息,采用Dijkstra算法确定代理节点与目标节点之间的最短分发路径。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
Claims (6)
1.一种边缘环境下物联网数据分发、存储方法,其特征在于,包括:
在边缘环境中部署多个边缘小型主机,将边缘小型主机作为边缘节点,并随机选择一个边缘节点为目标节点;
边缘客户端将物联网数据发送至网络连接最佳的边缘节点中,并将对应的边缘节点作为代理节点;
根据边缘节点之间的网络连接状态,确定代理节点与目标节点之间的最短分发路径;
根据最短分发路径,将物联网数据发送至目标节点;
当目标节点与云端节点网络连接畅通时,将物联网数据同步到云端节点中,实现云端存储;
所述根据边缘节点之间的网络连接状态,确定代理节点与目标节点之间的最短分发路径,具体包括:
网络监控每隔30s运行系统命令ping,各边缘节点发送多个icmp探测包,获取边缘节点之间的网络连接信息;网络连接信息包括:平均网络延时、丢包率和网络抖动;
将网络连接信息发送至MQTT广播主题,扩散至所有的边缘节点;
根据网络连接信息,采用Dijkstra算法确定代理节点与目标节点之间的最短分发路径。
2.根据权利要求1所述的一种边缘环境下物联网数据分发、存储方法,其特征在于,所述在边缘环境中部署多个边缘小型主机,将边缘小型主机作为边缘节点,并随机选择一个边缘节点为目标节点,具体包括:
在每个边缘节点上部署Flink平台;Flink平台用于对接收的物联网数据进行预处理。
3.根据权利要求1所述的一种边缘环境下物联网数据分发、存储方法,其特征在于,所述边缘客户端采用MQTT轻量级通信通信协议与边缘节点进行通信。
4.一种边缘环境下物联网数据分发、存储系统,应用于权利要求1-3任意一项所述的一种边缘环境下物联网数据分发、存储方法,其特征在于,所述系统包括:
边缘节点确定模块,用于在边缘环境中部署多个边缘小型主机,将边缘小型主机作为边缘节点,并随机选择一个边缘节点为目标节点;
代理节点确定模块,用于边缘客户端将物联网数据发送至网络连接最佳的边缘节点中,并将对应的边缘节点作为代理节点;
最短分发路径确定模块,用于根据边缘节点之间的网络连接状态,确定代理节点与目标节点之间的最短分发路径;
物联网数据发送模块,用于根据最短分发路径,将物联网数据发送至目标节点;
云端存储模块,用于当目标节点与云端节点网络连接畅通时,将物联网数据同步到云端节点中,实现云端存储;
所述最短分发路径确定模块具体包括:
网络连接信息确定单元,用于网络监控每隔30s运行系统命令ping,各边缘节点发送多个icmp探测包,获取边缘节点之间的网络连接信息;网络连接信息包括:平均网络延时、丢包率和网络抖动;
信息扩散单元,用于将网络连接信息发送至MQTT广播主题,扩散至所有的边缘节点;
最短分发路径确定单元,用于根据网络连接信息,采用Dijkstra算法确定代理节点与目标节点之间的最短分发路径。
5.根据权利要求4所述的一种边缘环境下物联网数据分发、存储系统,其特征在于,所述边缘节点确定模块具体包括:
数据预处理单元,用于在每个边缘节点上部署Flink平台;Flink平台用于对接收的物联网数据进行预处理。
6.一种边缘环境下物联网数据分发、存储系统,应用于权利要求1-3任意一项所述的一种边缘环境下物联网数据分发、存储方法,其特征在于,所述系统包括:通信模块、数据分发模块、监控模块、边缘存储模块以及数据预处理模块;
通信模块用于使用MQTT和Gossip提供数据的单播和广播功能;
数据分发模块用于定时从MQTT广播主题接收网络连接信息;
监控模块用于对边缘节点的运行状态和边缘节点之间的网络连接状态进行监控;
边缘存储模块用于进行物联网数据的存储;
数据预处理模块用于采用Flink流式数据处理平台对物联网数据进行预处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210677109.3A CN115102986B (zh) | 2022-06-15 | 2022-06-15 | 一种边缘环境下物联网数据分发、存储方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210677109.3A CN115102986B (zh) | 2022-06-15 | 2022-06-15 | 一种边缘环境下物联网数据分发、存储方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115102986A CN115102986A (zh) | 2022-09-23 |
CN115102986B true CN115102986B (zh) | 2023-12-01 |
Family
ID=83290984
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210677109.3A Active CN115102986B (zh) | 2022-06-15 | 2022-06-15 | 一种边缘环境下物联网数据分发、存储方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115102986B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117240851B (zh) * | 2023-11-14 | 2024-02-20 | 苏州元脑智能科技有限公司 | 一种数据分发方法、装置、设备以及存储介质 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107317879A (zh) * | 2017-08-02 | 2017-11-03 | 网宿科技股份有限公司 | 一种用户请求的分发方法及系统 |
CN108259570A (zh) * | 2017-12-25 | 2018-07-06 | 山东浪潮云服务信息科技有限公司 | 一种分布式消息的传送网络平台、方法和系统 |
CN108737544A (zh) * | 2018-05-22 | 2018-11-02 | 中国联合网络通信集团有限公司 | Cdn节点调度方法和装置 |
CN111538571A (zh) * | 2020-03-20 | 2020-08-14 | 重庆特斯联智慧科技股份有限公司 | 一种用于人工智能物联网的边缘计算节点任务调度的方法和系统 |
CN111770160A (zh) * | 2020-06-24 | 2020-10-13 | 成都西加云杉科技有限公司 | 边缘节点装置、云端节点装置及物联网平台 |
CN112738756A (zh) * | 2021-01-13 | 2021-04-30 | 中国地质大学(北京) | 一种物联网设备数据收集方法及装置 |
CN113408087A (zh) * | 2021-05-25 | 2021-09-17 | 国网湖北省电力有限公司检修公司 | 一种基于云边系统和视频智能分析的变电站巡视方法 |
CN113553160A (zh) * | 2021-08-03 | 2021-10-26 | 上海紫邦电气技术有限公司 | 用于人工智能物联网的边缘计算节点任务调度方法及系统 |
CN113612820A (zh) * | 2021-07-13 | 2021-11-05 | 之江实验室 | 基于SuperEdge和EdgeXFoundry的云边端设备平台控制架构和方法 |
CN113630372A (zh) * | 2020-05-09 | 2021-11-09 | 中移物联网有限公司 | 一种边缘计算的云边协同系统 |
CN113726556A (zh) * | 2021-08-06 | 2021-11-30 | 国网电力科学研究院有限公司 | 边缘物联代理节点运维方法、系统、存储介质及计算设备 |
CN113810293A (zh) * | 2020-06-15 | 2021-12-17 | 北京金山云网络技术有限公司 | 网络择优代理方法、装置、电子设备、服务器及存储介质 |
CN114077485A (zh) * | 2021-11-09 | 2022-02-22 | 深圳供电局有限公司 | 一种物联网边缘计算节点资源的业务调度部署方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7415527B2 (en) * | 2003-06-13 | 2008-08-19 | Satyam Computer Services Limited Of Mayfair Centre | System and method for piecewise streaming of video using a dedicated overlay network |
US10454977B2 (en) * | 2017-02-14 | 2019-10-22 | At&T Intellectual Property I, L.P. | Systems and methods for allocating and managing resources in an internet of things environment using location based focus of attention |
-
2022
- 2022-06-15 CN CN202210677109.3A patent/CN115102986B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107317879A (zh) * | 2017-08-02 | 2017-11-03 | 网宿科技股份有限公司 | 一种用户请求的分发方法及系统 |
CN108259570A (zh) * | 2017-12-25 | 2018-07-06 | 山东浪潮云服务信息科技有限公司 | 一种分布式消息的传送网络平台、方法和系统 |
CN108737544A (zh) * | 2018-05-22 | 2018-11-02 | 中国联合网络通信集团有限公司 | Cdn节点调度方法和装置 |
CN111538571A (zh) * | 2020-03-20 | 2020-08-14 | 重庆特斯联智慧科技股份有限公司 | 一种用于人工智能物联网的边缘计算节点任务调度的方法和系统 |
CN113630372A (zh) * | 2020-05-09 | 2021-11-09 | 中移物联网有限公司 | 一种边缘计算的云边协同系统 |
CN113810293A (zh) * | 2020-06-15 | 2021-12-17 | 北京金山云网络技术有限公司 | 网络择优代理方法、装置、电子设备、服务器及存储介质 |
CN111770160A (zh) * | 2020-06-24 | 2020-10-13 | 成都西加云杉科技有限公司 | 边缘节点装置、云端节点装置及物联网平台 |
CN112738756A (zh) * | 2021-01-13 | 2021-04-30 | 中国地质大学(北京) | 一种物联网设备数据收集方法及装置 |
CN113408087A (zh) * | 2021-05-25 | 2021-09-17 | 国网湖北省电力有限公司检修公司 | 一种基于云边系统和视频智能分析的变电站巡视方法 |
CN113612820A (zh) * | 2021-07-13 | 2021-11-05 | 之江实验室 | 基于SuperEdge和EdgeXFoundry的云边端设备平台控制架构和方法 |
CN113553160A (zh) * | 2021-08-03 | 2021-10-26 | 上海紫邦电气技术有限公司 | 用于人工智能物联网的边缘计算节点任务调度方法及系统 |
CN113726556A (zh) * | 2021-08-06 | 2021-11-30 | 国网电力科学研究院有限公司 | 边缘物联代理节点运维方法、系统、存储介质及计算设备 |
CN114077485A (zh) * | 2021-11-09 | 2022-02-22 | 深圳供电局有限公司 | 一种物联网边缘计算节点资源的业务调度部署方法 |
Also Published As
Publication number | Publication date |
---|---|
CN115102986A (zh) | 2022-09-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111565229B (zh) | 一种基于Redis的通信系统分布式方法 | |
US6330605B1 (en) | Proxy cache cluster | |
US7894372B2 (en) | Topology-centric resource management for large scale service clusters | |
CN102984501A (zh) | 一种网络视频录像集群系统 | |
US9680713B2 (en) | Network management system | |
CN111885439B (zh) | 一种光网络综合管理和值勤管理系统 | |
CN115102986B (zh) | 一种边缘环境下物联网数据分发、存储方法及系统 | |
CN113157449A (zh) | 基于mqtt的实时流数据分析处理方法 | |
Thean et al. | Container-based MQTT broker cluster for edge computing | |
CN111800516B (zh) | 一种基于p2p的物联网设备管理方法及装置 | |
CN112583895B (zh) | Tcp通信方法、系统及装置 | |
CN102118274A (zh) | 一种状态监控方法、装置和系统 | |
Talia et al. | A P2P grid services-based protocol: Design and evaluation | |
CN113630366A (zh) | 一种物联网设备接入方法及系统 | |
CN116708538A (zh) | 一种以对等网络为基础的微服务系统 | |
Tripathi et al. | Broker clustering enabled lightweight communication in iot using mqtt | |
Meiklejohn et al. | Loquat: A framework for large-scale actor communication on edge networks | |
CN114900524A (zh) | 一种mqtt服务的负载均衡和节点降低延时方法 | |
CN113746894A (zh) | 基于hdfs rbf路由层实现负载均衡方法、装置 | |
CN114095508A (zh) | 一种同交换机下p2p传输的方法 | |
CN114567894B (zh) | 无线自组织网络多控制器通信方法 | |
CN116074392B (zh) | 一种数据流传输模式智能化匹配方法与装置 | |
CN112073506B (zh) | 基于IPv6与消息队列的复杂电磁数据采集方法 | |
Ji et al. | Research and application of internet of things edge autonomy technology based on microservice in power pipe gallary | |
CN117560415B (zh) | 智慧社区微服务架构mqtt异步和同步通信方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |