CN116827987A - 一种适用于物联网设备的mqtt集群系统 - Google Patents
一种适用于物联网设备的mqtt集群系统 Download PDFInfo
- Publication number
- CN116827987A CN116827987A CN202310727842.6A CN202310727842A CN116827987A CN 116827987 A CN116827987 A CN 116827987A CN 202310727842 A CN202310727842 A CN 202310727842A CN 116827987 A CN116827987 A CN 116827987A
- Authority
- CN
- China
- Prior art keywords
- mqtt
- server
- data
- message
- processor
- 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.)
- Pending
Links
- 238000012545 processing Methods 0.000 claims abstract description 24
- 238000000034 method Methods 0.000 claims abstract description 12
- 230000008569 process Effects 0.000 claims abstract description 11
- 238000012795 verification Methods 0.000 claims description 13
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 claims description 5
- 125000004122 cyclic group Chemical group 0.000 claims description 3
- 230000005540 biological transmission Effects 0.000 abstract description 9
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000004075 alteration Effects 0.000 description 2
- 238000004140 cleaning Methods 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000012546 transfer Methods 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
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提供一种适用于物联网设备的MQTT集群系统,包括多个client设备、负载均衡模块、多个MQTT服务器和K‑V服务器,每一个MQTT服务器包括MQTT模块和processor处理器。本发明相对于传统的MQTT集群,不再只提供client设备与服务器之间的连接服务,还提供数据传输后数据处理的方式,即在MQTT服务器中增加processor处理器,由processor处理器对传输数据进行处理,解决海量设备时不光要解决连接和数据传输通道效率问题,还解决传过来的大量数据处理并发问题。
Description
技术领域
本发明涉及物联网通信领域,更具体地,涉及一种适用于物联网设备的MQTT集群系统。
背景技术
MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,有可能成为物联网的重要组成部分。
随着业务日益增大,单台MQTT服务器已不能满足大量终端设备连接效率,迫切需要搭建集群解决此问题,使用现有服务提供商提供的MQTT解决方案费用较大,且提供的MQTT集群解决方案只提供物联网设备的连接服务,设备产生的数据需由客户来进行处理,在支持大量设备连接时动态扩容不能满足业务需求。
在订阅topic层面上,解决动态添加MQTT服务器时只订阅其他MQTT服务器没被订阅的topic,达到消息分流到各个处理服务器上,不需要添加一台服务器就需要在代码层面调整,费时费力。
发明内容
本发明针对现有技术中存在的技术问题,提供一种适用于物联网设备的MQTT集群系统,包括多个client设备、负载均衡模块、多个MQTT服务器和K-V服务器,每一个所述MQTT服务器包括MQTT模块和processor处理器;
每一个client设备,用于通过所述负载均衡模块向MQTT服务器中的MQTT模块发送client设备连接请求;
所述MQTT模块,用于对接收到的client设备连接请求进行鉴权检验,校验通过后建立与client设备的连接;以及向K-V服务器发送注册请求;
所述K-V服务器,用于当接收到所述MQTT模块的注册请求时,将所述client设备与MQTT服务器的连接关系进行绑定,并向processor处理器发送订阅主题消息;
所述processor处理器,用于根据所述订阅主题消息,接收client设备发送的报文数据,并对所述报文数据进行处理。
在上述技术方案的基础上,本发明还可以作出如下改进。
可选的,所述K-V服务器向所述processor处理器发送的订阅主题消息包括设备数据上报和设备事件上报。
可选的,所述processor处理器,用于根据所述订阅主题消息,接收client设备发送的报文数据,并对所述报文数据进行处理,包括:
接收client设备发送的报文数据,所述报文数据中包括client设备通过MCU采集的CAN数据并进行解析后的车身数据;
对所述车身数据进行校验并处理,将校验处理后的车身数据存储于数据库中。
可选的,所述车身数据至少包括油量、水温、转速、GPS坐标信息、胎压和故障信息。
可选的,所述对所述车身数据进行校验并处理,将校验处理后的车身数据存储于数据库中,包括:
根据32位循环冗余校验码多项式检查传输的车身数据是否完整,如果完整,则对所述车身数据进行处理。
可选的,所述如果完整,则对所述车身数据进行处理,包括:
在没有严格要求数据时序性时,对所述车身数据进行清洗,存放于数据库或redis缓存中,以便app或web端进行查看对应设备的信息;
在有严格要求数据时序性时,将所述车身数据发送给消息队列,在所述消息队列中生成时序信息。
可选的,所述如果完整,则对所述车身数据进行处理,还包括:
判断GPS坐标信息是否超出设置的电子围栏范围,如果超出则推送报警信息给app并发送短信通知用户。
可选的,还包括CDS服务器;
所述CDS服务器,用于用户通过app或web端发送的控制车辆动作的控制指令,并将所述控制指令转发给processor处理器;
所述processor处理器,用于根据client设备与MQTT服务器的连接关系,向对应的client设备发送唯一主题的控制报文;
所述client设备,用于接收到所述控制报文,并将其下发给车辆的ECU执行相关指令动作。
本发明提供的一种适用于物联网的MQTT集群系统,包括多个client设备、负载均衡模块、多个MQTT服务器和K-V服务器,每一个MQTT服务器包括MQTT模块和processor处理器。本发明相对于传统的MQTT集群,不再只提供client设备与服务器之间的连接服务,还提供数据传输后数据处理的方式,即在MQTT服务器中增加processor处理器,由processor处理器对传输数据进行处理,解决海量设备时不光要解决连接和数据传输通道效率问题,还解决传过来的大量数据处理并发问题。
附图说明
图1为本发明提供的一种适用于物联网的MQTT集群系统的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。另外,本发明提供的各个实施例或单个实施例中的技术特征可以相互任意结合,以形成可行的技术方案,这种结合不受步骤先后次序和/或结构组成模式的约束,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时,应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
基于背景技术中的问题,本发明基于MQTT协议技术,在高并发、大量设备连接的场景中使用集群来保持服务器的可扩展、高可用。
在对本发明提供的方法进行描述之前,先对本发明中涉及的概念进行说明。Topic:主题,主题是用来对应用消息进行分类的标识,在PUBLISH报文中随着应用消息一起发布。消息传输完整流程分为三步:订阅到发布再到转发。
图1为本发明提供的一种适用于物联网设备的MQTT集群系统,该系统主要包括多个client设备、负载均衡模块、多个MQTT服务器和K-V服务器,每一个所述MQTT服务器包括MQTT模块和processor处理器。
每一个client设备,用于通过所述负载均衡模块向MQTT服务器中的MQTT模块发送client设备连接请求;
所述MQTT模块,用于对接收到的client设备连接请求进行鉴权检验,校验通过后建立与client设备的连接;以及向K-V服务器发送注册请求;
所述K-V服务器,用于当接收到所述MQTT模块的注册请求时,将所述client设备与MQTT服务器的连接关系进行绑定,并向processor处理器发送订阅主题消息;
所述processor处理器,用于根据所述订阅主题消息,接收client设备发送的报文数据,并对所述报文数据进行处理。
其中,参见图1,MQTT集群中的每一个设备的功能说明如下:
client(物联网终端设备):
(1)client固定连接负载均衡的地址,由负载均衡进行转发到MQTT服务器建立连接。
(2)订阅相关主题,根据业务需求订阅用于传输设备数据的主题和用于接收远程控制命令的唯一主题。
(3)发布业务数据消息到对应的主题中。
(4)远控主题接收远控命令执行。
MQTT服务器:
(1)接收Client设备的连接请求,进行鉴权校验,通过后建立与client设备的连接。
(2)向K-V server进行注册。
(3)client设备与MQTT服务器断开连接时向K-V server进行反注册。
processor处理器,用于处理来自client设备的主题消息,处理来自CDS服务器的远程控制命令:
(1)根据K-V server传递过来的client注册信息进行相应的主题订阅。
(2)接收到client发送过来的消息后保证消息只消费一次,并进行CRC32数据的校验合法性。
(3)没有严格要求数据时序性的情况下直接清洗数据后储存到db数据库或redis中。
(4)有严格要求数据顺序时将数据发送给消息队列,由消息队列处理后储存到db数据库或redis中。
(5)接收CDS服务器发送过来的远程控制指令进行鉴权合法性校验后将指令消息发布到唯一主题中。
(6)根据K-V server传递过来的client反注册信息进行取消订阅主题操作。
K-V server,主要用于管理client设备连接的关系和processor的主题订阅:
(1)接收到MQTT服务器的注册请求后,建立client设备和MQTT服务器的连接关系。
(2)向processor发送需要订阅的主题。
(3)进行关系反注册,向processor发送需要取消的订阅主题。
Control Drive Server(CDS,用于接收发送远控指令):
(1)接收从web端和app端过来的控制指令请求,将指令下发到processor处理器。
下面以将本发明的MQTT集群应用于车联网业务的完整的流程如下:
Tbox终端设备(client)通过负载均衡连接到MQTT服务器,MQTT服务器接收到client连接消息进行鉴权校验,判断是否为合法的设备连接,如用户密码校验,或者通过SSL进行校验。MQTT服务器对client设备的鉴权验证通过后向K-V server发送注册请求。K-V server部署在内网,不对外开放端口,接收到注册请求后会将client和MQTT服务器的连接关系进行绑定,也就是client设备和MQTT服务器之间的对应关系,绑定关系后,K-Vserver发送需要订阅的主题内容如:设备数据上报,设备事件上报等给processor处理器,processor处理器接收到K-V server发送过来的订阅主题消息,这时就可以接收到client发送过来的数据报文。processor处理器根据订阅的主题消息对client设备发送的数据报文进行处理,数据报文中包含client通过MCU采集CAN数据进行解析后的车身数据如:油量、水温、转速、GPS坐标信息,胎压,故障等信息,其中,车身数据包括但不限于这些信息,只要是能够通过ECU收集的信息有业务需求都可以记录,如保养里程,当前速度,信号强度,累计里程等等。processor处理器对这些车身数据进行处理。processor处理器在对数据处理之前会对数据进行CRC32校验,根据特有的32位循环冗余校验码多项式来用于检查传输的数据是否完整。在没有严格要求数据时序性的数据如:油量、水温、转速,胎压等进行清洗后,放入数据库或者redis缓存中存放,以便app和web端进行查看对应设备的信息,并且判断GPS坐标是否超出用户设置的电子围栏范围,如果超出则推送报警信息给app并发送短信通知用户。如果有严格要求数据时序性的数据如GPS坐标等,发送给消息队列,以便生成行车轨迹功能。
当用户在app或者web端需要控制车辆时:如开窗、开空调等,则会下发指令给CDS服务器,由CDS服务器将指令转发给processor处理器后由processor处理器向对应的client唯一主题发布指令报文,client订阅了自己的唯一主题则会收到远程控制报文后继续下发指令发送给车辆的ECU执行相关指令。
当高峰期有海量client设备连接和数据传输时只需要增加server即可,高峰期过后可以相应减少server以减少服务器费用。当Client设备日益增大,只需要动态增减server(包含MQTT模块和processor处理器),即可支持大量物联网设备的连接和数据采集,并且当CDS服务器接收的web端和手机端请求过多,负载大时也可以增加CDS服务器即可解决。总之在负载不断变化的情况下,各个组件都能动态增减,保证业务的正常运行的同时减小运维资金成本和时间成本。
本发明提供的一种适用于物联网设备的MQTT集群系统,具有以下优点:
(1)相对于传统的MQTT集群,不再只提供设备连接服务,还在服务器中增加了processor处理器,提供数据传输后数据处理的方式,解决海量设备时不光要解决连接和数据传输通道效率问题,还解决传过来的大量数据处理并发问题。
(2)引入多个processor处理来处理设备推送的数据如果订阅了相同的主题,那么一台设备向该主题发送消息时所有的processor都会收到消息,这个时候消息就不具备唯一性,会重复消费,引入K-V server可以解决这个问题,由K-V server建立processor和设备的连接关系,管理processor的主题订阅,这样设备推送的消息只会被同一台server的processor接收到。
(3)无需复杂的配置,易运维,在单server承受极限时水平增加server即可解决并发带来的负载问题。
(4)具有高可靠性,每台server独立运行和处理数据,多台server时互不影响,其中一台server挂机后不会影响其他服务器,设备重连会通过负载均衡连接到其他server中。
(5)MQTT消息传递效率高,因为设备只会连接到单台server,不存在传统MQTT集群中的消息转发。降低消息延迟到达时间。
(6)引入processor可以很方便的决定设备上报的数据处理方法,设定数据是否传入消息队列进行清洗,还是立即清洗。当设备上报多条消息,因网络问题一直没有到达到MQTT,一但网络恢复多条消息会立即进入MQTT服务器,并广播到processor,这个时候可以很方便的决定是否抛弃掉同设备发送过来的重复消息,减少服务器压力。
需要说明的是,在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其它实施例的相关描述。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包括这些改动和变型在内。
Claims (8)
1.一种适用于物联网设备的MQTT集群系统,其特征在于,包括多个client设备、负载均衡模块、多个MQTT服务器和K-V服务器,每一个所述MQTT服务器包括MQTT模块和processor处理器;
每一个client设备,用于通过所述负载均衡模块向MQTT服务器中的MQTT模块发送client设备连接请求;
所述MQTT模块,用于对接收到的client设备连接请求进行鉴权检验,校验通过后建立与client设备的连接;以及向K-V服务器发送注册请求;
所述K-V服务器,用于当接收到所述MQTT模块的注册请求时,将所述client设备与MQTT服务器的连接关系进行绑定,并向processor处理器发送订阅主题消息;
所述processor处理器,用于根据所述订阅主题消息,接收client设备发送的报文数据,并对所述报文数据进行处理。
2.根据权利要求1所述的MQTT集群系统,其特征在于,所述K-V服务器向所述processor处理器发送的订阅主题消息包括设备数据上报和设备事件上报。
3.根据权利要求1或2所述的MQTT集群系统,其特征在于,所述所述processor处理器,用于根据所述订阅主题消息,接收client设备发送的报文数据,并对所述报文数据进行处理,包括:
接收client设备发送的报文数据,所述报文数据中包括client设备通过MCU采集的CAN数据并进行解析后的车身数据;
对所述车身数据进行校验并处理,将校验处理后的车身数据存储于数据库中。
4.根据权利要求3所述的MQTT集群系统,其特征在于,所述车身数据至少包括油量、水温、转速、GPS坐标信息、胎压和故障信息。
5.根据权利要求4所述的MQTT集群系统,其特征在于,所述对所述车身数据进行校验并处理,将校验处理后的车身数据存储于数据库中,包括:
根据32位循环冗余校验码多项式检查传输的车身数据是否完整,如果完整,则对所述车身数据进行处理。
6.根据权利要求5所述的MQTT集群系统,其特征在于,所述如果完整,则对所述车身数据进行处理,包括:
在没有严格要求数据时序性时,对所述车身数据进行清洗,存放于数据库或redis缓存中,以便app或web端进行查看对应设备的信息;
在有严格要求数据时序性时,将所述车身数据发送给消息队列,在所述消息队列中生成时序信息。
7.根据权利要求6所述的MQTT集群系统,其特征在于,所述如果完整,则对所述车身数据进行处理,还包括:
判断GPS坐标信息是否超出设置的电子围栏范围,如果超出则推送报警信息给app并发送短信通知用户。
8.根据权利要求1所述的MQTT集群系统,其特征在于,还包括CDS服务器;
所述CDS服务器,用于用户通过app或web端发送的控制车辆动作的控制指令,并将所述控制指令转发给processor处理器;
所述processor处理器,用于根据client设备与MQTT服务器的连接关系,向对应的client设备发送唯一主题的控制报文;
所述client设备,用于接收到所述控制报文,并将其下发给车辆的ECU执行相关指令动作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310727842.6A CN116827987A (zh) | 2023-06-19 | 2023-06-19 | 一种适用于物联网设备的mqtt集群系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310727842.6A CN116827987A (zh) | 2023-06-19 | 2023-06-19 | 一种适用于物联网设备的mqtt集群系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116827987A true CN116827987A (zh) | 2023-09-29 |
Family
ID=88142236
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310727842.6A Pending CN116827987A (zh) | 2023-06-19 | 2023-06-19 | 一种适用于物联网设备的mqtt集群系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116827987A (zh) |
-
2023
- 2023-06-19 CN CN202310727842.6A patent/CN116827987A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102761864B (zh) | 一种数据传输的方法、系统及设备 | |
CA2355462A1 (en) | A method and apparatus for supporting a multicast response to a unicast request for a document | |
CN113067882A (zh) | 一种消息处理方法、装置、电子设备及介质 | |
EP2494461A1 (en) | Hierarchical publish and subscribe system | |
US9762405B2 (en) | Hierarchical publish/subscribe system | |
US20070121641A1 (en) | Method and system for network services with a mobile vehicle | |
CN103516785A (zh) | 网页代理系统及其通信方法 | |
CN112187903B (zh) | 一种消息推送方法、装置及消息服务系统 | |
CN107302582B (zh) | 千万级物联网场景的数据采集及弱推送方法 | |
CN109787992A (zh) | 一种通过视联网访问专网的方法和装置 | |
CN114745364A (zh) | 基于mqtt协议的车联网数据分发系统及方法 | |
CN113098747A (zh) | 一种面向智慧轨交系统的实时软总线实现方法 | |
CN116827987A (zh) | 一种适用于物联网设备的mqtt集群系统 | |
CN109862094B (zh) | 一种基于流计算的水务设备数据共享方法及装置 | |
CN109413142B (zh) | 一种Linux下的iSCSI虚拟代理实现方法 | |
CN111427703A (zh) | 工业数据实时展示方法及系统 | |
CN108989467B (zh) | 集中式寻址方法 | |
CN112003749B (zh) | 一种主机信息添加方法、系统和电子设备 | |
CN114915656A (zh) | 一种车联网终端接入方法、装置、存储介质及电子设备 | |
CN110660205B (zh) | 报警信息处理方法、装置、电子设备及可读存储介质 | |
CN114489730A (zh) | 一种远程升级方法及其终端设备、计算机可读存储介质 | |
CN113766020A (zh) | 面向卫星导航接收机设备的远程控制系统及其控制方法 | |
CN102413454B (zh) | 一种数据传输的方法及aog系统 | |
CN113645108B (zh) | 一种智能家居设备监控系统及方法 | |
CN110932874B (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 |