CN114090304B - 一种基于消息中间件的消息回放方法和装置 - Google Patents
一种基于消息中间件的消息回放方法和装置 Download PDFInfo
- Publication number
- CN114090304B CN114090304B CN202210057544.6A CN202210057544A CN114090304B CN 114090304 B CN114090304 B CN 114090304B CN 202210057544 A CN202210057544 A CN 202210057544A CN 114090304 B CN114090304 B CN 114090304B
- Authority
- CN
- China
- Prior art keywords
- message
- playback instruction
- time period
- message playback
- playback
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/547—Messaging middleware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种基于消息中间件的消息回放方法和装置,该方法为:当接收到消息中间件转发的消息回放指令时,构建消息回放实例,该消息回放指令至少包含指定时间段;创建并启动消费线程;根据消息回放实例和消费线程,从消息存储组件的从节点中,获取消息回放指令所指定的处于指定时间段内的待回放消息,若获取得到待回放消息,重新消费待回放消息。本方案中,在接收到消息回放指令时,利用所构建的消息回放实例和消费线程,从消息中间件的消息存储组件从节点中,获取处于指定时间段内的待回放消息,重新消费所获取到的待回放消息,以实现回放任意时间段内的消息。
Description
技术领域
本发明涉及消息回放技术领域,尤其涉及一种基于消息中间件的消息回放方法和装置。
背景技术
消息中间件用于在分布式应用系统中提供可靠的数据收发服务,由于业务需求,业务端通常需要回放消息,即从消息中间件中拉取消息并重新消费所拉取到的消息。因此,如何基于消息中间件进行消息回放,目前亟需解决的问题。
发明内容
有鉴于此,本发明实施例提供一种基于消息中间件的消息回放方法和装置,以实现基于消息中间件进行消息回放的目的。
为实现上述目的,本发明实施例提供如下技术方案:
本发明实施例第一方面公开一种基于消息中间件的消息回放方法,所述方法包括:
当接收到消息中间件转发的消息回放指令时,构建消息回放实例,所述消息回放指令至少包含指定时间段,所述消息回放指令由运维平台的消息回放入口生成,所述消息回放指令由所述运维平台发送至所述消息中间件;
创建并启动消费线程;
根据所述消息回放实例和所述消费线程,从消息存储组件的从节点中,获取所述消息回放指令所指定的处于所述指定时间段内的待回放消息,所述消息存储组件设置于所述消息中间件中;
若获取得到所述待回放消息,重新消费所述待回放消息。
优选的,所述从消息存储组件的从节点中,获取所述消息回放指令所指定的处于所述指定时间段内的待回放消息包括:
当所述消息回放指令为死信消息回放指令时,从消息存储组件的从节点中,获取死信消息队列中处于所述指定时间段内的待回放消息。
优选的,所述从消息存储组件的从节点中,获取所述消息回放指令所指定的处于所述指定时间段内的待回放消息包括:
当所述消息回放指令为正常消息回放指令时,从消息存储组件的从节点中,获取正常消息队列中处于所述指定时间段内的待回放消息。
优选的,还包括:
若获取不到所述待回放消息,释放所述消费线程。
优选的,所述消息中间件中包含转发所述消息回放指令的通信处理器。
优选的,所述消息回放指令为死信消息回放指令或正常消息回放指令;
在所述消息回放指令为死信消息的情况下,所述消息回放指令由所述运维平台的死信消息回放入口生成;在所述消息回放指令为正常消息的情况下,所述消息回放指令由所述运维平台的正常消息回放入口生成。
本发明实施例第二方面公开一种基于消息中间件的消息回放装置,所述装置包括:
构建单元,用于当接收到消息中间件转发的消息回放指令时,构建消息回放实例,所述消息回放指令至少包含指定时间段,所述消息回放指令由运维平台的消息回放入口生成,所述消息回放指令由所述运维平台发送至所述消息中间件;
创建单元,用于创建并启动消费线程;
获取单元,用于根据所述消息回放实例和所述消费线程,从消息存储组件的从节点中,获取所述消息回放指令所指定的处于所述指定时间段内的待回放消息,所述消息存储组件设置于所述消息中间件中;
消费单元,用于若获取得到所述待回放消息,重新消费所述待回放消息。
优选的,所述获取单元,具体用于:
当所述消息回放指令为死信消息回放指令时,从消息存储组件的从节点中,获取死信消息队列中处于所述指定时间段内的待回放消息。
优选的,所述获取单元,具体用于:
当所述消息回放指令为正常消息回放指令时,从消息存储组件的从节点中,获取正常消息队列中处于所述指定时间段内的待回放消息。
优选的,所述装置还包括:
释放单元,用于若获取不到所述待回放消息,释放所述消费线程。
基于上述本发明实施例提供的一种基于消息中间件的消息回放方法和装置,该方法为:当接收到消息中间件转发的消息回放指令时,构建消息回放实例,该消息回放指令至少包含指定时间段;创建并启动消费线程;根据消息回放实例和消费线程,从消息存储组件的从节点中,获取消息回放指令所指定的处于指定时间段内的待回放消息,若获取得到待回放消息,重新消费待回放消息。在接收到消息回放指令后,基于构建的消息回放实例和消费线程,从消息中间件的消息存储组件的从节点中获取消息回放指令中指向的待回放消息,实现在基于消息中间件回放消息,满足了业务端消息回放的需求。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种基于消息中间件的消息回放方法的流程图;
图2为本发明实施例提供的运维平台的死信队列模块的web入口示意图;
图3为本发明实施例提供的用于搜索死信队列中具体的死信消息的页面示意图;
图4为本发明实施例提供的用于选择业务端和指定时间段的页面示意图;
图5为本发明实施例提供的消息回放方法的原理图;
图6为本发明实施例提供的在RocketMQ中扩展通信处理器的指令的示意图;
图7为本发明实施例提供的业务端sdk获取待回放消息的流程图;
图8为本发明实施例提供的一种基于消息中间件的消息回放装置的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本申请中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
由背景技术可知,由于业务需求,业务端通常需要从消息中间件中拉取消息并重新消费所拉取到的消息。因此,如何基于消息中间件进行消息回放,目前亟需解决的问题。
因此,本发明实施例提供一种基于消息中间件的消息回放方法和装置,该方法为:在接收到由消息中间件转发的消息回放指令时,构建消息回放实例,该消息回放指令至少包含指定时间段,创建并启动消费线程;基于消息回放实例和消费线程,从消息存储组件的从节点中,获取消息回放指令所指定的处于指定时间段内的待回放消息;当可以获取到该待回放消息时,重新消费所获取到的待回放消息。在接收到消息回放指令时,利用所构建的消息回放实例和消费线程,从消息中间件的消息存储组件从节点中,获取处于指定时间段内的待回放消息,重新消费所获取到的待回放消息,以实现基于消息中间件回放任意时间段内的消息。
可以理解的是,本发明实施例中提及的正常队列是指:存储正常消息的队列;死信队列是指:存储业务端消费失败达到最大次数且无法继续消费的消息的队列。
需要说明的是,本发明实施例所提供的一种基于消息中间件的消息回放方法和装置,可以应用于包含业务逻辑的应用,即业务端,例如付费业务、用户业务等。
参见图1,示出了本发明实施例提供的一种基于消息中间件的消息回放方法的流程图,该消息回放方法包括:
步骤S101:当接收到消息中间件转发的消息回放指令时,构建消息回放实例。
可以理解的是,消息回放实例是具备消息回放功能的java类虚拟机,通过构建消息回放实例以进行消息回放操作。消息回放指令中至少包含指定时间段,其中指定时间段由开始时间和结束时间构成。
需要说明的是,消息中间件可以是阿里巴巴开源的分布式消息中间件(如RocketMQ);通过运维平台(如搜狐开源的监控运维平台MQCloud)的死信队列模块的web入口或消息查询模块的web入口,可以选择需要重新消费消息的业务端,以及选择需要重新消费哪一时间段内(所选择的时间段即为指定时间段)的消息;在选择业务端和指定时间段之后,运维平台由此生成消息回放指令。
可以理解的是,通过运维平台的死信队列模块的web入口(即死信消息回放入口)选择业务端和指定时间段时,所生成的消息回放指令为死信消息回放指令(即用于重新消费死信消息);若通过运维平台的消息查询模块的web入口(即正常消息回放入口)选择业务端和指定时间段时,所生成的消息回放指令为正常消息回放指令(即用于重新消费正常消息)。
为方便理解,本发明实施例中运维平台的死信队列模块的web入口参见图2所示,本发明实施例中用于搜索死信队列中具体的死信消息的页面参见图3所示,本发明实施例中用于选择业务端和指定时间段的页面参见图4所示。
其中,图2所示内容为运维平台(如MQCloud)中死信队列的相关信息,其中至少包括:最小偏移量、最大偏移量、消息量,更新时间等内容。通过点击图2中矩形框圈住的“搜索死消息”的放大镜按键,打开图3所示的用于搜索死信队列中具体的死信消息的页面。通过点击图3中矩形框圈住的“重新消费该时间段内的消息”的携带顺时针箭头的未封闭的圆圈按键,打开图4所示的用于选择业务端和指定时间段的页面。
在图4所示出的页面中,可设置构成上述指定时间段的开始时间和结束时间,以及选择业务端。需要说明的是,业务端通常包含多个实例,每个实例可视为一个客户端,故图4中所示出的内容为选择客户端(也就是选择业务端的实例)。
在具体实现步骤S101的过程中,运维平台生成消息回放指令后,将消息回放指令发送至消息中间件,消息中间件再将消息回放指令发送至业务端;在接收到消息中间件转发的消息回放指令的情况下,指示需要重新消费消息,在业务端sdk内构建消息回放实例。
步骤S102:创建并启动消费线程。
可以理解的是,可通过单独的消费线程进行消息回放操作(也就是重新消费消息);在具体实现步骤S102的过程中,创建单独的消费线程并启动该消费线程,使用该消费进程进行消息回放操作可以不影响正常运行的业务端的其它消费线程。
步骤S103:根据消息回放实例和消费线程,从消息存储组件的从节点中,获取消息回放指令所指定的处于指定时间段内的待回放消息。
可以理解的是,消息存储组件用于存储消息,该消息存储组件设置于消息中间件中(例如消息存储组件可以是RocketMQ集群中的broker节点),broker主节点用于承担读写操作;消息存储组件的从节点即broker从节点,用于从broker主节点同步数据。
在具体实现步骤S103的过程中,基于消息回放实例和消费线程,根据指定时间段获取消息存储组件的队列消息的偏移量,再根据队列消息的偏移量,从消息存储组件的从节点中,获取消息回放指令所指定的处于指定时间段内的待回放消息。
需要说明的是,业务端sdk可以采用RocketMQ的PullConsumer来根据开始时间戳和结束时间戳查询出消息存储组件的消息队列的偏移量。其中,PullConsumer是RocketMQ的一种主动拉取消息的消费方式。
可以理解的是,当消息回放指令为死信消息回放指令时,从消息存储组件的从节点中,获取死信消息队列中处于指定时间段内的待回放消息,此时所获取的待回放消息即为死信消息队列中处于指定时间段内的死信消息;当消息回放指令为正常消息回放指令时,从消息存储组件的从节点中,获取正常消息队列中处于指定时间段内的待回放消息,此时所获取的待回放消息即为正常消息队列中处于指定时间段内的正常消息。
步骤S104:判断是否可以获取得到待回放消息。若可以获取得到待回放消息,执行步骤S105;若获取不到待回放消息,释放消费线程。
在具体实现步骤S104的过程中,判断是否可以从消息存储组件的从节点中获取得到处于指定时间段内的待回放消息,若可以获取得到待回放消息,指示存在可以重新消费的待回放消息,执行步骤S105;若获取不到待回放消息,指示消息存储组件的从节点中没有可以重新消费的待回放消息,此时需要将创建的消费线程和消息回放实例进行释放和清理。
可以理解的是,当消息存储组件的从节点中没有处于指定时间段内的待回放消息时,将构建的消息回放实例进行清除,释放创建的消费线程及远程连接等资源,以保障不对业务端造成额外的影响。
步骤S105:重新消费待回放消息,消费完成后返回步骤S104。
在具体实现步骤S105的过程中,当从消息存储组件的从节点中获取到处于指定时间段内的待回放消息时,回调业务端的消费逻辑重新消费所获取到的待回放消息,消费完成之后返回步骤S104,继续判断是否可以获取得到待回放消息。
在本发明实施例中,根据运维平台的死信队列模块的web入口和消息查询模块的web入口,实现了可以选择回放死信队列的消息或回放正常队列的消息,同时也支持根据指定的时间段回放消息;消息中间件扩展了通信处理器,支持实时地转发消息回放指令;建立单独的消费线程可以不影响正常运行的业务端的其他消费线程;在获取待回放消息时,从消息存储组件的从节点进行获取,不会影响主节点的性能,也不会增加消息存储组件的主节点的压力;重新消费消息完成后,及时的清理和释放消费线程和远程连接等资源,进一步保障了不对业务端带来额外的影响。根据指定的时间段获取待回放的消息,满足了业务端消息回放的需求。在本方案中,支持远程通信,即MQCloud远程调用broker,broker再远程调用消费者。
为方便理解,消息回放方法的原理图参见图5所示。图5中所示MQCloud为本发明实施例图1中的运维平台;RocketMQ为本发明实施例图1中的消息中间件,业务端sdk为可以使业务端重新消费指定时间段内的消息的工具包。
可以理解的是,步骤1:消息回放,指示在MQCloud平台的web入口中选择指定时间段和业务端,可以根据该指定时间段,重新消费处于开始时间至结束时间内的消息。MQCloud平台根据所选择的指定时间段和业务端生成消息回放指令。
步骤2:发送消息回放指令,指示MQCloud平台生成消息回放指令后,将消息回放指令发送至RocketMQ。
步骤3:转发消息回放指令,指示RocketMQ将消息回放指令发送至业务端。其中,RocketMQ利用通信处理器(netty),支持实时向业务端sdk转发消息回放指令,在RocketMQ中扩展通信处理器的指令参见图6所示。
步骤4:根据指定时间段获取待回放消息,指示业务端可以利用RocketMQ提供的业务端sdk,从RocketMQ的broker从节点中获取消息回放指令中所指定的处于指定时间段内的待回放消息。
步骤5:返回待回放消息,指示业务端sdk从broker从节点中获取到待回放消息时,将所获取到的待回放消息返回给业务端的消费逻辑进行重新消费。
需要说明的是,对于图6所示的在消息中间件中扩展通信处理器的指令,图6中从上至下第一个圆角矩形框中所示内容,“NettyRequestProcessor”为Netty处理器,“+processRequest(context,request)”表示处理请求(上下文,请求);第二个圆角矩形框中所示内容,“ClientRemotingProcessor”为客户端远程处理器,“+processRequest(context,request)”表示处理请求(上下文,请求);第三个圆角矩形框中所示内容,“SohuClientRemotingProcessor”为搜狐客户端远程处理器,“consumeTimespanMessage(context,request)”表示流量重放(上下文,请求)。
可以理解的是,采用通信处理器netty,来实现RocketMQ的broker从节点与业务端sdk的通信,例如业务端sdk从broker从节点中获取待回放消息;又例如从RocketMQ的broker从节点发送消息回放指令至业务端sdk。
为更好地解释说明上述本发明实施例图1的内容,通过图7所示的业务端sdk获取待回放消息的流程图进行举例说明,图7包括以下步骤:
步骤S701:构建消息回放实例。
在具体实现步骤S701的过程中,在接收到消息回放指令后,构建消息回放实例。需要说明的是,所接收到的消息回放指令至少包含指定时间段。
步骤S702:创建并启动单独的消费线程。
步骤S703:根据时间段获取broker的队列消息的偏移量。
步骤S704:根据偏移量从broker从节点获取待回放消息。若获取得到待回放消息,执行步骤S705;若获取不到待回放消息,执行步骤S706。
步骤S705:传递待回放消息给业务端进行消费。
步骤S706:释放消费线程及远程连接等资源。
步骤S701至步骤S706的执行原理,可参见上述本发明实施例图1中的内容,在此不再进行赘述。
与上述本发明实施例提供的一种基于消息中间件的消息回放方法相对应,参见图8,本发明实施例还提供了一种基于消息中间件的消息回放装置的结构框图,该消息回放装置包括:构建单元801、创建单元802、获取单元803和消费单元804:
构建单元801,用于当接收到消息中间件转发的消息回放指令时,构建消息回放实例,消息回放指令至少包含指定时间段,消息回放指令由运维平台的消息回放入口生成,消息回放指令由运维平台发送至消息中间件。
在一些具体实施例中,消息中间件包含用于转发消息回放指令的通信处理器。
在一些具体实施例中,消息回放指令为死信消息回放指令或正常消息回放指令。在消息回放指令为死信消息的情况下,消息回放指令由运维平台的死信消息回放入口生成;在消息回放指令为正常消息的情况下,消息回放指令由运维平台的正常消息回放入口生成。
创建单元802,用于创建并启动消费线程。
获取单元803,用于根据消息回放实例和消费线程,从消息存储组件的从节点中,获取消息回放指令所指定的处于指定时间段内的待回放消息,消息存储组件设置于消息中间件中。
在具体实现中,获取单元803还用于:当消息回放指令为死信消息回放指令时,从消息存储组件的从节点中,获取死信消息队列中处于指定时间段内的待回放消息。
在具体实现中,获取单元803还用于:当消息回放指令为正常消息回放指令时,从消息存储组件的从节点中,获取正常消息队列中处于指定时间段内的待回放消息。
消费单元804,用于若获取得到待回放消息,重新消费待回放消息。
在本发明实施例中,支持业务端可以选择任意的时间段,实时地重新回放该时间段内的消息,并且支持回放死信队列的消息和正常队列的消息,创建单独的消费线程,不会影响业务端的主消费线程,从消息存储组件的从节点获取待回放消息,准确的获取了消息回放指令中指定的待回放消息,不对消息存储组件的主节点造成压力,满足了业务端消息回放的需求。
优选的,结合图8示出的内容,该消息回放装置还包括:
释放单元,用于若获取不到待回放消息,释放消费线程。
综上所述,本发明实施例提供一种基于消息中间件的消息回放方法和装置,业务人员通过点击运维平台的死信队列模块的web入口或消息查询模块的web入口,选择消息回放的时间段和客户端。运维平台由此生成消息回放指令,将消息回放指令发送至消息中间件。消息中间件通过通信处理器将接收到的消息回放指令发送至业务端。业务端在接收到消息回放指令时,构建消息回放实例,创建并启动单独的消费线程。根据消息回放指令中包含的指定时间段计算消息存储组件的队列消息的偏移量。再根据队列消息的偏移量,从消息存储组件的从节点中,获取消息回放指令所指定的处于指定时间段内的待回放消息。若获取得到待回放消息,将获取到的待回放消息传递给业务端重新消费,若获取不到待回放消息则清理和释放消息回放实例和消费线程。运维平台提供了两个web入口,支持业务人员选择回放消息的类型;消息中间件扩展了通信处理器,支持实时转发消息回放指令;建立单独的消费线程有利于独立的完成消息的重新消费,而不影响业务端的正常消费线程;从消息存储组件的从节点中获取待回放的消息,不会影响消息存储组件的主节点的性能。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (9)
1.一种基于消息中间件的消息回放方法,其特征在于,所述方法包括:
当接收到消息中间件转发的消息回放指令时,构建消息回放实例,所述消息回放指令至少包含指定时间段,所述消息回放指令由运维平台的消息回放入口生成,所述消息回放指令由所述运维平台发送至所述消息中间件,所述运维平台的消息回放入口位于的界面中包含表征搜索死信消息的按键,若点击所述按键,则跳转至用于搜索死信队列中具体的死信消息的页面,若点击所述用于搜索死信队列中具体的死信消息的页面中表征重新消费该时间段内的消息的按键,则打开用于选择业务端和指定时间段的页面;
创建并启动消费线程;
根据所述消息回放实例、所述消费线程和所述指定时间段获取消息存储组件的队列消息的偏移量,根据所述队列消息的偏移量,从消息存储组件的从节点中,获取所述消息回放指令所指定的处于所述指定时间段内的待回放消息,所述消息存储组件设置于所述消息中间件中;
若获取得到所述待回放消息,重新消费所述待回放消息;
其中,所述消息回放指令为死信消息回放指令或正常消息回放指令;
在所述消息回放指令为死信消息的情况下,所述消息回放指令由所述运维平台的死信消息回放入口生成;在所述消息回放指令为正常消息的情况下,所述消息回放指令由所述运维平台的正常消息回放入口生成。
2.根据权利要求1所述的方法,其特征在于,所述从消息存储组件的从节点中,获取所述消息回放指令所指定的处于所述指定时间段内的待回放消息包括:
当所述消息回放指令为死信消息回放指令时,从消息存储组件的从节点中,获取死信消息队列中处于所述指定时间段内的待回放消息。
3.根据权利要求1所述的方法,其特征在于,所述从消息存储组件的从节点中,获取所述消息回放指令所指定的处于所述指定时间段内的待回放消息包括:
当所述消息回放指令为正常消息回放指令时,从消息存储组件的从节点中,获取正常消息队列中处于所述指定时间段内的待回放消息。
4.根据权利要求1所述的方法,其特征在于,还包括:
若获取不到所述待回放消息,释放所述消费线程。
5.根据权利要求1所述的方法,其特征在于,所述消息中间件中包含转发所述消息回放指令的通信处理器。
6.一种基于消息中间件的消息回放装置,其特征在于,所述装置包括:
构建单元,用于当接收到消息中间件转发的消息回放指令时,构建消息回放实例,所述消息回放指令至少包含指定时间段,所述消息回放指令由运维平台的消息回放入口生成,所述消息回放指令由所述运维平台发送至所述消息中间件,所述运维平台的消息回放入口位于的界面中包含表征搜索死信消息的按键,若点击所述按键,则跳转至用于搜索死信队列中具体的死信消息的页面,若点击所述用于搜索死信队列中具体的死信消息的页面中表征重新消费该时间段内的消息的按键,则打开用于选择业务端和指定时间段的页面;其中,所述消息回放指令为死信消息回放指令或正常消息回放指令;
创建单元,用于创建并启动消费线程;
获取单元,用于根据所述消息回放实例、所述消费线程和所述指定时间段获取消息存储组件的队列消息的偏移量,根据所述队列消息的偏移量,从消息存储组件的从节点中,获取所述消息回放指令所指定的处于所述指定时间段内的待回放消息,所述消息存储组件设置于所述消息中间件中;
消费单元,用于若获取得到所述待回放消息,重新消费所述待回放消息;
所述装置还用于,在所述消息回放指令为死信消息的情况下,所述消息回放指令由所述运维平台的死信消息回放入口生成;在所述消息回放指令为正常消息的情况下,所述消息回放指令由所述运维平台的正常消息回放入口生成。
7.根据权利要求6所述的装置,其特征在于,所述获取单元,具体用于:
当所述消息回放指令为死信消息回放指令时,从消息存储组件的从节点中,获取死信消息队列中处于所述指定时间段内的待回放消息。
8.根据权利要求6所述的装置,其特征在于,所述获取单元,具体用于:
当所述消息回放指令为正常消息回放指令时,从消息存储组件的从节点中,获取正常消息队列中处于所述指定时间段内的待回放消息。
9.根据权利要求6所述的装置,其特征在于,所述装置还包括:
释放单元,用于若获取不到所述待回放消息,释放所述消费线程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210057544.6A CN114090304B (zh) | 2022-01-19 | 2022-01-19 | 一种基于消息中间件的消息回放方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210057544.6A CN114090304B (zh) | 2022-01-19 | 2022-01-19 | 一种基于消息中间件的消息回放方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114090304A CN114090304A (zh) | 2022-02-25 |
CN114090304B true CN114090304B (zh) | 2022-05-24 |
Family
ID=80308538
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210057544.6A Active CN114090304B (zh) | 2022-01-19 | 2022-01-19 | 一种基于消息中间件的消息回放方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114090304B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116455956B (zh) * | 2023-06-16 | 2023-08-15 | 中国人民解放军国防科技大学 | 一种基于消息中间件的数据采集和数据回放的方法和系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106027634B (zh) * | 2016-05-16 | 2019-06-04 | 白杨 | 消息端口交换服务系统 |
CN112181683A (zh) * | 2020-09-27 | 2021-01-05 | 中国银联股份有限公司 | 消息中间件的并发消费方法以及装置 |
CN112486831A (zh) * | 2020-12-04 | 2021-03-12 | 锐捷网络股份有限公司 | 一种测试系统、方法、电子设备及存储介质 |
CN112667414A (zh) * | 2020-12-23 | 2021-04-16 | 平安普惠企业管理有限公司 | 基于消息队列的消息消费方法、装置、计算机设备及介质 |
CN113656191B (zh) * | 2021-07-19 | 2024-05-24 | 中国电子科技集团公司第十五研究所 | 一种消息中间件的历史消息回放方法及装置 |
-
2022
- 2022-01-19 CN CN202210057544.6A patent/CN114090304B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN114090304A (zh) | 2022-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112051993B (zh) | 状态机模板的生成及任务处理方法、装置、介质及设备 | |
WO2018161799A1 (zh) | 一种云应用部署方法和系统 | |
CN109995859A (zh) | 一种调度方法、调度服务器及计算机可读存储介质 | |
CN112329945A (zh) | 一种模型部署及推理的方法和装置 | |
CN110310034A (zh) | 一种应用于SaaS的服务编排、业务流程处理方法和装置 | |
CN105745620B (zh) | 软件架构的实现方法和实现平台 | |
CN110457011A (zh) | 软件应用定制方法及开发服务端 | |
CN109120794B (zh) | 一种消息显示方法及装置和电子设备 | |
US20150026244A1 (en) | Communication system, client terminal, and server device | |
CN114090304B (zh) | 一种基于消息中间件的消息回放方法和装置 | |
CN109739665A (zh) | 接口管理方法、装置、服务器及存储介质 | |
JP2007310596A (ja) | サービス提供装置、コンピュータプログラム及び記録媒体 | |
CN107132963A (zh) | 红点消息显示方法、消去方法以及相应装置 | |
CN100479458C (zh) | 调度基于模式的Web服务的方法、系统和装置 | |
CN111460038A (zh) | 一种数据准实时同步方法及装置 | |
CN114296933A (zh) | 端边云架构下轻量化容器的实现方法、数据处理系统 | |
CN107609086B (zh) | 一种app推送方法及其引擎系统 | |
CN111611065A (zh) | 机器学习算法的调用方法、装置、存储介质及电子设备 | |
US20090187444A1 (en) | Service knowledge map | |
JP2010027007A (ja) | 処理装置、要求装置、及びそれらの処理方法 | |
CN107968798B (zh) | 一种网管资源标签获取方法、缓存同步方法、装置及系统 | |
CN114090305B (zh) | 业务审核方法及装置 | |
CN107368376B (zh) | 消息发送方法及装置、扩展方法、终端 | |
CN103188714A (zh) | 实时数据采集方法、系统和采集网元 | |
CN112804313B (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 |