一种分布式物联网中间件及工作方法技术

技术编号:19327856 阅读:33 留言:0更新日期:2018-11-03 14:42
一种分布式物联网中间件及工作方法,中间件包括:访问控制模块、节点管理模块、负载均衡模块、设备管理模块、节点通信模块、子节点管理模块、设备代理模块、业务模块、设备通信模块、zookeeper代理、kafka代理。用户通过节点管理模块增加或删除子节点,Zookeeper代理把子节点的变更情况通知给子节点管理模块,用户通过设备管理模块增加和删除设备,设备代理模块连接系统分配的设备,系统通过业务模块、节点通信模块、Kafka代理下发业务消息给每个子系统。本发明专利技术把中间件和设备交互的任务分散给各个子节点系统,某个子节点系统宕机时,负载会被动态的分配给其他子节点系统,提高了系统的可靠性。

A middleware and work method for Distributed Internet of things

A distributed Internet of Things middleware and its working method include: access control module, node management module, load balancing module, device management module, node communication module, sub-node management module, device agent module, business module, device communication module, zookeeper agent, Kafka agent. Users add or delete sub-nodes through node management module. Zookeeper agent notifies sub-node management module about the changes of sub-nodes. Users add and delete devices through device management module. Device agent module connects the equipment allocated by the system. The system is distributed through business module, node communication module and Kafka agent. Business messages are given to each subsystem. The invention distributes the task of interaction between middleware and equipment to each sub-node system. When a sub-node system goes down, the load will be dynamically distributed to other sub-node systems, thus improving the reliability of the system.

