CN114785640A - 一种物联网网关集群组件设计方法 - Google Patents
一种物联网网关集群组件设计方法 Download PDFInfo
- Publication number
- CN114785640A CN114785640A CN202210714789.1A CN202210714789A CN114785640A CN 114785640 A CN114785640 A CN 114785640A CN 202210714789 A CN202210714789 A CN 202210714789A CN 114785640 A CN114785640 A CN 114785640A
- Authority
- CN
- China
- Prior art keywords
- node
- gateway
- distributed lock
- nodes
- gateway cluster
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/66—Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0668—Management of faults, events, alarms or notifications using network fault recovery by dynamic selection of recovery network elements, e.g. replacement by the most appropriate element after failure
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种物联网网关集群组件设计方法,包括:构建网关集群与客户端;将客户端与网关集群中的网关节点连接,并将连接的网关节点设为协调节点;发送数据通道的安装任务;所有网关节点基于安装命令安装数据通道;协调节点构建分布式锁并发送到网关集群中,网关集群中的所有网关节点争抢该分布式锁,争抢到分布式锁的网关节点被允许运行数据通道。通过本发明可以快速构建一个灵活的物联网网关集群。使得整个集群在满足物联网数据采集技术要求的前提下,以较低成本提升系统可用性和数据传输性能。
Description
技术领域
本发明属于物联网领域,特别是涉及一种物联网网关集群组件设计方法。
背景技术
在物联网领域,边缘网关大多采用单机部署模式,单个网关设备独立负责一个边缘区域,网关发生故障时,将导致数据采集和传输中断。并且随着设备数量增加、单个网关无法满足性能要求时,这种部署模式很难做到快速扩容。为解决以上问题,一般采用提高设备性能、采用更稳定的硬件、配置自动重启策略等方式来满足需求,这些方案大都需要提高硬件规格,抬升物联网工程整体实施成本,且无法有效降低停机时间。
与服务端的集群方案不同,物联网网关在整个部署架构中更多扮演的是客户端的角色,本发明的目的在于提供一种适应多种不同类型协议的集群管理组件,负责网关集群内部的数据通道安装、卸载、运行协调、故障转移、故障恢复等功能。
发明内容
本发明的目的是提供一种物联网网关集群组件设计方法,以解决上述现有技术存在的问题。
为实现上述目的,本发明提供了一种物联网网关集群组件设计方法,包括:
基于若干个网关节点构建网关集群,构建用于发送任务的客户端;
将所述客户端与所述网关集群中任意一个网关节点连接,并将连接的所述网关节点设为协调节点;
所述客户端向所述网关集群发送数据通道的安装任务;
所有网关节点基于安装命令安装数据通道;
完成安装后,所述协调节点构建分布式锁并发送到所述网关集群中,所述网关集群中的所有网关节点争抢所述分布式锁,争抢到所述分布式锁的网关节点运行所述数据通道,完成物联网网关集群组件设计。
可选地,所述数据通道为所述网关集群运行的业务单元,负责数据的采集与发送;基于所述数据通道设置运行策略。
可选地,所有网关节点基于安装命令安装完数据通道后,基于所述协调节点向所述客户端响应安装结果。
可选地,所述网关集群中的所有网关节点争抢所述分布式锁的过程包括:
所有节点通过启动线程,争夺分布式锁;
获取所述分布式锁的节点被允许运行所述数据通道,其他节点的对应线程进入待命状态,监听所述分布式锁的状态变化。
可选地,所述分布式锁与所述数据通道相对应,同一时间只有一个网关节点持有所述分布式锁。
可选地,在所述协调节点构建一个分布式锁的过程之前,所述协调节点根据所述数据通道的运行策略,计算出能够运行所述分布式锁的节点列表,只有在所述节点列表中的节点被允许持有所述分布式锁。
可选地,在所述网关集群运行的过程中,若出现故障节点,则所述故障节点释放所持有的分布式锁;其他节点争抢所述分布式锁,获取所述分布式锁的节点重新运行数据通道,执行所述安装命令,其他节点的对应线程再次进入待命状态。
可选地,在其他节点争抢所述分布式锁的过程前,将所述网关集群中最早加入的节点设置为重分节点,当所述分布式锁被释放时,所述重分节点基于被释放的分布式锁相对应数据通道的运行策略计算出能够运行所述分布式锁的节点列表,所述节点列表中的节点被允许持有分布式锁。
可选地,当所述故障节点排除故障后重新接入所述网关集群时,或所述网关集群中有新的节点加入时,将所述故障节点设置为恢复节点,并触发重平衡操作。
可选地,触发重平衡操作的过程包括:所述恢复节点按照设定比例选取最后运行的若干个数据通道,强制释放并获取所述数据通道内的分布式锁,使数据通道转移到恢复节点上运行,其他节点上对应的数据通道进入待命状态。
本发明的技术效果为:
通过本发明可以快速构建一个灵活的物联网网关集群。使得整个集群在满足物联网数据采集技术要求的前提下,以较低成本提升系统可用性和数据传输性能。
附图说明
构成本申请的一部分的附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本发明实施例中的运行协调示意图;
图2为本发明实施例中的故障转移示意图;
图3为本发明实施例中的通道安装流程图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
实施例一
如图1-3所示,本实施例中提供一种物联网网关集群组件设计方法,包括:
1)网关容器:网关容器即边缘网关的运行时服务器,网关容器基于OSGi技术,实现了对基础支撑组件和数据通道的生命周期管理,提供基础运行时容器。
2)容器集群:容器集群是由多个网关容器构成的运行单元,通常情况下由一个容器集群负责一个边缘区域的设备数据采集和发送。集群中的一个具体的网关容器,也可称之为集群中的一个网关节点。
3)容器节点发现:集群内的多个网关节点功能上是对等的,每个节点均可发挥相同的作用。网关集群组件可以根据现场实际情况,灵活采用组播IP、静态IP、Zookeeper等多种实现容器节点的相互发现,并可在需要时随时进行横向扩展。
4)数据通道:数据通道是网关中运行的业务单元。负责数据的采集、发送。数据通道以集群为单位进行部署,每个通道都可以设置集群策略,集群组件会根据集群策略指定运行该通道的容器节点。
5)运行协调:在物联网领域,设备与软件之间的交互方式是多种多样的,其中很大一部分协议,例如MQTT、MTConnect、OPC-UA等,都是以广播的形式传输的,多个数据消费者可以从同一个数据生产者那里获取到相同的数据副本。在这种情况下,为避免重复消费数据,集群组件需以集群单例模式运行该通道,确保整个集群中同一时间有且只有一个节点负责该通道的运行。在具体的业务场景下,由哪个节点运行某个通道以其设置的集群策略为准,集群策略主要包括随机、主备、负载均衡等,并可根据业务需要进行扩展。
6)快速故障转移:为实现快速故障转移,一个通道在部署时,会同时部署到集群中的所有节点,并处于待命状态。运行时由集群组件指定运行节点来运行该数据通道,其他仍然处于待命状态的集群组件监听该节点的状态。运行节点发生故障时,其他待命节点将依据集群策略重新计算自身是否符合接管要求,符合要求的情况下,会尝试接管该数据通道。由于通道随时处于待命状态,因此整个接管的过程会非常快,只会造成极为短暂的业务停顿。
7)故障恢复:当故障节点重启或排除故障之后,将会重新加入集群,集群组件会根据设定在恰当时间进行重平衡,重平衡时,集群组件会根据集群策略按比例选取最后运行的数据通道,切换运行节点为当前节点。
实际运行时,一个网关组件安装到网关集群中的具体步骤如下:
1)客户端连接到网关集群中的任意节点,发送需要安装的数据通道信息,直接与客户端通讯的节点将在本次安装过程中充当协调节点的角色。协调节点在接收到请求后,首先由集群组件向集群中的所有容器节点(包括协调节点自身)发送安装数据通道命令。
2)各节点的集群组件接收到数据通道安装命令后,根据通道信息生成组件并进行安装,安装完成后,向协调节点响应安装结果。
3)协调节点接等待所有的容器节点都完成通道安装后,将创建一个分布式锁,该分布式锁与当前安装的数据通道相对应,在整个集群中,同一时间只会有一个节点持有该锁,持有分布式锁的节点将被允许运行当前通道。协调节点会根据该通道设置的运行策略,计算出可以负责该组件运行的节点列表,只有在该列表中的节点才可以持有分布式锁。
4)协调节点向所有容器节点发送运行数据通道的命令,所有容器节点都将启动一个线程来争抢获取分布式锁,获取到分布式锁的容器开始运行数据通道,其他容器节点的对应线程将进入待命状态,监听分布式锁的状态变化。至此,集群组件完成了一个数据通道的启动操作。
当集群中某个节点发生故障时,故障转移、故障恢复及横向扩展的步骤如下:
1)当集群中的某个容器发生故障时,基于分布式锁的特性,该节点将释放所有持有的分布式锁。整个集群中最早加入集群的节点将在此时充当协调节点的角色,当协调节点监听到分布式锁被释放时,会根据该通道设置的运行策略,重新计算出剩下的节点中可以负责该组件运行的节点列表,只有在该列表中的节点才可以持有分布式锁。
2)协调节点向所有容器节点发送运行数据通道的命令,所有节点开始争抢该分布式锁。获取到分布式锁的容器将接替故障节点运行对应的数据通道,其他容器节点的对应线程将再次进入待命状态。至此,集群组件完成了一个数据通道的故障转移操作。
3)当集群中有新的节点加入、或陷入故障的节点排除故障重新接入集群时,新加入的节点自身将充当协调节点的角色,并在适当时间触发重平衡操作。重平衡操作执行时,协调节点将按照设定比例选取最后运行的若干个数据通道,强制释放这些数据通道的分布式锁、由新加入的节点持有,使其他节点上的对应通道进入待命状态,转移数据通道到新加入的节点中运行。实现快速故障恢复/横向扩展。
以上所述,仅为本申请较佳的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。
Claims (10)
1.一种物联网网关集群组件设计方法,其特征在于,包括以下步骤:
基于若干个网关节点构建网关集群,构建用于发送任务的客户端;
将所述客户端与所述网关集群中任意一个网关节点连接,并将连接的所述网关节点设为协调节点;
所述客户端向所述网关集群发送数据通道的安装任务;
所有网关节点基于安装命令安装数据通道;
完成安装后,所述协调节点构建分布式锁并发送到所述网关集群中,所述网关集群中的所有网关节点争抢所述分布式锁,争抢到所述分布式锁的网关节点运行所述数据通道,完成物联网网关集群组件设计。
2.根据权利要求1所述的一种物联网网关集群组件设计方法,其特征在于,所述数据通道为所述网关集群运行的业务单元,负责数据的采集与发送;基于所述数据通道设置运行策略。
3.根据权利要求1所述的一种物联网网关集群组件设计方法,其特征在于,所有网关节点基于安装命令安装完数据通道后,基于所述协调节点向所述客户端响应安装结果。
4.根据权利要求1所述的一种物联网网关集群组件设计方法,其特征在于,所述网关集群中的所有网关节点争抢所述分布式锁的过程包括:
所有节点通过启动线程,争夺分布式锁;
获取所述分布式锁的节点被允许运行所述数据通道,其他节点的对应线程进入待命状态,监听所述分布式锁的状态变化。
5.根据权利要求4所述的物联网网关集群组件设计方法,其特征在于,所述分布式锁与所述数据通道相对应,同一时间只有一个网关节点持有所述分布式锁。
6.根据权利要求2所述的物联网网关集群组件设计方法,其特征在于,在所述协调节点构建一个分布式锁的过程之前,所述协调节点根据所述数据通道的运行策略,计算出能够运行所述分布式锁的节点列表,只有在所述节点列表中的节点被允许持有所述分布式锁。
7.根据权利要求1所述的物联网网关集群组件设计方法,其特征在于,在所述网关集群运行的过程中,若出现故障节点,则所述故障节点释放所持有的分布式锁;其他节点争抢所述分布式锁,获取所述分布式锁的节点重新运行数据通道,执行所述安装命令,其他节点的对应线程再次进入待命状态。
8.根据权利要求7所述的物联网网关集群组件设计方法,其特征在于,在其他节点争抢所述分布式锁的过程前,将所述网关集群中最早加入的节点设置为重分节点,当所述分布式锁被释放时,所述重分节点基于被释放的分布式锁相对应数据通道的运行策略计算出能够运行所述分布式锁的节点列表,所述节点列表中的节点被允许持有分布式锁。
9.根据权利要求7所述的物联网网关集群组件设计方法,其特征在于,当所述故障节点排除故障后重新接入所述网关集群时,或所述网关集群中有新的节点加入时,将所述故障节点设置为恢复节点,并触发重平衡操作。
10.根据权利要求9所述的物联网网关集群组件设计方法,其特征在于,触发重平衡操作的过程包括:所述恢复节点按照设定的比例选取最早部署的若干个数据通道,强制释放并获取所述数据通道内的分布式锁,使数据通道转移到恢复节点上运行,并使其他节点的对应数据通道进入待命状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210714789.1A CN114785640B (zh) | 2022-06-23 | 2022-06-23 | 一种物联网网关集群组件设计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210714789.1A CN114785640B (zh) | 2022-06-23 | 2022-06-23 | 一种物联网网关集群组件设计方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114785640A true CN114785640A (zh) | 2022-07-22 |
CN114785640B CN114785640B (zh) | 2022-09-20 |
Family
ID=82422240
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210714789.1A Active CN114785640B (zh) | 2022-06-23 | 2022-06-23 | 一种物联网网关集群组件设计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114785640B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107203429A (zh) * | 2016-03-18 | 2017-09-26 | 阿里巴巴集团控股有限公司 | 一种基于分布式锁加载分布式任务的方法以及装置 |
US9817703B1 (en) * | 2013-12-04 | 2017-11-14 | Amazon Technologies, Inc. | Distributed lock management using conditional updates to a distributed key value data store |
CN108881489A (zh) * | 2018-08-03 | 2018-11-23 | 高新兴科技集团股份有限公司 | 一种分布式服务的协调系统及方法 |
CN111158878A (zh) * | 2019-12-30 | 2020-05-15 | 北京三快在线科技有限公司 | 资源转移请求线程控制方法、装置及存储介质 |
CN112486695A (zh) * | 2020-12-07 | 2021-03-12 | 浪潮云信息技术股份公司 | 一种高并发业务下的分布式锁实现方法 |
CN112925648A (zh) * | 2021-03-25 | 2021-06-08 | 支付宝(杭州)信息技术有限公司 | 业务策略的发布方法和装置 |
CN114036236A (zh) * | 2021-11-16 | 2022-02-11 | 东软集团股份有限公司 | 多网关集群系统 |
-
2022
- 2022-06-23 CN CN202210714789.1A patent/CN114785640B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9817703B1 (en) * | 2013-12-04 | 2017-11-14 | Amazon Technologies, Inc. | Distributed lock management using conditional updates to a distributed key value data store |
CN107203429A (zh) * | 2016-03-18 | 2017-09-26 | 阿里巴巴集团控股有限公司 | 一种基于分布式锁加载分布式任务的方法以及装置 |
CN108881489A (zh) * | 2018-08-03 | 2018-11-23 | 高新兴科技集团股份有限公司 | 一种分布式服务的协调系统及方法 |
CN111158878A (zh) * | 2019-12-30 | 2020-05-15 | 北京三快在线科技有限公司 | 资源转移请求线程控制方法、装置及存储介质 |
CN112486695A (zh) * | 2020-12-07 | 2021-03-12 | 浪潮云信息技术股份公司 | 一种高并发业务下的分布式锁实现方法 |
CN112925648A (zh) * | 2021-03-25 | 2021-06-08 | 支付宝(杭州)信息技术有限公司 | 业务策略的发布方法和装置 |
CN114036236A (zh) * | 2021-11-16 | 2022-02-11 | 东软集团股份有限公司 | 多网关集群系统 |
Also Published As
Publication number | Publication date |
---|---|
CN114785640B (zh) | 2022-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111290834B (zh) | 一种基于云管理平台实现业务高可用的方法、装置及设备 | |
US11307943B2 (en) | Disaster recovery deployment method, apparatus, and system | |
US20070288585A1 (en) | Cluster system | |
CN102916825A (zh) | 一种双机热备系统的管理设备、管理方法及双机热备系统 | |
CN110134518B (zh) | 一种提高大数据集群多节点应用高可用性的方法及系统 | |
CN109101196A (zh) | 主节点切换方法、装置、电子设备及计算机存储介质 | |
CN103744809A (zh) | 基于vrrp的车辆信息管理系统双机热备方法 | |
CN103383689A (zh) | 一种服务进程故障检测方法、装置及服务节点 | |
CN102394914A (zh) | 集群脑裂处理方法和装置 | |
CN110391940B (zh) | 服务地址的响应方法、装置、系统、设备和存储介质 | |
CN103139245A (zh) | 网元升级方法及装置 | |
CN109361542A (zh) | 客户端的故障处理方法、装置、系统、终端和服务器 | |
CN102360324A (zh) | 故障恢复方法和用于故障恢复的设备 | |
CN111131146A (zh) | 一种广域环境下多超算中心软件系统部署和增量更新方法 | |
CN113220509B (zh) | 一种双组合交替倒班系统及方法 | |
CN110971662A (zh) | 一种基于Ceph的两节点高可用实现方法及装置 | |
CN111078238A (zh) | 容器环境下应用配置集中处理方法及装置 | |
CN114764380A (zh) | 一种基于etcd的分布式集群控制方法和装置 | |
CN102710438A (zh) | 一种节点管理方法、装置及系统 | |
CN114785640B (zh) | 一种物联网网关集群组件设计方法 | |
CN117857358A (zh) | 一种跨数据中心带宽资源管理平台和方法 | |
CN113312059A (zh) | 一种服务处理系统、方法及云原生系统 | |
CN116723077A (zh) | 一种分布式it自动化运维系统 | |
CN114564340B (zh) | 航天地面系统分布式软件高可用方法 | |
CN116599828A (zh) | 任务执行方法和装置、存储介质及电子设备 |
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 |