CN117221316A - 消息处理方法、消息队列遥测传输集群、装置及设备 - Google Patents
消息处理方法、消息队列遥测传输集群、装置及设备 Download PDFInfo
- Publication number
- CN117221316A CN117221316A CN202210626065.1A CN202210626065A CN117221316A CN 117221316 A CN117221316 A CN 117221316A CN 202210626065 A CN202210626065 A CN 202210626065A CN 117221316 A CN117221316 A CN 117221316A
- Authority
- CN
- China
- Prior art keywords
- message
- master node
- node
- control device
- slave
- 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
- 230000005540 biological transmission Effects 0.000 title claims abstract description 66
- 238000003672 processing method Methods 0.000 title claims abstract description 29
- 238000000034 method Methods 0.000 claims abstract description 55
- 230000001360 synchronised effect Effects 0.000 claims description 78
- 238000012545 processing Methods 0.000 claims description 39
- 238000003860 storage Methods 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 14
- 238000005516 engineering process Methods 0.000 abstract description 15
- 230000008569 process Effects 0.000 abstract description 8
- 238000010586 diagram Methods 0.000 description 15
- 238000004891 communication Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 5
- 238000007726 management method Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Landscapes
- Mobile Radio Communication Systems (AREA)
Abstract
本申请公开一种消息处理方法、消息队列遥测传输集群、装置及设备,可应用于即时通讯、物联网技术等各种场景。该方法适用于消息队列遥测传输集群中的控制设备,消息队列遥测传输集群还包括第一主节点与一个或多个第一从节点,方法包括:获取消息写入方设备写入的第一消息,第一消息包括消息写入方设备对应的订阅方设备订阅的消息;将第一消息发送至第一主节点,使第一主节点将第一消息同步至一个或多个第一从节点;向消息写入方设备发送第一消息已写入完成的第一提示信息,第一提示信息用于指示所述消息写入方设备向所述控制设备写入下一消息。可以节省多个消息被写入消息队列遥测传输集群的写入过程的总时长,提高了消息写入的效率。
Description
技术领域
本申请涉及通信技术领域,具体涉及一种消息处理方法、消息队列遥测传输集群、装置及设备。
背景技术
MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),因其简单、轻便,在物联网场景下常作为多样化物联网设备的接入协议,具体是一种适用于物联网的基于发布/订阅(publish/subscribe)模式的"轻量级"通讯协议,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。
MQTT Broker(MQTT消息服务器),它是运行了MQTT消息服务器软件的一台服务器或一个服务器集群。MQTT Broker负责接收来自客户端的网络连接,并处理客户端的订阅/取消订阅(subscribe/unsubscribe)、消息发布(publish)请求,同时也会将客户端发布的消息转发给其他订阅者。
相关技术中,针对MQTT集群,当有消息到来时,该消息将被同步写入所有集群中的所有节点,全部写入成功后,消息写入方才可以向MQTT集群写入下一消息,当有多个消息需要写入MQTT集群时,消息的写入速度消耗时间较长,消息写入方向MQTT集群写入消息的效率较低。
发明内容
本申请实施例提供一种消息处理方法、消息队列遥测传输集群、装置及设备,可以大大节省多个消息被写入消息队列遥测传输集群的写入过程的总时长,提高了消息写入的效率。
一方面,本申请实施例提供一种消息处理方法,适用于消息队列遥测传输集群中的控制设备,所述消息队列遥测传输集群还包括第一主节点与一个或多个第一从节点,所述方法包括:
获取消息写入方设备写入的第一消息,所述第一消息包括所述消息写入方设备对应的订阅方设备订阅的消息;
将所述第一消息发送至所述第一主节点,使所述第一主节点将所述第一消息同步至所述一个或多个第一从节点;
向所述消息写入方设备发送所述第一消息已写入完成的第一提示信息,所述第一提示信息用于提示所述消息写入方设备向所述控制设备写入下一消息。
另一方面,本申请实施例提供一种消息处理方法,适用于消息队列遥测传输集群中的第一主节点对应的设备,所述消息队列遥测传输集群还包括控制设备与一个或多个第一从节点,所述方法包括:
接收所述控制设备发送的第一消息,所述第一消息包括消息写入方设备对应的订阅方设备订阅的消息;
将所述第一消息同步至所述一个或多个第一从节点;
接收所述控制设备发送的下一消息,并将所述下一消息同步至所述一个或多个第一从节点,其中,所述下一消息为所述控制设备在将所述第一消息发送至所述第一主节点对应的设备后,向所述消息写入方设备发送所述第一消息已写入完成的第一提示信息,使所述消息写入方设备向所述控制设备写入的消息。
另一方面,本申请实施例提供一种消息处理方法,适用于消息队列遥测传输集群中的一个或多个第一从节点中的任一第一从节点对应的设备,所述消息队列遥测传输集群还包括第一主节点与控制设备,所述方法包括:
按照预设周期向所述第一主节点发送第一消息同步请求,使得所述第一主节点根据所述第一消息同步请求确定对应的第一消息;
接收所述第一主节点根据所述第一消息同步请求确定的所述第一消息;
按照所述预设周期向所述第一主节点发送第二消息同步请求,使得所述第一主节点根据所述第二消息同步请求确定所述第一消息的下一消息;
接收所述第一主节点确定的所述下一消息;
其中,所述第一消息由所述的第一主节点接收自所述控制设备,且由所述控制设备接收自消息写入方设备,所述下一消息为所述控制设备在将所述第一消息发送至所述第一主节点后,向所述消息写入方设备发送所述第一消息已写入完成的第一提示信息,使所述消息写入方设备向所述控制设备写入的消息。
另一方面,本申请实施例提供一种消息队列遥测传输集群,包括控制设备、第一主节点,以及一个或多个第一从节点;其中:
所述控制设备用于:获取消息写入方设备写入的第一消息,所述第一消息包括所述消息写入方设备对应的订阅方设备订阅的消息;将所述第一消息发送至所述第一主节点;
所述第一主节点用于:将所述第一消息同步至所述一个或多个第一从节点;
所述控制设备还用于将所述第一消息发送至所述第一主节点后,向所述消息写入方设备发送所述第一消息已写入完成的第一提示信息,所述第一提示信息用于提示所述消息写入方设备向所述控制设备写入下一消息;
所述第一从节点用于:按照预设周期向所述第一主节点发送第一消息同步请求,使得所述第一主节点根据所述第一消息同步请求确定所述第一消息。
另一方面,本申请实施例提供一种消息处理装置,适用于消息队列遥测传输集群中的控制设备,所述消息队列遥测传输集群还包括第一主节点与一个或多个第一从节点,所述装置包括:
获取单元,用于获取消息写入方设备写入的第一消息,所述第一消息包括所述消息写入方设备对应的订阅方设备订阅的消息;
发送单元,用于将所述第一消息发送至所述第一主节点,使所述第一主节点将所述第一消息同步至所述一个或多个第一从节点;
所述发送单元,还用于向所述消息写入方设备发送所述第一消息已写入完成的第一提示信息,所述第一提示信息用于提示所述消息写入方设备向所述控制设备写入下一消息。
另一方面,本申请实施例提供一种消息处理装置,适用于消息队列遥测传输集群中的第一主节点对应的设备,所述消息队列遥测传输集群还包括控制设备与一个或多个第一从节点,所述装置包括:
接收单元,用于接收所述控制设备发送的第一消息,所述第一消息包括消息写入方设备对应的订阅方设备订阅的消息;
同步单元,用于将所述第一消息同步至所述一个或多个第一从节点;
所述接收单元,还用于接收所述控制设备发送的下一消息,并将所述下一消息同步至所述一个或多个第一从节点,其中,所述下一消息为所述控制设备在将所述第一消息发送至所述第一主节点对应的设备后,向所述消息写入方设备发送所述第一消息已写入完成的第一提示信息,使所述消息写入方设备向所述控制设备写入的消息。
另一方面,本申请实施例提供一种消息处理装置,适用于消息队列遥测传输集群中的一个或多个第一从节点中的任一第一从节点对应的设备,所述消息队列遥测传输集群还包括第一主节点与控制设备,所述装置包括:
发送单元,用于按照预设周期向所述第一主节点发送第一消息同步请求,使得所述第一主节点根据所述第一消息同步请求确定对应的第一消息;
接收单元,用于接收所述第一主节点根据所述第一消息同步请求确定的所述第一消息;
所述发送单元,还用于按照所述预设周期向所述第一主节点发送第二消息同步请求,使得所述第一主节点根据所述第二消息同步请求确定所述第一消息的下一消息;
所述接收单元,还用于接收所述第一主节点确定的所述下一消息;
其中,所述第一消息由所述的第一主节点接收自所述控制设备,且由所述控制设备接收自消息写入方设备,所述下一消息为所述控制设备在将所述第一消息发送至所述第一主节点后,向所述消息写入方设备发送所述第一消息已写入完成的第一提示信息,使所述消息写入方设备向所述控制设备写入的消息。
另一方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序适于处理器进行加载,以执行如上任一实施例所述的消息处理方法。
另一方面,本申请实施例提供一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有计算机程序,所述处理器通过调用所述存储器中存储的所述计算机程序,用于执行如上任一实施例所述的消息处理方法。
另一方面,本申请实施例提供一种计算机程序产品,包括计算机指令,所述计算机指令被处理器执行时实现如上任一实施例所述的消息处理方法。
本申请实施例提供的的技术方案,通过在消息队列遥测传输集群中设置控制设备、第一主节点与一个或多个第一从节点,通过控制设备获取消息写入方设备写入的第一消息,所述第一消息包括所述消息写入方设备对应的订阅方设备订阅的消息;将所述第一消息发送至所述第一主节点,使所述第一主节点将所述第一消息同步至所述一个或多个第一从节点;向所述消息写入方设备发送所述第一消息已写入完成的第一提示信息,所述第一提示信息用于提示所述消息写入方设备向所述控制设备写入下一消息的方案,相对于相关技术中,当消息队列遥测传输集群中的各个节点全部获取到第一消息后,消息写入方设备才可以写入下一消息的方案,大大节省了多个消息被写入消息队列遥测传输集群的过程的总时长,提高了消息写入的效率。
附图说明
图1为本申请实施例提供的一种消息队列遥测传输集群的结构示意图。
图2a为本申请实施例提供的一种消息处理方法的流程示意图。
图2b为本申请实施例提供的另一种消息队列遥测传输集群的结构示意图。
图2c为本申请实施例提供的一种第一主节点创建过程示意图。
图3a为本申请实施例提供的另一种消息处理方法的流程示意图。
图3b为本申请实施例提供的一种第一消息标识序列的示意图。
图3c为本申请实施例提供的第一节点标识列表与第二节点标识列表的示意图。
图3d为本申请实施例提供的另一种第一消息标识序列的示意图。
图4为本申请实施例提供的另一种消息处理方法的流程示意图。
图5为本申请实施例提供的消息处理方法的时序流程示意图。
图6为本申请实施例提供的消息处理装置的结构示意图。
图7为本申请实施例提供的消息处理装置的结构示意图。
图8为本申请实施例提供的消息处理装置的结构示意图。
图9为本申请实施例提供的计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
本申请实施例可应用于即时通讯、物联网技术等各种场景。
本申请实施例提供一种消息处理方法、消息队列遥测传输集群、装置及设备。具体地,本申请实施例的消息处理方法可以由计算机设备执行,其中,该计算机设备可以为服务器。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
首先,在对本申请实施例进行描述的过程中出现的部分名词或者术语作如下解释:
单点故障:是指系统中一点失效,就会让整个系统无法运作的部件,换句话说,单点故障即会整体故障。
服务实例:可对外提供服务能力的程序集。
AC:Wireless Access Point Controller,无线控制器,是一种网络设备;
MQTT(消息队列遥测传输)是ISO标准(ISO/IEC PRF 20922)下基于发布/订阅范式的消息协议。它工作在TCP/IP协议族上,是为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的发布/订阅型消息协议,为此,它需要一个消息中间件。
MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。在很多情况下,包括受限的环境中,如:机器与机器(M2M)通信和物联网(IoT)。其在,通过卫星链路通信传感器、偶尔拨号的医疗设备、智能家居、及一些小型化设备中已广泛使用。
集群是一组相互独立的、通过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理。一个客户与集群相互作用时,集群像是一个独立的服务器。集群配置是用于提高可用性和可缩放性。
物联网(Internet of Things,简称IoT)是指通过各种信息传感器、射频识别技术、全球定位系统、红外感应器、激光扫描器等各种装置与技术,实时采集任何需要检测、连接、互动的物体或过程,采集其声、光、热、电、力学、化学、生物、位置等各种需要的信息,通过各类可能的网络接入,实现物与物、物与人的泛在连接,实现对物品和过程的智能化感知、识别和管理。物联网是一个基于互联网、传统电信网等的信息承载体,它让所有能够被独立寻址的普通物理对象形成互联互通的网络。
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。ZooKeeper包含一个简单的原语集,提供Java和C的接口。
无线AP(Access Point):即无线接入点,它用于无线网络的无线交换机,也是无线网络的核心。无线AP是移动计算机用户进入有线网络的接入点,主要用于宽带家庭、大楼内部以及园区内部,可以覆盖几十米至上百米。无线AP(又称会话点或存取桥接器)是一个包含很广的名称,它不仅包含单纯性无线接入点(无线AP),同样也是无线路由器(含无线网关、无线网桥)等类设备的统称。
AC(Wireless Access Point Controller):无线控制器,是一种网络设备,用来集中化控制无线AP,是一个无线网络的核心,负责管理无线网络中的所有无线AP,对AP管理包括:下发配置、修改相关配置参数、射频智能管理、接入安全控制等。
云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。云技术基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
相关技术中,在企业级物联网设备管理场景中,大量企业级物联网设备,如WIFI设备,如AC、AP、等通过MQTT Broker接入后端云服务,云服务可为物联网设备提供订阅服务,当MQTT Broker确定物联网设备订阅的消息可被消费后,可将消息发送至物联网设备供其消费,并且,所有订阅了相同主题的物联网设备都会收到全量的消息,不利于物联网设备的扩展。
针对MQTT集群,当物联网设备订阅的消息到来时,该消息将被同步写入所有集群中的所有节点,全部写入成功后,消息写入方,即后端云服务才可以向MQTT集群写入下一消息,当有多个消息需要写入MQTT集群时,消息的写入速度消耗时间较长,消息写入方向MQTT集群写入消息的效率较低。
本申请提供一种方案,当消息队列遥测传输集群中的第一主节点获取到第一消息后,消息写入方设备即可以写入下一消息,相对于相关技术中,当消息队列遥测传输集群中的各个节点全部获取到第一消息后,消息写入方设备才可以写入下一消息的方案,大大节省了多个消息被写入消息队列遥测传输集群的过程的总时长,提高了消息写入的效率。
并且,现有的MQTT broker的实现方案大多不支持集群部署存在单点故障,本方案提供一种分布式MQTT集群主从副本同步方案,使主从节点之间以异步方式进行同步数据,既能保证数据写入、消费的高效性,又能确保集群异常时消息的可靠性。
以下结合具体实施例对本方案做详细的说明。
请参考图1,图1为本申请实施例提供的消息队列遥测传输集群的结构示意图,该消息队列遥测传输集群10包括控制设备11、第一主节点12,以及一个或多个第一从节点13;
可选地,第一主节点12,以及一个或多个第一从节点13中的任一第一从节点13可以为软件模块,也可以为MQTT消息服务器,其中:
所述控制设备11用于:获取消息写入方设备写入的第一消息,所述第一消息包括所述消息写入方设备对应的订阅方设备订阅的消息;将所述第一消息发送至所述第一主节点12;
所述第一主节点12用于:将所述第一消息同步至所述一个或多个第一从节点13;
所述控制设备11还用于将所述第一消息发送至所述第一主节点12后,向所述消息写入方设备发送所述第一消息已写入完成的第一提示信息,所述第一提示信息用于提示所述消息写入方设备向所述控制设备写入下一消息;
所述第一从节点13用于:按照预设周期向所述第一主节点12发送第一消息同步请求,使得所述第一主节点12根据所述第一消息同步请求确定所述第一消息。
可选地,所述消息队列遥测传输集群与所述消息写入方设备通过网络连接,以及所述消息队列遥测传输集群与所述订阅方设备通过网络连接,其中,网络连接的方式可以为有线网络连接,也可以为无线网络连接。
可选地,本申请实施例提供了一种消息处理方法,图2a为该消息处理方法的流程示意图,该消息处理方法可适用于前述消息队列遥测传输集群,具体地,该消息处理方法适用于消息队列遥测传输集群中的控制设备,所述消息队列遥测传输集群还包括第一主节点与一个或多个第一从节点,所述方法包括以下步骤S201-S203:
S201、获取消息写入方设备写入的第一消息,所述第一消息包括所述消息写入方设备对应的订阅方设备订阅的消息;
可选地,所述消息写入方设备为第一消息的被订阅方设备(即消息写入方设备),具体可以为为所述订阅方设备提供订阅服务的第三方服务的服务器;
在本申请的一些可选的实施例中,参见图2b所示,前述订阅方设备可以为AC、AP,以及其它物联网设备,其它物联网设备可以包括智能家电、用于管理其它电子设备的控制设备等。其中,AC可以用于供部分AP接入消息队列遥测传输集群。
S202、将所述第一消息发送至所述第一主节点,使所述第一主节点将所述第一消息同步至所述一个或多个第一从节点;
可选地,第一主节点在将所述第一消息同步至所述一个或多个第一从节点时,可具体包括:
针对所述一个或多个第一从节点中的各第一从节点,获取所述第一从节点的第一消息同步请求;
根据所述第一消息同步请求确定对应的待同步消息;
若确定所述待同步消息包含所述第一消息,则将所述第一消息同步至所述第一从节点。
S203、向所述消息写入方设备发送所述第一消息已写入完成的第一提示信息,所述第一提示信息用于提示所述消息写入方设备向所述控制设备写入下一消息。
即消息写入方设备在接收到第一提示信息后,即确定所述第一消息已写入完成。
在申请的一些可选的实施例中,所述方法还包括以下步骤S21-S23:
S21、当检测到与第二主节点的连接中断时,向所述一个或多个从节点发送对应的通知信息,所述第二主节点为所述消息队列遥测传输集群中,所述第一主节点创建之前的主节点;
可选地,前述控制设备中,可配置有zookeeper,当控制设备检测到其与第二主节点的连接中断,或第二主节点出现其它异常时,控制设备则向一个或多个第一从节点发送对应的通知信息。
S22、接收所述一个或多个第一从节点在获取到所述通知信息后,发送的主节点创建请求;
具体地,可参见图2c前述一个或多个第一从节点各自接收到该通知信息后,则向控制设备发送主节点创建请求,以向控制设备中的zookeeper申请将自身创建为第一主节点。
S23、根据所述主节点创建请求创建所述第一主节点。
可选地,控制设备将最早接收到的主节点创建请求对应的第四从节点设置为第一主节点,控制设备将用于指示所述第四从节点已被成功设置为第一主节点的反馈信息,反馈至所述第四从节点,并将所述第四从节点为第一主节点的指示信息存储于本地。
控制设备在将第四从节点设置为第一主节点后,所述方法还包括:向接收到的其它主节点创建请求对应的第一从节点,发送用于指示主节点创建失败的失败提示信息。
在本方案中,可利用中间件zookeeper来进行第一主节点选举,第一个节点设备上线时,可向zookeeper申请将自身创建为一个临时的第一主节点,后面新上线的节点设备,也会尝试向zookeeper创建第一主节点,由于第一主节点已存在则会创建失败。然后新上线的节点设备则开始检测第一主节点,当第一主节点出现异常,第一主节点与zookeeper的会话连接断开后,所有检测第一主节点的第一从节点都会收到通知,该所有检测第一主节点的第一从节点会竞争创建第一主节点,最终主节点创建请求通过的第一从节点成为第一主节点。
通过本申请的方案,通过在消息队列遥测传输集群中设置控制设备、第一主节点与一个或多个第一从节点,通过控制设备获取消息写入方设备写入的第一消息,所述第一消息包括所述消息写入方设备对应的订阅方设备订阅的消息;将所述第一消息发送至所述第一主节点,使所述第一主节点将所述第一消息同步至所述一个或多个第一从节点;向所述消息写入方设备发送所述第一消息已写入完成的第一提示信息,所述第一提示信息用于提示所述消息写入方设备向所述控制设备写入下一消息的方案,相对于相关技术中,当消息队列遥测传输集群中的各个节点全部获取到第一消息后,消息写入方设备才可以写入下一消息的方案,大大节省了多个消息被写入消息队列遥测传输集群的过程的总时长,提高了消息写入的效率。
为了对本方案进行更详细的说明,本申请还提供一种消息处理方法,图3a为该种消息处理方法的流程示意图,该消息处理方法适用于消息队列遥测传输集群中的第一主节点对应的设备,其中,第一主节点对应的设备可以为第一主节点本身,也可以为部署有第一主节点的设备,所述消息队列遥测传输集群还包括控制设备与一个或多个第一从节点,所述方法包括以下步骤S301-S302:
S301、接收所述控制设备发送的第一消息,所述第一消息包括消息写入方设备对应的订阅方设备订阅的消息;
S302、将所述第一消息同步至所述一个或多个第一从节点;
S303、接收所述控制设备发送的下一消息,并将所述下一消息同步至所述一个或多个第一从节点,其中,所述下一消息为所述控制设备在将所述第一消息发送至所述第一主节点对应的设备后,向所述消息写入方设备发送所述第一消息已写入完成的第一提示信息,使所述消息写入方设备向所述控制设备写入的消息。
可选地,S302中,所述将所述第一消息同步至所述一个或多个第一从节点,包括以下S3021-S3023:
S3021、针对所述一个或多个第一从节点中的各第一从节点,获取所述第一从节点的第一消息同步请求;
其中,所述第一消息同步请求中包含第二消息的消息标识,所述第二消息为所述第一从节点最近一次已同步的消息。
S3022、根据所述第一消息同步请求确定对应的待同步消息;
具体地,所述根据所述第一消息同步请求确定对应的待同步消息,包括以下步骤S31-S32:
S31、获取第一消息标识序列,所述第一消息标识序列中包含多个消息标识,所述多个消息标识中的各消息标识对应一候选同步消息,所述第一主节点获取所述候选同步消息的时刻越晚,所述候选同步消息对应的消息标识在第一消息标识序列中的排序越接近尾部;即,若候选同步消息1被第一主节点获取的时刻早于候选同步消息2被第一主节点获取的时刻,则候选同步消息1对应的消息标识在第一消息标识序列中的排序,在候选同步消息2对应的消息标识在第一消息标识序列中的排序之前。可选地,所述候选同步消息为第一主节点接收自控制设备,且需由第一主节点同步至所述第一从节点的消息。
可选地,所述候选同步消息为第一主节点接收自控制设备,且需由第一主节点同步至所述第一从节点的消息。
其中,所述候选同步消息由所述控制设备接收自前述消息写入方设备。
S32、基于所述第二消息的消息标识与所述第一消息标识序列确定所述待同步消息。
可选地,S32中,基于所述第二消息的消息标识与所述第一消息标识序列确定所述待同步消息,包括以下S321-S323:
S321、在所述第一消息标识序列中查询到与所述第二消息的消息标识相同的第一消息标识;
S322、获取所述第一消息标识序列中,位于所述第一消息标识与所述第一消息标识序列的尾部的结尾消息标识之间的第二消息标识序列,其中,所述结尾消息标识包含于所述第二消息标识序列,且第二消息标识序列不包含第一消息标识,第二消息标识序列中包含的消息标识的个数可以为一个也可以为多个。
S323、将所述第二消息标识序列对应的候选同步消息作为所述待同步消息。
在本申请的一些可选的实施例中,第一消息标识序列可参见图3b所示,第一消息标识序列中的:“1”、“2”、“3”、“4”、“5”,以及“6”,则为多个消息标识,即消息标识可以为索引值,索引值由第一消息标识序列的首部至尾部,由小变大。
可选地,当第二消息的消息标识为“4”时,第一消息标识序列中与“4”相同的第一消息标识为“4”,位于所述第一消息标识“4”与所述第一消息标识序列尾部的结尾消息标识“6”之间的第二消息标识序列包含的消息标识为5与6。
其中,第一从节点按照所述第一消息标识序列中自首至尾的顺序,同步第一主节点中所述第一消息标识序列中的各消息标识对应的候选同步消息。
S3023、若确定所述待同步消息包含所述第一消息,则将所述第一消息同步至所述第一从节点。
可选地,前述各候选同步消息的消息标识可以由第一主节点创建。
在本申请的另一些可选的实施例中,所述第一消息同步请求中还包括所述第二消息的消息标识对应的第一主题标识,获取第一消息标识序列,包括:
根据所述第一主题标识与预设对应关系确定所述第一消息标识序列。
其中,第一主题标识为第二消息所属的主题的主题标识,本方案中的主题可以为用于控制订阅方设备的控制指令、控制规则、用于对所述订阅方设备的属性进行设置的设置指令等等。
可选地,所述方法还包括以下步骤S01-S03:
S01、创建所述第一消息的消息标识;
S02、将所述第一消息的消息标识添加至所述第一消息标识序列。
在本申请的一些可选的实施例中,所述第一消息同步请求中还包括所述第一从节点的第一节点标识,所述方法还包括:
根据所述第一节点标识,确定所述第一主节点中,需被所述第一从节点同步的总消息的第一总消息数量,以及所述第一从节点已从所述第一主节点中同步过的消息的第一消息数量;
其中,需被所述第一从节点同步的总消息为第一主节点接收自控制设备,且需由第一主节点同步至所述第一从节点的全部消息。
可选定,当需被所述第一从节点同步的全部消息仅属于一种主题时,需被所述第一从节点同步的总消息与前述候选同步消息相同。
可选定,当需被所述第一从节点同步的全部消息中至少2个消息涉及不同主题时,需被所述第一从节点同步的总消息为:需被所述第一从节点同步的全部消息,而候选同步消息可以仅为属于前述全部消息涉及的多个主题中的其中一个主题的消息。
若所述第一总消息数量与所述第一消息数量的差值不小于预设差值,则将所述第一节点标识从第一节点标识列表中移至第二节点标识列表;
其中,所述第一节点标识列表中存储有一个或多个第二节点标识,针对所述第二节点标识对应的第二从节点,所述第一主节点中的需被所述第二从节点同步的第二总消息数量,与所述第二从节点已从所述第一主节点中同步过的消息的第二消息数量的差值小于预设差值;所述第二节点标识列表中存储有一个或多个第三节点标识,针对所述第三节点标识对应的第三从节点,所述第一主节点中的需被所述第三从节点同步的第三总消息数量,与所述第三从节点已从所述第一主节点中同步过的消息的第三消息数量的差值不小于预设差值。
可选地,如图3c所示,“服务器1”、“服务器2”,以及“服务器3”为第一节点标识列表中的第二节点标识,“服务器4”及“服务器5”为第二节点标识列表中的第三节点标识。
通过将消息队列遥测传输集群中的多个第一从节点对应的多个第一节点标识存储在不同的节点标识列表中,可以使得当消息队列遥测传输集群中,加入了一个新的第一从节点时,若该第一从节点没有存储任何消息,需要从第一主节点从头开始同步消息,可能会耗费很长的时间,如果此时有新消息达到第一主节点,第一主节点若等待该新的第一从节点将消息同步完成则需要耗费很长时间。因此,在第一主节点中设计两个节点标识列表,第一节点标识列表用于存储已经追上第一主节点的第一从节点的节点标识;第二节点标识列表用于存储未追上第一主节点的第一从节点的节点标识;第一主节点在消费消息时,可只考虑第一节点标识列表中的各节点标识对应的第一从节点从第一主节点同步消息的同步情况。其中,本方案中的“消费”可以指对消息的处理或响应。
可选地,所述第一消息标识序列还包括所述各候选同步消息的消费情况,其中,候选同步消息的消费情况,与候选同步消息的消息标识对应,所述消费情况包括可消费与不可消费中的任一种,所述还包括:
针对所述各候选同步消息,检测所述候选同步消息是否被所述消息队列遥测传输集群中的目标从节点同步完成,若是,则将所述第一消息标识序列中,候选同步消息的消费情况设置为可消费,若否,则不处理,所述目标从节点为所述消息队列遥测传输集群中的全部第一从节点,或对应的节点标识位于第一节点标识列表的全部第一从节点。
例如,可参见图3d所示,第一消息标识序列中的消息标识“5”对应的候选同步消息被所述消息队列遥测传输集群中的目标从节点同步完成时,则将“5”对应的消费情况由“不可被消费”修改为“可被消费”。
当候选同步消息的消费情况为“可被消费”时,所述方法还包括:将所述候选同步消息下发至所述订阅方设备。
可选地,第一主节点可根据消息队列遥测传输集群中各个第一从节点对候选同步消息的同步情况,更新可消费消息对应的消息标识的偏移量。
本申请的方案中,只有第一主节点负责所有消息的写入和消费,第一从节点采用定时更新的方式异步从第一主节点同步消息,既保证了数据的可靠性,又避免了在消息同步中消耗过多时间影响消费性能。
图4为本申请实施例提供的又一种消息处理方法的流程示意图,该消息处理方法,适用于消息队列遥测传输集群中的一个或多个第一从节点中的任一第一从节点对应的设备,所述消息队列遥测传输集群还包括第一主节点与控制设备,所述方法包括S401-S404:
S401、按照预设周期向所述第一主节点发送第一消息同步请求,使得所述第一主节点根据所述第一消息同步请求确定对应的第一消息;
S402、接收所述第一主节点根据所述第一消息同步请求确定的所述第一消息;
S403、按照所述预设周期向所述第一主节点发送第二消息同步请求,使得所述第一主节点根据所述第二消息同步请求确定所述第一消息的下一消息;
S404、接收所述第一主节点确定的所述下一消息;
其中,所述第一消息由所述的第一主节点接收自所述控制设备,且由所述控制设备接收自消息写入方设备,所述下一消息为所述控制设备在将所述第一消息发送至所述第一主节点后,向所述消息写入方设备发送所述第一消息已写入完成的第一提示信息,使所述消息写入方设备向所述控制设备写入的消息。
具体地,可选地,第一主节点在将所述第一消息同步至所述一个或多个第一从节点时,可具体包括:
针对所述一个或多个第一从节点中的各第一从节点,获取所述第一从节点的第一消息同步请求;
根据所述第一消息同步请求确定对应的待同步消息;
若确定所述待同步消息包含所述第一消息,则将所述第一消息同步至所述第一从节点。
可选地,所述方法还包括:
S41、若检测到所述控制设备发送的用于指示所述控制设备与第二主节点的连接中断的通知信息,则向所述控制设备发送主节点创建请求;
S42、接收所述控制设备根据所述主节点创建请求的反馈信息;
S43、若所述反馈信息指示创建成功,则更新自身的设备属性为第一主节点,若所述反馈信息指示创建失败,则不处理;其中,所述第二主节点为所述消息队列遥测传输集群中,所述第一主节点创建之前的主节点。
可选地,前述控制设备中,可配置有zookeeper,当控制设备检测到其与第二主节点的连接中断,或第二主节点出现其它异常时,控制设备则向一个或多个第一从节点发送对应的通知信息。
具体地,前述一个或多个第一从节点各自接收到该通知信息后,则向控制设备发送主节点创建请求,以向控制设备中的zookeeper申请将自身创建为第一主节点。
可选地,控制设备将最早接收到的主节点创建请求对应的第四从节点设置为第一主节点,控制设备将用于指示所述第四从节点已被成功设置为第一主节点的反馈信息,反馈至所述第四从节点,并标记所述第四从节点为第一主节点。
控制设备在将第四从节点设置为第一主节点后,所述方法还包括:向接收到的其它主节点创建请求对应的第一从节点,发送用于指示主节点创建失败的失败提示信息。
可选地,上述方法还包括:
获取所述第一主节点发送的查询信息;
根据所述查询信息确定是否存储有所述第一主节点未存储过的目标消息,若有,则将所述目标消息反馈至所述第一主节点,若无,则不处理,或反馈预设的查询失败标识。
通过该方案,可使得第一主节点包含消息队列遥测传输集群中最新的消息。
本申请的方案,通过在消息队列遥测传输集群中设置控制设备、第一主节点与一个或多个第一从节点,通过一个或多个第一从节点任一个第一从节点设备按照预设周期向所述第一主节点发送第一消息同步请求,使得所述第一主节点根据所述第一消息同步请求确定对应的第一消息;接收所述第一主节点根据所述第一消息同步请求确定的所述第一消息;按照所述预设周期向所述第一主节点发送第二消息同步请求,使得所述第一主节点根据所述第二消息同步请求确定所述第一消息的下一消息;接收所述第一主节点确定的所述下一消息;其中,所述第一消息由所述的第一主节点接收自所述控制设备,且由所述控制设备接收自消息写入方设备,所述下一消息为所述控制设备在将所述第一消息发送至所述第一主节点后,向所述消息写入方设备发送所述第一消息已写入完成的第一提示信息,使所述消息写入方设备向所述控制设备写入的消息的方案,大大节省了多个消息被写入消息队列遥测传输集群的过程的总时长,提高了消息写入的效率。
以下结合具体的消息处理时序对本方案做进一步的说明,具体可参见图5所示,
S1、消息写入方设备向控制设备写入消息a(可以为前述第一消息);
S2、控制设备获取到消息a后,向第一主节点写入消息a;
S3、第一主节点将消息a存入本地日志,并将消息a的消息标识加入消息标识序列(可以为前述第一消息标识序列);
S4、第一从节点1向第一主节点申请复制(即同步)消息a;
S5、第一主节点发送消息a至第一从节点1;
S6、第一从节点1向第一主节点发送消息a复制成功的提示信息;
S7、第一主节点记录第一从节点1复制消息a成功;
S8、第一从节点2向第一主节点申请复制(即同步)消息a;
S9、第一主节点发送消息a至第一从节点2;
S10、第一从节点2向第一主节点发送消息a复制成功的提示信息;
S11、第一主节点记录第一从节点2复制消息a成功;
S12、第一主节点确定第一从节点1与第二从节点2复制消息a成功后,将消息a置为可消费消息;
S13、将消息a下发至订阅方设备。
其中,当控制设备向第一主节点写入消息a后,可在步骤S01向消息写入方设备发送第一提示信息,使所述消息写入方在步骤S02向第一主节点写入消息a的下一消息,消息b。
上述所有的技术方案,可以采用任意结合形成本申请的可选实施例,在此不再一一赘述。
为便于更好的实施本申请实施例的消息处理方法,本申请实施例还提供一种消息处理装置,适用于消息队列遥测传输集群中的控制设备,图6为该消息处理装置60的结构示意图,所述消息队列遥测传输集群还包括第一主节点与一个或多个第一从节点,所述消息处理装置60包括:
获取单元61,用于获取消息写入方设备写入的第一消息,所述第一消息包括所述消息写入方设备对应的订阅方设备订阅的消息;
发送单元62,用于将所述第一消息发送至所述第一主节点,使所述第一主节点将所述第一消息同步至所述一个或多个第一从节点;
发送单元62,还用于向所述消息写入方设备发送所述第一消息已写入完成的第一提示信息,所述第一提示信息用于提示所述消息写入方设备向所述控制设备写入下一消息。
可选地,上述消息处理装置60还用于:
当检测到与第二主节点的连接中断时,向所述一个或多个第一从节点发送对应的通知信息,所述第二主节点为所述消息队列遥测传输集群中,所述第一主节点被创建之前的主节点;
接收所述一个或多个第一从节点在获取到所述通知信息后,发送的主节点创建请求;
根据所述主节点创建请求创建所述第一主节点。
上述各个单元可全部或部分通过软件、硬件及其组合来实现。上述各个单元可以以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行上述各个单元对应的操作。
本申请实施例还提供一种消息处理装置70,适用于消息队列遥测传输集群中的第一主节点对应的设备,所述消息队列遥测传输集群还包括控制设备与一个或多个第一从节点,图7为该消息处理装置70的结构示意图,述装置包括:
接收单元71,用于接收所述控制设备发送的第一消息,所述第一消息包括消息写入方设备对应的订阅方设备订阅的消息;
同步单元72,用于将所述第一消息同步至所述一个或多个第一从节点;
接收单元71,还用于接收所述控制设备发送的下一消息,并将所述下一消息同步至所述一个或多个第一从节点,其中,所述下一消息为所述控制设备在将所述第一消息发送至所述第一主节点对应的设备后,向所述消息写入方设备发送所述第一消息已写入完成的第一提示信息,使所述消息写入方设备向所述控制设备写入的消息。
可选地,同步单元72在用于将所述第一消息同步至所述一个或多个第一从节点时,具体用于:
针对所述一个或多个第一从节点中的各第一从节点,获取所述第一从节点的第一消息同步请求;
根据所述第一消息同步请求确定对应的待同步消息;
若确定所述待同步消息包含所述第一消息,则将所述第一消息同步至所述第一从节点。
可选地,所述第一消息同步请求中包含第二消息的消息标识,所述第二消息为所述第一从节点最近一次已同步的消息,可选地,同步单元72在用于根据所述第一消息同步请求确定对应的待同步消息时,具体用于:
获取第一消息标识序列,所述第一消息标识序列中包含多个消息标识,所述多个消息标识中的各消息标识对应一候选同步消息,所述第一主节点获取所述候选同步消息的时刻越晚,所述候选同步消息对应的消息标识在第一消息标识序列中的排序越接近尾部;
基于所述第二消息的消息标识与所述第一消息标识序列确定所述待同步消息。
可选地,同步单元72在用于基于所述第二消息的消息标识与所述第一消息标识序列确定所述待同步消息时,具体用于:
在所述第一消息标识序列中查询到与所述第二消息的消息标识相同的第一消息标识;
获取所述第一消息标识序列中,位于所述第一消息标识与所述第一消息标识序列尾部的结尾消息标识之间的第二消息标识序列,其中,所述结尾消息标识包含于所述第二消息标识序列;
将所述第二消息标识序列对应的候选同步消息作为所述待同步消息。
可选地,所述第一消息同步请求中还包括所述第二消息的消息标识对应的第一主题标识,同步单元72在用于获取第一消息标识序列时,具体用于:根据所述第一主题标识与预设对应关系确定所述第一消息标识序列。
可选地,所述第一消息同步请求中还包括所述第一从节点的第一节点标识,所述第一主节点对应的设备还用于:
根据所述第一节点标识,确定所述第一主节点中,需被所述第一从节点同步的总消息的第一总消息数量,以及所述第一从节点已从所述第一主节点中同步过的消息的第一消息数量;
若所述第一总消息数量与所述第一消息数量的差值不小于预设差值,则将所述第一节点标识从第一节点标识列表中移至第二节点标识列表;
其中,所述第一节点标识列表中存储有一个或多个第二节点标识,针对所述第二节点标识对应的第二从节点,所述第一主节点中的需被所述第二从节点同步的第二总消息数量,与所述第二从节点已从所述第一主节点中同步过的消息的第二消息数量的差值小于预设差值;所述第二节点标识列表中存储有一个或多个第三节点标识,针对所述第三节点标识对应的第三从节点,所述第一主节点中的需被所述第三从节点同步的第三总消息数量,与所述第三从节点已从所述第一主节点中同步过的消息的第三消息数量的差值不小于预设差值。
可选地,所述第一消息标识序列还包括所述各候选同步消息的消费情况,所述消费情况包括可消费与不可消费中的任一种,所述第一主节点对应的设备还用于:
针对所述各候选同步消息,检测所述候选同步消息是否被所述消息队列遥测传输集群中的目标从节点同步完成,若是,则将所述第一消息标识序列中,候选同步消息的消费情况设置为可消费,若否,则不处理,所述目标从节点为所述消息队列遥测传输集群中的全部第一从节点,或对应的节点标识位于第一节点标识列表的全部第一从节点。
上述各个单元可全部或部分通过软件、硬件及其组合来实现。上述各个单元可以以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行上述各个单元对应的操作。
本申请实施例还提供一种消息处理装置,适用于消息队列遥测传输集群中的一个或多个第一从节点中的任一第一从节点对应的设备,图8为消息处理装置80的结构示意图,所述消息队列遥测传输集群还包括第一主节点与控制设备,所述消息处理装置80包括:
发送单元81,用于按照预设周期向所述第一主节点发送第一消息同步请求,使得所述第一主节点根据所述第一消息同步请求确定对应的第一消息;
接收单元82,用于接收所述第一主节点根据所述第一消息同步请求确定的所述第一消息;
发送单元81,还用于按照所述预设周期向所述第一主节点发送第二消息同步请求,使得所述第一主节点根据所述第二消息同步请求确定所述第一消息的下一消息;
接收单元82,还用于接收所述第一主节点确定的所述下一消息;
其中,所述第一消息由所述的第一主节点接收自所述控制设备,且由所述控制设备接收自消息写入方设备,所述下一消息为所述控制设备在将所述第一消息发送至所述第一主节点后,向所述消息写入方设备发送所述第一消息已写入完成的第一提示信息,使所述消息写入方设备向所述控制设备写入的消息。
可选地,所述消息处理装置80还用于:
若检测到所述控制设备发送的用于指示所述控制设备与第二主节点的连接中断的通知信息,则向所述控制设备发送主节点创建请求;
接收所述控制设备根据所述主节点创建请求的反馈信息;
若所述反馈信息指示创建成功,则更新自身的设备属性为所述第一主节点,若所述反馈信息指示创建失败,则不处理;
其中,所述第二主节点为所述消息队列遥测传输集群中,所述第一主节点创建之前的主节点。
可选地,所述消息处理装置80还用于:
获取所述第一主节点发送的查询信息;
根据所述查询信息确定是否存储有所述第一主节点未存储过的目标消息,若有,则将所述目标消息反馈至所述第一主节点,若无,则不处理,或反馈预设的查询失败标识。
上述各个单元可全部或部分通过软件、硬件及其组合来实现。上述各个单元可以以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行上述各个单元对应的操作。
可选的,本申请还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
图9为本申请实施例提供的计算机设备的结构示意图,如图9所示,该计算机设备900可以包括:通信接口901,存储器902,处理器903和通信总线904。通信接口901,存储器902,处理器903通过通信总线904实现相互间的通信。通信接口901用于计算机设备900与外部设备进行数据通信。存储器902可用于存储软件程序以及模块,处理器903通过运行存储在存储器902的软件程序以及模块,例如前述方法实施例中的相应操作的软件程序。
可选地,该处理器903可以调用存储在存储器902的软件程序以及模块执行如下操作:
获取消息写入方设备写入的第一消息,所述第一消息包括所述消息写入方设备对应的订阅方设备订阅的消息;
将所述第一消息发送至所述第一主节点,使所述第一主节点将所述第一消息同步至所述一个或多个第一从节点;
向所述消息写入方设备发送所述第一消息已写入完成的第一提示信息,所述第一提示信息用于提示所述消息写入方设备向所述控制设备写入下一消息。
可选地,该处理器903可以调用存储在存储器902的软件程序以及模块执行如下操作:
接收所述控制设备发送的第一消息,所述第一消息包括消息写入方设备对应的订阅方设备订阅的消息;
将所述第一消息同步至所述一个或多个第一从节点;
接收所述控制设备发送的下一消息,并将所述下一消息同步至所述一个或多个第一从节点,其中,所述下一消息为所述控制设备在将所述第一消息发送至所述第一主节点对应的设备后,向所述消息写入方设备发送所述第一消息已写入完成的第一提示信息,使所述消息写入方设备向所述控制设备写入的消息。
可选地,该处理器903可以调用存储在存储器902的软件程序以及模块执行如下操作:
按照预设周期向所述第一主节点发送第一消息同步请求,使得所述第一主节点根据所述第一消息同步请求确定对应的第一消息;
接收所述第一主节点根据所述第一消息同步请求确定的所述第一消息;
按照所述预设周期向所述第一主节点发送第二消息同步请求,使得所述第一主节点根据所述第二消息同步请求确定所述第一消息的下一消息;
接收所述第一主节点确定的所述下一消息;
其中,所述第一消息由所述的第一主节点接收自所述控制设备,且由所述控制设备接收自消息写入方设备,所述下一消息为所述控制设备在将所述第一消息发送至所述第一主节点后,向所述消息写入方设备发送所述第一消息已写入完成的第一提示信息,使所述消息写入方设备向所述控制设备写入的消息。
本申请还提供了一种计算机可读存储介质,用于存储计算机程序。该计算机可读存储介质可应用于计算机设备,并且该计算机程序使得计算机设备执行本申请实施例中的各方法中的相应流程,为了简洁,在此不再赘述。
本申请还提供了一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得计算机设备执行本申请实施例中的各方法中的相应流程,为了简洁,在此不再赘述。
本申请还提供了一种计算机程序,该计算机程序包括计算机指令,计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得计算机设备执行本申请实施例中的各方法中的相应流程,为了简洁,在此不再赘述。
应理解,本申请实施例的处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
可以理解,本申请实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data RateSDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(DirectRambus RAM,DR RAM)。应注意,本文描述的系统和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
应理解,上述存储器为示例性但不是限制性说明,例如,本申请实施例中的存储器还可以是静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synch link DRAM,SLDRAM)以及直接内存总线随机存取存储器(Direct Rambus RAM,DR RAM)等等。也就是说,本申请实施例中的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
Claims (15)
1.一种消息处理方法,其特征在于,适用于消息队列遥测传输集群中的控制设备,所述消息队列遥测传输集群还包括第一主节点与一个或多个第一从节点,所述方法包括:
获取消息写入方设备写入的第一消息,所述第一消息包括所述消息写入方设备对应的订阅方设备订阅的消息;
将所述第一消息发送至所述第一主节点,使所述第一主节点将所述第一消息同步至所述一个或多个第一从节点;
向所述消息写入方设备发送所述第一消息已写入完成的第一提示信息,所述第一提示信息用于指示所述消息写入方设备向所述控制设备写入下一消息。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当检测到与第二主节点的连接中断时,向所述一个或多个第一从节点发送对应的通知信息,所述第二主节点为所述消息队列遥测传输集群中,所述第一主节点被创建之前的主节点;
接收所述一个或多个第一从节点在获取到所述通知信息后,发送的主节点创建请求;
根据所述主节点创建请求创建所述第一主节点。
3.一种消息处理方法,其特征在于,适用于消息队列遥测传输集群中的第一主节点对应的设备,所述消息队列遥测传输集群还包括控制设备与一个或多个第一从节点,所述方法包括:
接收所述控制设备发送的第一消息,所述第一消息包括消息写入方设备对应的订阅方设备订阅的消息;
将所述第一消息同步至所述一个或多个第一从节点;
接收所述控制设备发送的下一消息,并将所述下一消息同步至所述一个或多个第一从节点,其中,所述下一消息为所述控制设备在将所述第一消息发送至所述第一主节点对应的设备后,向所述消息写入方设备发送所述第一消息已写入完成的第一提示信息,使所述消息写入方设备向所述控制设备写入的消息。
4.根据权利要求3所述的方法,其特征在于,所述将所述第一消息同步至所述一个或多个第一从节点,包括:
针对所述一个或多个第一从节点中的各第一从节点,获取所述第一从节点的第一消息同步请求;
根据所述第一消息同步请求确定对应的待同步消息;
若确定所述待同步消息包含所述第一消息,则将所述第一消息同步至所述第一从节点。
5.根据权利要求4所述的方法,其特征在于,所述第一消息同步请求中包含第二消息的消息标识,所述第二消息为所述第一从节点最近一次已同步的消息,所述根据所述第一消息同步请求确定对应的待同步消息,包括:
获取第一消息标识序列,所述第一消息标识序列中包含多个消息标识,所述多个消息标识中的各消息标识对应一候选同步消息;
基于所述第二消息的消息标识与所述第一消息标识序列确定所述待同步消息。
6.根据权利要求5所述的方法,其特征在于,所述基于所述第二消息的消息标识与所述第一消息标识序列确定所述待同步消息,包括:
在所述第一消息标识序列中查询到与所述第二消息的消息标识相同的第一消息标识;
获取所述第一消息标识序列中,位于所述第一消息标识与所述第一消息标识序列的尾部的结尾消息标识之间的第二消息标识序列,其中,所述结尾消息标识包含于所述第二消息标识序列;
将所述第二消息标识序列对应的候选同步消息作为所述待同步消息。
7.根据权利要求5所述的方法,其特征在于,所述第一消息标识序列还包括所述各候选同步消息的消费情况,所述消费情况包括可消费与不可消费中的任一种,所述还包括:
针对所述各候选同步消息,检测所述候选同步消息是否被所述消息队列遥测传输集群中的目标从节点同步完成,若是,则将所述第一消息标识序列中,候选同步消息的消费情况设置为可消费,若否,则不处理,所述目标从节点为所述消息队列遥测传输集群中的全部第一从节点,或对应的节点标识位于第一节点标识列表的全部第一从节点。
8.一种消息处理方法,其特征在于,适用于消息队列遥测传输集群中的一个或多个第一从节点中的任一第一从节点对应的设备,所述消息队列遥测传输集群还包括第一主节点与控制设备,所述方法包括:
按照预设周期向所述第一主节点发送第一消息同步请求,使得所述第一主节点根据所述第一消息同步请求确定对应的第一消息;
接收所述第一主节点根据所述第一消息同步请求确定的所述第一消息;
按照所述预设周期向所述第一主节点发送第二消息同步请求,使得所述第一主节点根据所述第二消息同步请求确定所述第一消息的下一消息;
接收所述第一主节点确定的所述下一消息;
其中,所述第一消息由所述的第一主节点接收自所述控制设备,且由所述控制设备接收自消息写入方设备,所述下一消息为所述控制设备在将所述第一消息发送至所述第一主节点后,向所述消息写入方设备发送所述第一消息已写入完成的第一提示信息,使所述消息写入方设备向所述控制设备写入的消息。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
若检测到所述控制设备发送的用于指示所述控制设备与第二主节点的连接中断的通知信息,则向所述控制设备发送主节点创建请求;
接收所述控制设备根据所述主节点创建请求的反馈信息;
若所述反馈信息指示创建成功,则更新自身的设备属性为所述第一主节点,若所述反馈信息指示创建失败,则不处理;
其中,所述第二主节点为所述消息队列遥测传输集群中,所述第一主节点创建之前的主节点。
10.一种消息处理装置,其特征在于,适用于消息队列遥测传输集群中的控制设备,所述消息队列遥测传输集群还包括第一主节点与一个或多个第一从节点,所述装置包括:
获取单元,用于获取消息写入方设备写入的第一消息,所述第一消息包括所述消息写入方设备对应的订阅方设备订阅的消息;
发送单元,用于将所述第一消息发送至所述第一主节点,使所述第一主节点将所述第一消息同步至所述一个或多个第一从节点;
所述发送单元,还用于向所述消息写入方设备发送所述第一消息已写入完成的第一提示信息,所述第一提示信息用于提示所述消息写入方设备向所述控制设备写入下一消息。
11.一种消息处理装置,其特征在于,适用于消息队列遥测传输集群中的第一主节点对应的设备,所述消息队列遥测传输集群还包括控制设备与一个或多个第一从节点,所述装置包括:
接收单元,用于接收所述控制设备发送的第一消息,所述第一消息包括消息写入方设备对应的订阅方设备订阅的消息;
同步单元,用于将所述第一消息同步至所述一个或多个第一从节点;
所述接收单元,还用于接收所述控制设备发送的下一消息,并将所述下一消息同步至所述一个或多个第一从节点,其中,所述下一消息为所述控制设备在将所述第一消息发送至所述第一主节点对应的设备后,向所述消息写入方设备发送所述第一消息已写入完成的第一提示信息,使所述消息写入方设备向所述控制设备写入的消息。
12.一种消息处理装置,其特征在于,适用于消息队列遥测传输集群中的一个或多个第一从节点中的任一第一从节点对应的设备,所述消息队列遥测传输集群还包括第一主节点与控制设备,所述装置包括:
发送单元,用于按照预设周期向所述第一主节点发送第一消息同步请求,使得所述第一主节点根据所述第一消息同步请求确定对应的第一消息;
接收单元,用于接收所述第一主节点根据所述第一消息同步请求确定的所述第一消息;
所述发送单元,还用于按照所述预设周期向所述第一主节点发送第二消息同步请求,使得所述第一主节点根据所述第二消息同步请求确定所述第一消息的下一消息;
所述接收单元,还用于接收所述第一主节点确定的所述下一消息;
其中,所述第一消息由所述的第一主节点接收自所述控制设备,且由所述控制设备接收自消息写入方设备,所述下一消息为所述控制设备在将所述第一消息发送至所述第一主节点后,向所述消息写入方设备发送所述第一消息已写入完成的第一提示信息,使所述消息写入方设备向所述控制设备写入的消息。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序适于处理器进行加载,以执行权利要求1-2中任一项,或权利要求3-7中任一项,或权利要求8-9中任一项所述的消息处理方法。
14.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有计算机程序,所述处理器通过调用所述存储器中存储的所述计算机程序,用于执行权利要求1-2中任一项,或权利要求3-7中任一项,或权利要求8-9中任一项所述的消息处理方法。
15.一种计算机程序产品,包括计算机指令,其特征在于,所述计算机指令被处理器执行时实现权利要求1-2中任一项,或权利要求3-7中任一项,或权利要求8-9中任一项所述的消息处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210626065.1A CN117221316A (zh) | 2022-06-02 | 2022-06-02 | 消息处理方法、消息队列遥测传输集群、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210626065.1A CN117221316A (zh) | 2022-06-02 | 2022-06-02 | 消息处理方法、消息队列遥测传输集群、装置及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117221316A true CN117221316A (zh) | 2023-12-12 |
Family
ID=89043085
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210626065.1A Pending CN117221316A (zh) | 2022-06-02 | 2022-06-02 | 消息处理方法、消息队列遥测传输集群、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117221316A (zh) |
-
2022
- 2022-06-02 CN CN202210626065.1A patent/CN117221316A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107465767B (zh) | 一种数据同步的方法和系统 | |
US7978631B1 (en) | Method and apparatus for encoding and mapping of virtual addresses for clusters | |
CN113596191B (zh) | 一种数据处理方法、网元设备以及可读存储介质 | |
CN108712332B (zh) | 一种通信方法、系统和装置 | |
US7640339B1 (en) | Method and apparatus for monitoring a node in a distributed system | |
EP1434144A2 (en) | Peer-to-peer graphing interfaces and methods | |
CN107861686A (zh) | 文件存储方法、服务端和计算机可读存储介质 | |
CN111259072B (zh) | 数据同步方法、装置、电子设备和计算机可读存储介质 | |
WO2018049966A1 (zh) | 视频监控系统的控制方法、装置及系统 | |
CN113572835B (zh) | 一种数据处理方法、网元设备以及可读存储介质 | |
CN109462640B (zh) | 一种元数据同步方法、数据端、交互系统及介质 | |
CN103631652A (zh) | 虚拟机迁移的实现方法及系统 | |
CN114328618A (zh) | 一种缓存数据同步方法、装置、设备及存储介质 | |
CN116668511A (zh) | 一种数据处理方法、网元设备以及可读存储介质 | |
CN112202877A (zh) | 网关联动方法、网关、云服务器及用户终端 | |
CN112003943A (zh) | 语音数据同步方法和装置 | |
CN111262892B (zh) | 一种多ros的服务发现系统 | |
CN113382065A (zh) | 文件下载方法、装置、系统、设备及存储介质 | |
CN117221316A (zh) | 消息处理方法、消息队列遥测传输集群、装置及设备 | |
CN112751907B (zh) | 信息处理方法、装置和存储介质及电子装置 | |
CN114125827B (zh) | 一种终端管理方法、装置及集中化管理系统 | |
CN113515392B (zh) | Rpc调用方法、装置、设备及存储介质 | |
CN105141687A (zh) | 一种生产消息的方法 | |
CN111083182B (zh) | 分布式物联网设备管理方法及装置 | |
CN112512022A (zh) | Tsn工业应用服务器、客户端、系统、服务方法及储存介质 |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40098934 Country of ref document: HK |