【技术实现步骤摘要】
一种分布式物联网中间件及工作方法
本专利技术涉及计算机技术,更具体的说,涉及一种分布式物联网中间件及工作方法。
技术介绍
中间件是位于平台操作系统和应用之间的通用服务。现有中间件软件产品一般部署在单独一台服务器上,直接和电子标识设备交互,处理能力有限,一般最多支持200多台设备同时工作。如果需要支持上千台设备同时工作,需要部署多套中间件软件产品,比较繁琐。随着汽车电子标识行业的逐步发展,已经出现需要部署大量电子标识设备的需求,对现有的中间件软件产品构成较大的压力。在部署多套中间件软件产品时,每个中间件产品都需要配置一套相同的规则信息,容易出现差错;而当中间件软件产品出现单点故障,或者网络中断时,设备也无法迅速恢复到正常工作状态。
技术实现思路
基于此,提出一种分布式物联网中间件及工作方法,方便系统的扩容,能有效避免网络中断、单点故障导致的电子标识设备无法工作情况的发生。为达到上述目的,本专利技术提出的技术方案为:一种分布式物联网中间件,所述中间件包括:主节点系统、子节点系统、zookeeper代理、kafka代理、主节点系统接收用户的请求,通过kafka代理把任务下发到所述的子节点系统,同时通过kafka代理接收子节点系统上报的信息,主节点系统通过zookeeper代理把子节点的变更情况通知给子节点系统。进一步的,当所述主节点系统启动时,创建主节点和主节点状态节点,主节点系统创建负载节点,其中一个负载节点中包含多个负载单元,每个负载单元中含有与其对应的负载数量,子节点系统创建子节点状态节点。进一步的,主节点系统包括:访问控制模块、节点管理模块、负载均衡模块、设备管理模块、节点通信模块、业务模块,操作者通过节点管理模块增加或删除子节点,负载均衡模块用于动态均衡负载设备,设备管理模块用于增加和删除设备,业务模块与节点通信模块相连,节点通信模块和kafka代理相连接,主节点系统通过业务模块、节点通信模块、kafka代理将业务下发给子节点系统,访问控制模块用于验证用户。进一步的,子节点系统包括:子节点管理模块、子节点通信模块、设备代理模块、子节点业务模块、设备通信模块,子节点管理模块用于接收zookeeper代理发送的子节点变更通知,子节点通信模块用于接收主节点下发的业务消息并下发给设备,子节点通信模块还用于把设备返回的业务消息返回给主节点系统,子节点系统通过设备代理模块连接主节点系统分配的设备,设备通信模块接收设备的信息,子节点业务模块与设备通信模块相连接用于将设备的信息上传至数据库。进一步的,主节点系统对应多个子节点系统,中间件与设备交互的工作被分配到不同的所述子节点系统中。进一步的,当一个所述子节点系统宕机时,负载的设备会动态的分配给其他所述子节点系统。与现有技术相比,本专利技术的有益效果在于:1、本专利技术把传统的中间件系统中和大量设备交互的任务分散给各个子节点系统;2、某个子节点系统宕机时,负载的设备会动态分配给其他子节点系统,提高了系统的可靠性。本专利技术的另一目的在于提出一种分布式物联网中间件的工作方法,步骤包括:步骤1,用户通过主节点系统的访问控制模块的验证;步骤2,用户通过主节点系统的节点管理模块,进行子节点的增加和删除;步骤3,Zookeeper代理把子节点的变更情况通知给子节点系统的子节点管理模块;步骤4,用户通过主节点系统的设备管理模块,进行设备的增加和删除;步骤5,步骤4的操作会触发负载均衡模块中的负载均衡算法把设备动态分配给在线的所有的子节点;步骤6,子节点系统通过设备代理模块,连接主节点系统分配的设备;步骤7,主节点系统通过业务模块、节点通信模块、Kafka代理下发业务消息给每个子节点系统;步骤8,子节点系统通过子节点通信模块接收主节点下发的业务消息,并下发给设备;步骤9,子节点系统把设备返回的业务消息通过子节点通信模块、Kafka代理上报给主节点系统;步骤10,主节点系统把子节点系统上报的消息展示给用户。进一步的,当负载设备或在线所述子节点系统数量发生变化,或所述子节点系统超负荷时,所述主节点系统调用负载均衡模块中的负载均衡算法动态均衡所述子节点系统中的负载,负载均衡算法包括步骤:步骤1,判断是否存在未分配的负载单元,如果存在,则执行步骤2,否则执行步骤8;步骤2,根据负载量,对待分配的负载单元进行排序;步骤3,根据负载量,对所有在线的子节点进行排序;步骤4,根据所有在线子节点系统的运行情况,判断是否存在没有超负荷的子节点,如果存在,则执行步骤5,否则执行步骤12;步骤5,把负载量最大的待分配负载单元分配给负载量最小且没有超负荷的子节点;步骤6,标识该负载单元已经被分配;步骤7,判断所有的待分配负载单元是否分配完毕,如果已经分配完毕,则执行步骤8,否则执行步骤3;步骤8,根据负载量对在线子节点进行排序;步骤9,取得所有在线子节点中最大和最小负载量的差,并记做M;步骤10,取得最大负载量节点中最小负载单元的负载量,并记做N;步骤11,比较N和M/2,如果N<=M/2,则把最大负载量节点的最小负载单元分配给最小负载量节点,执行步骤8,否则,则执行步骤12;步骤12,不再进行分配处理,负载均衡终止。本专利技术所述的一种分布式物联网中间件的工作方法与上述一种分布式物联网中间件的有益效果相同,在此不再赘述。附图说明构成本专利技术的一部分的附图用来提供对本专利技术的进一步理解,本专利技术的示意性实施例及其说明用于解释本专利技术,并不构成对本专利技术的不当限定。在附图中:图1是本专利技术的系统模块示意图;图2是本专利技术的节点存储模型示意图;图3是本专利技术的工作流程图;图4是本专利技术的负载均衡算法流程图。具体实施方式如图1所示,一种分布式物联网中间件包括:主节点系统、子节点系统、zookeeper代理、kafka代理,主节点系统接收用户的请求,通过kafka代理把任务下发到所述的子节点系统,同时通过kafka代理接收子节点系统上报的信息,主节点系统通过zookeeper代理把子节点的变更情况通知给子节点系统。主节点系统包括:访问控制模块、节点管理模块、负载均衡模块、设备管理模块、节点通信模块、业务模块,操作者通过节点管理模块增加或删除子节点,负载均衡模块用于动态均衡负载设备,设备管理模块用于增加和删除设备,业务模块与节点通信模块相连,节点通信模块和kafka代理相连接,主节点系统通过业务模块、节点通信模块、kafka代理将业务下发给子节点系统,访问控制模块用于验证用户。子节点系统包括:子节点管理模块、子节点通信模块、设备代理模块、子节点业务模块、设备通信模块,子节点管理模块用于接收zookeeper代理发送的子节点变更通知,子节点通信模块用于接收主节点下发的业务消息并下发给设备,子节点通信模块还用于把设备返回的业务消息返回给主节点系统,子节点系统通过设备代理模块连接主节点系统分配的设备,设备通信模块接收设备的信息,子节点业务模块与设备通信模块相连接用于将设备的信息上传至数据库。图1中的Zookeeper服务为开源的分布式可靠协调系统,数据库服务为数据库软件系统,Kafka服务为开源的分布式发布订阅消息系统。如图2所示,主节点系统启动时创建主节点和主节点状态节点,主节点系统中的负载均衡模块创建负载节点,其中一个负载节点中包含本文档来自技高网...

