一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种物联网消息信息传输方法、装置及服务器与流程

2022-06-01 13:29:21 来源:中国专利 TAG:


1.本发明涉及物联网领域,尤其涉及一种物联网消息传输方法、装置及服务器。


背景技术:

2.在已有的消息队列遥测传输(message queuing telemetry transport,mqtt)协议服务器的实现方案中,大部分实现方案基于单体式架构,各个功能模块之间耦合度较高,在水平扩展以及更新迭代都存在弊端。大部分支持分布式部署方案的实现中都存在跨mqtt代理(broker)的订阅关系信息同步的问题,部分解决方案通过将订阅关系持久化在分布式数据库中,但是对于订阅关系发生频繁变化时,跨mqtt broker的订阅关系信息同步将成为水平扩展的一个瓶颈。其次,目前已有的实现方案在应对服务器宕机,升级等场景发生时,对mqtt服务质量(quality of service,qos)1、2级别的数据不能保证数据安全可靠的传输,存在数据丢失的风险。


技术实现要素:

3.本发明提供一种物联网消息传输方法、装置及服务器,解决了mqtt系统中数据安全可靠性低、存在数据丢失风险的问题。
4.本发明的实施例提供一种物联网消息传输方法,应用于消息队列遥测传输mqtt服务器,包括:
5.通过mqtt服务器的mqtt代理broker模块的主节点,向mqtt服务器的所述mqtt broker模块的所有从节点发送提交持久化消息请求;
6.接收至少一个从节点反馈的所述提交持久化消息请求的提交持久化消息响应;
7.向mqtt设备发送所述提交持久化消息响应对应的消息。
8.本发明实施例还提供了一种物联网消息传输装置,应用于消息队列遥测传输mqtt服务器,包括:
9.mqtt代理broker模块,用于通过所述mqtt broker模块的主节点,用于向所述mqtt broker模块的所有从节点发送提交持久化消息请求;
10.第一接收模块,用于接收至少一个从节点反馈的所述提交持久化消息请求的提交持久化消息响应;
11.第一发送模块,用于向mqtt设备发送所述提交持久化消息响应对应的消息。
12.本发明实施例还提供了一种消息队列遥测传输mqtt服务器,包括:mqtt代理broker模块、连接管理模块、设备调度模块和鉴权服务模块,所述mott服务器中的程序被调用时通过所述mqtt代理broker模块、连接管理模块、设备调度模块和鉴权服务模块实现上述物联网消息传输方法的步骤。
13.本发明的上述技术方案的有益效果是:通过mqtt代理broker模块的主节点,向所述mqtt broker模块的所有从节点发送提交持久化消息请求;接收至少一个从节点反馈的所述提交持久化消息请求的提交持久化消息响应;向mqtt设备发送所述提交持久化消息响
应对应的消息。这样,在部分节点故障、网络延迟、网络分隔等情况下,多个节点也能对某个事情达成一致的看法,从而保证了主从节点数据的一致性,消息安全可靠的传输以及服务的连续性。
附图说明
14.图1表示本发明实施例的物联网消息传输方法的流程示意图之一;
15.图2表示本发明实施例的物联网消息传输方法的流程示意图之二;
16.图3表示本发明实施例的物联网消息传输装置的模块结构示意图;
17.图4表示本发明实施例的mqtt服务器的模块示意图。
具体实施方式
18.为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。在下面的描述中,提供诸如具体的配置和组件的特定细节仅仅是为了帮助全面理解本发明的实施例。因此,本领域技术人员应该清楚,可以对这里描述的实施例进行各种改变和修改而不脱离本发明的范围和精神。另外,为了清楚和简洁,省略了对已知功能和构造的描述。
19.应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。
20.在本发明的各种实施例中,应理解,下述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
21.在本技术所提供的实施例中,应理解,“与a相应的b”表示b与a相关联,根据a可以确定b。但还应理解,根据a确定b并不意味着仅仅根据a确定b,还可以根据a和/或其它信息确定b。
22.如图1所示,本发明的实施例提供了一种物联网消息传输方法,具体包括以下步骤:
23.步骤11:通过mqtt服务器的mqtt代理broker模块的主节点,向mqtt服务器的所述mqtt broker模块的所有从节点发送提交(commit)持久化消息请求。
24.当主节点服务器匹配到一条需要发给mqtt设备的消息,并且该消息状态(qos 1、2级别消息)需要持久化时,可以向其他从节点发布commit该消息的请求。
25.可选地,在步骤11之前,还可以包括:向所述mqtt broker模块的所有从节点发送建议(propose)持久化消息请求;接收至少一个从节点反馈的所述建议持久化消息请求的建议持久化消息响应;其中,所述消息持久化请求是基于所述建议持久化消息响应发送的。也就是说,当主节点服务器匹配到一条需要发给mqtt设备的消息,并且该消息状态(qos 1、2级别消息)需要持久化时,首先向其他从节点服务器发布propose该消息持久化的请求。从节点服务器收到propose该消息的持久化请求后,回复主节点propose的响应。
26.进一步地,步骤11为:当接收到所述所有从节点中第一数量的从节点反馈的建议
持久化消息响应时,向所述mqtt broker模块的所有从节点发送提交持久化消息请求。其中,所述第一数量大于或等于所述所有从节点的数量的1/2。也就是说,当主节点收到第一数量(如超过半数)从节点服务器的propose的响应后,会向其它从节点发布commit该消息的请求。
27.可选地,接收所述至少一个从节点反馈的所述建议持久化消息请求的建议持久化消息响应的步骤之后,还包括:当接收到所述所有从节点中第一数量的从节点反馈的建议持久化消息响应时,将所述建议持久化消息响应对应的消息持久化至所述mqtt broker模块的从节点的业务数据库db中。也就是说,从节点服务器收到propose该消息的持久化请求后,持久化到业务db中。采用了raft算法实现了服务主从备份,raft是一个共识算法,所谓共识是,即使在部分节点故障、网络延迟、网络分隔的情况下,多个节点也能对某个事情达成一致的看法。本发明实施例通过raft共识算法保证了主从节点数据的一致性,当主节点意外宕机的情况下,从节点与主节点的定时心跳检测异常后,其余节点会重新进行一轮选举选出主节点,旧主节点从宕机中恢复后,会成为从节点与新的主节点同步最新数据,这样可保证消息(mqtt qos 1、2级别的消息)安全可靠的传输以及服务的连续性。
28.步骤12:接收所述至少一个从节点反馈的所述提交持久化消息请求的提交持久化消息响应。
29.从节点服务器收到commit该消息的持久化请求后,回复主节点commit的响应。
30.步骤13:向mqtt设备发送所述提交持久化消息响应对应的消息。
31.主节点接收到所述至少一个从节点反馈的所述提交持久化消息请求的提交持久化消息响应后,向mqtt设备发送上述需要持久化的消息。
32.可选地,步骤13包括:当接收到所述所有从节点中第二数量的从节点反馈的提交持久化消息响应时,向mqtt设备发送所述提交持久化消息响应对应的消息。
33.可选地,步骤12之后,还包括:当接收到所述所有从节点中第二数量的从节点反馈的提交持久化消息响应时,将所述提交持久化消息响应对应的消息提交至所述mqtt broker模块的主节点的业务数据库db中。其中,所述第二数量大于或等于所述所有从节点的数量的1/2。也就是说,当主节点收到超过半数从节点服务器的commit的响应后,向本地业务db中commit该消息,至此该条消息在主从服务器节点已经达到一致。
34.下面将结合图2对本发明实施例的物联网消息传输方法做进一步说明。
35.步骤1:mqtt broker模块的主节点匹配到一条需要发给(publish)mqtt设备的消息,并且该消息状态(qos 1、2级别消息)需要持久化时,首先向其他mqtt broker模块的从节点(从节点1、从节点2)发布propose持久化消息的请求。
36.步骤2:从节点1、从节点2收到propose持久化消息的请求后,持久化到业务db中,并向主节点回复结果。
37.步骤3:当主节点收到超过半数从节点的回复结果后,会向其它从节点发布commit持久化消息的请求。
38.步骤4:从节点收到commit持久化消息的请求后,持久化到业务层的db中,数据已经一致,即raft commit成功提交到状态机存入db,并向主节点回复结果。
39.步骤5:当主节点收到超过半数从节点的回复结果后,向本地业务db中commit该消息,即raft commit成功提交到状态机存入db,至此该条消息在主从服务器节点已经达到一
致。
40.步骤6:主节点向mqtt设备发布(publish)该消息(qos 1、2级别消息)。
41.可选地,本发明实施例的方法还包括:通过mqtt服务器的连接管理模块,接收所述mqtt设备发送的连接报文。连接管理模块主要负责与设备保持tcp长连接,维护设备与mqtt broker模块之间的映射关系,实现了设备的session管理与tcp长连接的分离。这样设计的优点是:首先,设备的核心session在其他服务上,而连接管理模块仅仅负责和设备进行基本的tcp长连接保持,在其他服务更新升级或者短暂重启时,对设备的连接不会造成感知,提升用户体验。其次,可以对设备的session在连接管理模块进行负载均衡,使其session指定到某个特定的mqtt broker模块上。这样的设备连接管理与设备session管理相分离的架构弥补了单体式架构下设备连接在多台mqtt服务器时发布订阅必须跨服务器发布订阅的问题,解决了mqtt broker模块的水平扩展性能较低的问题。
42.本发明实施的方法还包括以下至少一项:通过所述连接管理模块,向所述mqtt服务器的设备调度模块发送设备调度信息查询请求;通过所述连接管理模块,接收所述mqtt服务器的设备调度模块基于所述设备调度信息查询请求反馈的mqtt broker模块的地址;通过所述连接管理模块,向所述mqtt broker模块发送设备连接请求。
43.本发明实施的方法还包括以下至少一项:通过所述mqtt broker模块,向所述mqtt服务器的鉴权服务模块发送设备鉴权请求。mqtt broker模块主要负责对设备的session管理,mqtt协议报文的解析,publish消息的匹配,以及订阅取消订阅等mqtt协议规定的逻辑处理工作。该模块具有主从备份的特点,可以在主节点宕机的情况下,从节点立刻切换成主节点模式提供服务能力,并且主从节点之间的数据通过raft算法保证一致性,提供更加安全可靠的数据传输和session管理能力。
44.本发明实施例的方法中,通过mqtt代理broker模块的主节点,向所述mqtt broker模块的所有从节点发送提交持久化消息请求;接收所述至少一个从节点反馈的所述提交持久化消息请求的提交持久化消息响应;向mqtt设备发送所述提交持久化消息响应对应的消息。这样,在部分节点故障、网络延迟、网络分隔等情况下,多个节点也能对某个事情达成一致的看法,从而保证了主从节点数据的一致性,消息安全可靠的传输以及服务的连续性。
45.以上实施例分别就本发明的物联网消息传输方法做出介绍,下面本实施例将结合附图对其对应的装置做进一步说明。
46.具体地,如图3所示,本发明实施例的物联网消息传输装置,应用于消息队列遥测传输mqtt服务器,包括:
47.mqtt代理broker模块310,用于通过mqtt broker模块的主节点向所述mqtt broker模块的所有从节点发送提交持久化消息请求;
48.第一接收模块320,用于接收所述至少一个从节点反馈的所述提交持久化消息请求的提交持久化消息响应;
49.第一发送模块330,用于向mqtt设备发送所述提交持久化消息响应对应的消息。
50.可选地,该装置还包括:
51.第二发送模块,用于向所述mqtt broker模块的所有从节点发送建议持久化消息请求;
52.第二接收模块,用于接收所述至少一个从节点反馈的所述建议持久化消息请求的
建议持久化消息响应;
53.其中,所述消息持久化请求是基于所述建议持久化消息响应发送的。
54.可选地,所述mqtt代理broker模块的主节点包括:
55.第一发送单元,用于当接收到所述所有从节点中第一数量的从节点反馈的建议持久化消息响应时,向所述mqtt broker模块的所有从节点发送提交持久化消息请求。
56.可选地,该装置还包括:
57.第一持久化模块,用于当接收到所述所有从节点中第一数量的从节点反馈的建议持久化消息响应时,将所述建议持久化消息响应对应的消息持久化至所述mqtt broker模块的从节点的业务数据库db中。
58.可选地,所述第一数量大于或等于所述所有从节点的数量的1/2。
59.可选地,所述第一发送模块包括:
60.第二发送单元,用于当接收到所述所有从节点中第二数量的从节点反馈的提交持久化消息响应时,向mqtt设备发送所述提交持久化消息响应对应的消息。
61.可选地,该装置还包括:
62.处理模块,用于当接收到所述所有从节点中第二数量的从节点反馈的提交持久化消息响应时,将所述提交持久化消息响应对应的消息提交至所述mqtt broker模块的主节点的业务数据库db中。
63.可选地,所述第二数量大于或等于所述所有从节点的数量的1/2。
64.可选地,该装置还包括:
65.连接管理模块,用于接收所述mqtt设备发送的连接报文。
66.可选地,所述连接管理模块还用于以下至少一项:
67.向所述mqtt服务器的设备调度模块发送设备调度信息查询请求;
68.接收所述mqtt服务器的设备调度模块基于所述设备调度信息查询请求反馈的mqtt broker模块的地址;
69.向所述mqtt broker模块发送mqtt设备连接请求。
70.可选地,所述mqtt broker模块还用于:向所述mqtt服务器的鉴权服务模块发送设备鉴权请求。
71.本发明的装置实施例是与上述方法的实施例对应的,上述方法实施例中的所有实现手段均适用于该装置的实施例中,也能达到相同的技术效果。该装置能够在部分节点故障、网络延迟、网络分隔等情况下,多个节点也能对某个事情达成一致的看法,从而保证了主从节点数据的一致性,消息安全可靠的传输以及服务的连续性。
72.本领域技术人员可以理解,实现上述实施例的全部或者部分步骤可以通过硬件来完成,也可以通过计算机程序来指示相关的硬件来完成,所述计算机程序包括执行上述方法的部分或者全部步骤的指令;且该计算机程序可以存储于一可读存储介质中,存储介质可以是任何形式的存储介质。
73.本发明实施例还提供了一种消息队列遥测传输mqtt服务器,包括:mqtt代理broker模块、连接管理模块、设备调度模块和鉴权服务模块,所述mott服务器中的程序被调用时通过所述mqtt代理broker模块、连接管理模块、设备调度模块和鉴权服务模块实现上述物联网消息传输方法的步骤。
74.如图4所示,本发明实施例的mqtt服务器包括:连接管理模块、设备调度模块、鉴权模块以及mqtt broker模块;
75.连接管理模块:主要负责与设备保持tcp长连接,维护设备与mqtt broker之间的映射关系。实现了设备的session管理与tcp长连接的分离。这样设计的优点是:首先,设备的核心session在其他服务上,而连接管理模块仅仅负责和设备进行基本的tcp长连接保持,在其他服务更新升级或者短暂重启时,对设备的连接不会造成感知,提升用户体验。其次,可以对设备的session在连接管理模块进行负载均衡,使其session指定到某个特定的mqtt broker上。这样的设备连接管理与设备session管理相分离的架构弥补了单体式架构下设备连接在多台mqtt服务器时发布订阅必须跨服务器发布订阅的问题,解决了mqtt broker模块的水平扩展性能较低的问题。
76.设备调度模块:主要负责设备应该由哪个mqtt broker模块来提供session管理服务,解决了设备与mqtt broker模块之间映射的问题,该模块是一种无状态设计,具有支持水平扩展、延迟低、高吞吐量的特点。
77.鉴权服务模块:主要负责对设备的连接信息合法性校验。该模块是业务相对单一,对水平扩展的支持很好,具有延迟低,高吞吐量的特点。
78.mqtt broker模块:主要负责对设备的session管理,mqtt协议报文的解析,publish消息的匹配,以及订阅取消订阅等mqtt协议规定的逻辑处理工作。该模块具有主从备份的特点,可以在主节点宕机的情况下,从节点立刻切换成主节点模式提供服务能力,并且主从节点之间的数据通过raft算法保证一致性,提供更加安全可靠的数据传输和会话(session)管理能力,例如当主节点意外宕机的情况下,从节点与主节点的定时心跳检测异常后,其余节点会重新进行一轮选举选出主节点,旧主节点从宕机中恢复后,会成为从节点与新的主节点同步最新数据,从而保证了消息(如mqtt qos 1、2级别的消息)安全可靠的传输以及服务的连续性。
79.这样,通过微服务架构设计实现的mqtt服务器克服了单体式架构可用性差的问题,避免了任何一个模块错误,导致整个系统宕机的风险,同时也增加了服务的水平扩展能力。在系统迭代升级,模块开发效率上也有很大优势。
80.本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述物联网消息传输方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(read-only memory,简称rom)、随机存取存储器(random access memory,简称ram)、磁碟或者光盘等。
81.此外,需要指出的是,在本发明的装置和方法中,显然,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本发明的等效方案。并且,执行上述系列处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺序执行,某些步骤可以并行或彼此独立地执行。对本领域的普通技术人员而言,能够理解本发明的方法和装置的全部或者任何步骤或者部件,可以在任何计算装置(包括处理器、存储介质等)或者计算装置的网络中,以硬件、固件、软件或者它们的组合加以实现,这是本领域普通技术人员在阅读了本发明的说明的情况下运用他们的基本编程技能就能实现的。
82.因此,本发明的目的还可以通过在任何计算装置上运行一个程序或者一组程序来
实现。所述计算装置可以是公知的通用装置。因此,本发明的目的也可以仅仅通过提供包含实现所述方法或者装置的程序代码的程序产品来实现。也就是说,这样的程序产品也构成本发明,并且存储有这样的程序产品的存储介质也构成本发明。显然,所述存储介质可以是任何公知的存储介质或者将来所开发出来的任何存储介质。还需要指出的是,在本发明的装置和方法中,显然,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本发明的等效方案。并且,执行上述系列处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺序执行。某些步骤可以并行或彼此独立地执行。
83.以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献