【技术保护点】
1.一种分布式物联网中间件,其特征在于,所述中间件包括:主节点系统、子节点系统、zookeeper代理、kafka代理,主节点系统接收用户的请求,通过kafka代理把任务下发到子节点系统,主节点系统通过kafka代理接收子节点系统上报的信息,主节点系统通过zookeeper代理把子节点的变更情况通知给子节点系统。

【技术特征摘要】
1.一种分布式物联网中间件,其特征在于,所述中间件包括:主节点系统、子节点系统、zookeeper代理、kafka代理,主节点系统接收用户的请求,通过kafka代理把任务下发到子节点系统,主节点系统通过kafka代理接收子节点系统上报的信息,主节点系统通过zookeeper代理把子节点的变更情况通知给子节点系统。2.如权利要求1所述一种分布式物联网中间件,其特征在于,当所述主节点系统启动时,创建主节点和主节点状态节点,主节点系统创建负载节点,其中一个负载节点中包含多个负载单元,每个负载单元中记录与其对应的负载数量,子节点系统创建子节点状态节点。3.如权利要求1所述一种分布式物联网中间件,其特征在于,主节点系统包括:访问控制模块、节点管理模块、负载均衡模块、设备管理模块、节点通信模块、业务模块,操作者通过节点管理模块增加或删除子节点,负载均衡模块用于动态均衡负载设备,设备管理模块用于增加和删除设备,业务模块与节点通信模块相连,节点通信模块和kafka代理相连接,主节点系统通过业务模块、节点通信模块、kafka代理将业务下发给子节点系统,访问控制模块用于验证用户。4.如权利要求1所述一种分布式物联网中间件,其特征在于,子节点系统包括:子节点管理模块、子节点通信模块、设备代理模块、子节点业务模块、设备通信模块,子节点管理模块用于接收zookeeper代理发送的子节点变更通知,子节点通信模块用于接收主节点下发的业务消息并下发给设备,子节点通信模块还用于把设备返回的业务消息返回给主节点系统,子节点系统通过设备代理模块连接主节点系统分配的设备,设备通信模块接收设备的信息,子节点业务模块与设备通信模块相连接用于将设备的信息上传至数据库。5.如权利要求1所述一种分布式物联网中间件,其特征在于,主节点系统对应多个子节点系统,中间件与设备交互的工作被分配到不同的子节点系统中。6.如权利要求1所述一种分布式物联网中间件,其特征在于,当一个子节点系统宕机时,负载的设备会动态的分配给其他子节点系统。7.一种分布式物联网中间件的工作方法,其特征在于,包括步骤:步骤1,用户通过主节点系统的访问控制模块的验证;...

【专利技术属性】
技术研发人员:申燕祁田宇
申请(专利权)人:天津中兴智联科技有限公司
类型:发明
国别省市:天津,12

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1