CN113064707B - 一种消息处理方法、装置及设备 - Google Patents
一种消息处理方法、装置及设备 Download PDFInfo
- Publication number
- CN113064707B CN113064707B CN202110348539.6A CN202110348539A CN113064707B CN 113064707 B CN113064707 B CN 113064707B CN 202110348539 A CN202110348539 A CN 202110348539A CN 113064707 B CN113064707 B CN 113064707B
- Authority
- CN
- China
- Prior art keywords
- message
- delay
- recovery
- storage unit
- target
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请公开了消息处理方法、装置及设备,方法包括:接收第一客户端发送的消息延迟请求,消息延迟请求包括消息类型、延迟消息集合和延迟消息集合中每个延迟消息对应的延迟时间;将延迟消息集合发送给消息系统;在消息类型为目标存储消息的情况下,根据每个延迟消息对应的恢复时间和存储系统中至少一个存储单元对应的恢复时间段,从至少一个存储单元中确定每个延迟消息对应的目标存储单元;将每个延迟消息转储于所述对应的目标存储单元;若目标存储单元对应的恢复时间段满足预设条件,由至少一个恢复系统将目标存储单元中的延迟消息恢复至消息系统。利用本申请实施例提供的技术方案至少可以实现大量延迟消息的高效处理。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种消息处理方法、装置及设备。
背景技术
随着计算机技术的飞速发展,以及第四代通信技术和第五代通信技术的成熟和普及,消息处理的业务需求日益增长。为了处理大量的延迟消息,相关技术采用消息中间件处理即将到期的延迟消息,而将未即将到期的延迟消息存储于数据库中,通过不断扫描数据库,获取数据库中即将到期的延迟消息,将数据库中即将到期的延迟消息导入消息中间件,继续借助消息中间件进行处理。显然,这种消息处理方案不能保证消息的处理效率,无法适应大量延迟消息的应用场景。
发明内容
本申请提供了一种消息处理方法、装置、设备及计算机存储介质,至少可以解决相关技术中消息处理效率低、无法高效处理大量延迟消息的技术问题。
一方面,本申请提供了一种消息处理方法,所述方法包括:
接收第一客户端发送的消息延迟请求,所述消息延迟请求包括消息类型、延迟消息集合和所述延迟消息集合中每个延迟消息对应的延迟时间;
将所述延迟消息集合发送给消息系统;
在所述消息类型为目标存储消息的情况下,确定所述每个延迟消息对应的恢复时间;
获取存储系统中的至少一个存储单元对应的恢复时间段;
根据所述每个延迟消息对应的恢复时间和所述至少一个存储单元对应的恢复时间段,从至少一个存储单元中确定所述每个延迟消息对应的目标存储单元;
将所述每个延迟消息转储于所述对应的目标存储单元;
在所述目标存储单元对应的恢复时间段满足预设条件的情况下,由至少一个恢复系统将所述目标存储单元中的延迟消息恢复至所述消息系统。
另一方面提供了一种消息处理装置,所述装置包括:
接收模块,用于接收第一客户端发送的消息延迟请求,所述消息延迟请求包括消息类型、延迟消息集合和所述延迟消息集合中每个延迟消息对应的延迟时间;
发送模块,用于将所述延迟消息集合发送给消息系统;
第一确定模块,用于在所述消息类型为目标存储消息的情况下,确定所述每个延迟消息对应的恢复时间;
获取模块,用于获取存储系统中的至少一个存储单元对应的恢复时间段;
第二确定模块,用于根据所述每个延迟消息对应的恢复时间和所述至少一个存储单元对应的恢复时间段,从至少一个存储单元中确定所述每个延迟消息对应的目标存储单元;
转储模块,用于将所述每个延迟消息转储于所述对应的目标存储单元;
恢复模块,用于在所述目标存储单元对应的恢复时间段满足预设条件的情况下,由至少一个恢复系统将所述目标存储单元中的延迟消息恢复至所述消息系统。
在一些实施例中,所述恢复模块包括:
获取单元,用于获取预设的恢复加载阈值和所述存储系统的当前时间;
确定单元,用于根据所述预设的恢复加载阈值和所述存储系统的当前时间,确定目标时间段;
恢复单元,用于在所述目标存储单元对应的恢复时间段位于所述目标时间段内的情况下,由至少一个恢复系统将所述目标存储单元中的延迟消息恢复至所述消息系统。
在一些实施例中,所述恢复系统的数量为至少两个;所述装置还包括:
第二获取模块,用于获取所述延迟消息集合的集合名称和预设的分组数量;
计算模块,用于对所述集合名称进行哈希计算,得到所述每个延迟消息对应的一致性哈希值;
第三确定模块,用于根据所述每个延迟消息对应的一致性哈希值和所述预设的分组数量,确定所述每个延迟消息对应的分组标识;
相应的,所述恢复单元,还用于由所述每个延迟消息对应的目标恢复系统将所述每个延迟消息恢复至所述消息系统。
在一些实施例中,所述装置还包括:
第三获取模块,用于获取所述目标存储单元中的延迟消息对应的恢复状态;
相应的,所述恢复单元还包括:
确定子单元,用于根据所述目标存储单元中的延迟消息对应的恢复状态,从所述目标恢复单元中确定出未恢复的延迟消息;
恢复子单元,用于由所述未恢复的延迟消息对应的目标恢复系统将所述目标存储单元中未恢复的延迟消息恢复至所述消息系统。
在一些实施例中,所述装置还包括:
重启模块,用于在所述未恢复的延迟消息对应的目标恢复系统工作异常的情况下,重启所述目标恢复系统;
第四获取模块,用于获取所述目标恢复系统重新工作的起始时间;
第四确定模块,用于根据所述起始时间和所述预设的恢复加载阈值,从所述目标存储单元未恢复的延迟消息中确定出过期消息;
第五获取模块,用于获取所述过期消息对应的配置信息;
删除/保留模块,用于根据所述过期消息对应的配置信息,对所述过期消息进行删除或者保留。
在一些实施例中,所述装置包括:
更新模块,用于在所述目标存储单元中未恢复的延迟消息成功恢复至所述消息系统的情况下,更新所述未恢复的延迟消息的恢复状态为已恢复。
在一些实施例中,所述第一确定模块包括:
获取单元,用于在所述消息类型为目标存储消息的情况下,获取所述消息延迟请求的接收时间;
确定单元,用于根据所述消息延迟请求的接收时间和所述每个延迟消息对应的延迟时间,确定所述每个延迟消息对应的恢复时间。
在一些实施例中,所述装置还包括:
推送模块,用于在所述消息类型为非目标存储消息的情况下,由所述消息系统根据所述每个延迟消息对应的延迟时间,将所述每个延迟消息推送至所述第一客户端对应的第二客户端。
另一方面提供了一种消息处理设备,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序、所述至少一条指令或所述至少一段程序由所述处理器加载并执行以实现如上所述的消息处理方法。
另一方面提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如上述的消息处理方法。
本申请提供的消息处理方法、装置、设备及计算机可读存储介质,具有如下技术效果:
本申请在延迟消息集合的消息类型为目标存储消息的情况下,根据延迟消息集合中每个延迟消息对应的恢复时间和至少一个存储单元对应的恢复时间段,确定每个延迟消息对应的目标存储单元,将每个延迟消息存储于对应的目标存储单元,可实现大量延迟消息的有序存储,有利于在恢复延迟消息的情况下,提高延迟消息的恢复效率,从而提高延迟消息的处理效率,适应大量延迟消息的处理场景。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案和优点,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
图1是本申请实施例提供的一种消息处理系统的结构示意图;
图2是本申请实施例提供的另一种消息处理系统的结构示意图;
图3是本申请实施例提供的一种消息处理方法的流程示意图;
图4是本申请实施例提供的一种恢复时间确定方法的流程示意图;
图5是本申请实施例提供的一种延迟消息恢复方法的流程示意图;
图6是本申请实施例提供的一种目标恢复系统确定方法的流程示意图;
图7是本申请实施例提供的另一种延迟消息恢复方法的流程示意图;
图8是本申请实施例提供的一种消息处理方法的应用示意图;
图9是本申请实施例提供的另一种消息处理方法的应用示意图;
图10是本申请实施例提供的一种消息处理装置的结构示意图;
图11是本申请实施例提供的一种服务器的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本申请实施例涉及一种消息处理系统,上述系统至少包括(第一)客户端和服务端。具体的,上述服务端可以用于部署消息系统、存储系统和至少一个恢复系统。
在一个具体的实施例中,上述消息处理系统可以是由(第一)客户端、多个节点(接入网络中的任意形式的计算设备,如服务器、用户终端)可以通过网络通信的形式连接形成的分布式系统。其中,消息系统、存储系统和至少一个恢复系统可以部署于同一个节点,也可以分别部署于不同的节点。
以分布式系统为区块链系统为例,参见图1,图1是本申请实施例提供的分布式系统100应用于区块链系统的一个可选的结构示意图,由多个节点(接入网络中的任意形式的计算设备,如服务器、用户终端)和(第一)客户端形成,节点之间形成组成的点对点(P2P,Peer To Peer)网络,P2P协议是一个运行在传输控制协议(TCP,Transmission ControlProtocol)协议之上的应用层协议。在分布式系统中,任何机器如服务器、终端都可以加入而成为节点,节点包括硬件层、中间层、操作系统层和应用层。
在一个具体的实施例中,如图2所示,为本申请实施例提供的另一种消息处理系统的示意图。该系统可以包括客户端01和服务端02。本申请实施例中,客户端01(第一客户端)可以用于向服务端02发送消息延迟请求。可选的,客户端01可以包括智能手机、台式计算机、平板电脑、笔记本电脑、智能音箱、数字助理、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、智能可穿戴设备等类型的实体设备。也可以包括运行于上述实体设备上的软体,例如应用程序、网站等。
本申请实施例中,服务端02可以用于接收第一客户端01发送的延迟消息请求,根据延迟消息请求,对延迟消息进行处理。可选的,服务端02可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(ContentDelivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。具体的,服务端02可以提供消息系统、存储系统和至少一个恢复系统。在一个可选的实施例中,存储系统可以提供云数据库。
上述客户端01、服务端02可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。此外,需要说明的是,上述图2对应的系统架构仅仅是本说明书实施例提供的一种消息处理系统的架构,在实际应用中,还可以包括其他系统架构。例如,程序处理也可以在服务端实现等。
以下介绍本申请一种消息处理方法,图3是本申请实施例提供的一种消息处理方法的流程示意图,本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的系统或服务器产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。具体的如图3所示,所述方法可以包括:
S301:接收第一客户端发送的消息延迟请求,所述消息延迟请求包括消息类型、延迟消息集合和所述延迟消息集合中每个延迟消息对应的延迟时间。
本说明书实施例中,所述第一客户端为业务方的消息生产者,用于生产源消息集合,该源消息集合包括至少两个延迟消息。所述第一客户端的数量可以为至少一个。
本说明书实施例中,所述消息系统用于将至少两个延迟消息推送给所述第一客户端对应的第二客户端;所述消息系统可以部署于消息服务器中。
本说明书实施例中,所述消息类型包括目标存储消息和非目标存储消息。其中,消息类型为目标存储消息的延迟消息集合中,每个延迟消息对应的延迟时间大于或者等于预设的延迟时间阈值;消息类型为非目标存储消息的延迟消息集合中,每个延迟消息的延迟时间小于预设的延迟时间阈值。
S303:将所述延迟消息集合发送给消息系统。
本说明书实施例中,所述第一客户端将消息类型为目标存储消息的延迟消息集合、和/或消息类型为非目标存储消息的延迟消息集合发送给所述消息系统。
在一个具体的实施例中,上述消息类型为目标存储消息的延迟消息集合、以及消息类型为非目标存储消息的延迟消息集合的获取步骤包括:
由所述第一客户端根据上述至少两个延迟消息对应的延迟时间内和预设的延迟时间阈值,从上述源消息集合中确定出延迟时间大于预设的延迟时间阈值的第一目标延迟消息,得到消息类型为目标存储消息的延迟消息集合;
由所述第一客户端从上述源消息集合中确定出延迟时间小于预设的延迟时间阈值的第二目标延迟消息,得到消息类型为非目标存储消息的延迟消息集合。
本说明书实施例中,通过第一客户端预先将源消息集合划分为消息类型为目标存储消息的延迟消息集合和消息类型为非目标存储消息的延迟消息集合,便于对不同消息类型的延迟消息集合进行针对性处理,提高延迟消息的处理效率。
在一个可选的实施例中,为了简化第一客户端的部署,所述第一客户端可以通过调用软件开发工具包,实现上述两种消息类型的延迟消息集合的获取步骤。
在一个可选的实施例中,所述第一客户端可以对延迟时间大于预设的延迟时间阈值的第一目标延迟消息进行消息转换,得到消息类型为目标存储消息的延迟消息集合。
具体的,上述第一客户端可以对延迟时间大于预设的延迟时间阈值的第一目标延迟消息进行消息转换包括:
第一客户端获取第一目标延迟消息对应的消息体、延迟消息、生产地址和源消息集合的集合名称,对第一目标延迟消息对应的消息体、延迟消息、生产地址和源消息集合的集合名称进行封装。
本说明书实施例中,封装所采用的方法基于消息的传输协议而定。
在一个可选的实施例中,在传输协议为TCP/IP的情况下,采用基于定界符的成帧方法对第一目标延迟消息对应的消息体、延迟消息、生产地址和源消息集合的集合名称进行封装;
在一个可选的实施例中,在传输协议为UDP的情况下,采用基于消息长度的成帧方法对第一目标延迟消息对应的消息体、延迟消息、生产地址和源消息集合的集合名称进行封装。
上述实施例中,成帧方法的目的是便于消息接收端(服务端)定位消息首尾位置。
本说明实施例中,通过第一客户端对第一目标延迟消息进行转换,得到消息类型为目标存储消息的延迟消息集合,有利于在后续的消息处理过程中、提高消息类型为目标存储消息的延迟消息集合的转储效率和恢复效率。
S305:在所述消息类型为目标存储消息的情况下,确定所述每个延迟消息对应的恢复时间。
在一个具体的实施例中,如图4所示,所述确定所述每个延迟消息对应的恢复时间包括:
S401:在所述消息类型为目标存储消息的情况下,获取所述消息延迟请求的接收时间。
S403:根据所述消息延迟请求的接收时间和所述每个延迟消息对应的延迟时间,确定所述每个延迟消息对应的恢复时间。
本说明书实施例中,在延迟消息集合的消息类型为目标存储消息的情况下,确定延迟消息集合中每个延迟消息对应的恢复时间,可以根据每个延迟消息对应的延迟时间,将每个延迟消息转储于存储系统中,有利于每个延迟消息的有序存储,进一步提高延迟消息的处理效率。
S307:获取存储系统中的至少一个存储单元对应的恢复时间段。
本说明书实施例中,所述存储系统可以部署于消息服务器中,还可以部署于不同于消息服务器的其他服务器中。
本说明书实施例中,预先设置所述至少一个存储单元对应的恢复时间段的时间级别。其中,上述时间级别基于延迟消息的数据量而定。
在一个具体的实施例中,在所述获取存储系统中的至少一个存储单元对应的恢复时间段之前,上述方法还包括:
从每个延迟消息对应的恢复时间中确定出最小恢复时间和最大恢复时间,根据最小恢复时间、最大恢复时间和上述时间级别设置所述至少一个存储单元对应的恢复时间段。
在实际应用中,考虑到延迟消息的数据量可以达到百万条/单位时间,一般将上述时间级别设置在小时级别。
例如,每个延迟消息对应的恢复时间中、最小恢复时间为2021年02月25日9点50分50秒,最大恢复时间为2021年02月25日11点20分01秒,时间级别为小时级别。可以确定,最小恢复时间和最大恢复时间覆盖了一天当中的3个小时,则将存储系统中的3个存储单元用于存储延迟消息,确定这3个存储单元对应的恢复时间段为2021年02月25日9点、2021年02月25日10点和2021年02月25日11点。
S309:根据所述每个延迟消息对应的恢复时间和所述至少一个存储单元对应的恢复时间段,从至少一个存储单元中确定所述每个延迟消息对应的目标存储单元。
本说明书实施例中,根据每个延迟消息对应的恢复时间,能够确定每个延迟时间对应的恢复时间所处的恢复时间段,结合至少一个存储单元对应的恢复时间段,即可确定每个延迟消息对应的目标存储单元。
在一个可选的实施例中,在所述存储单元存储的延迟消息的数据量大于或等于所述存储单元的最大存储限额的情况下,新增存储单元;其中,所述新增的存储单元与该存储单元对应的恢复时间段相同。
在一个可选的实施例中,同一存储单元下的多个延迟消息的存储顺序,可以与多个延迟消息对应的延迟时间的时间顺序一致。
本说明书实施例中,上述延迟消息的转储方案可以实现延迟消息的有序存储,为提高延迟消息的恢复效率提供条件。
S311:将所述每个延迟消息转储于所述对应的目标存储单元。
S313:在所述目标存储单元对应的恢复时间段满足预设条件的情况下,将所述目标存储单元中的延迟消息恢复至所述消息系统。
本说明书实施例中,考虑到对延迟消息逐条恢复效率低下,为了提高延迟消息的恢复效率,可以以存储单元为单位,由所述至少一个恢复系统对位于同一存储单元的延迟消息进行批量恢复。
在一个可选的实施例中,通过计算目标时间段,可以结合目标时间段和所述目标存储单元对应的恢复时间阈值,确定哪个/些目标存储单元中的延迟消息为即将到期的延迟消息,将即将到期的延迟消恢复至消息系统中。
相应的,如图5所示,所述在所述目标存储单元对应的恢复时间段满足预设条件的情况下,由至少一个恢复将所述目标存储单元中未恢复的延迟消息恢复至所述消息系统包括:
S501:获取预设的恢复加载阈值和所述存储系统的当前时间。
本说明书实施例中,预先设置恢复加载阈值。
本说明书实施例中,可以从存储系统的时间模块中获取存储系统的当前时间。
S503:根据所述预设的恢复加载阈值和所述存储系统的当前时间,确定目标时间段。
S505:在所述目标存储单元对应的恢复时间段位于所述目标时间段内的情况下,由所述至少一个恢复系统将所述目标存储单元中的延迟消息恢复至所述消息系统。
在一个可选的实施例中,在考虑到延迟消息的恢复效率的情况下,还可以考虑延迟消息的恢复精度,由所述至少一个恢复系统将目标存储单元中恢复时间位于目标时间段内的部分延迟消息恢复至消息系统。
相应的,所述在所述目标存储单元对应的恢复时间段满足预设条件的情况下,将所述目标存储单元中未恢复的延迟消息恢复至所述消息系统还包括:
在所述目标存储单元对应的恢复时间段与所述目标时间段重叠的情况下,根据所述目标时间段从所述目标存储单元的延迟消息中确定目标恢复消息;
由所述至少一个恢复系统将目标恢复消息恢复至所述消息系统。
在实际应用中,可以基于实际应用需求,选择上述实施例中的一种实现延迟消息的恢复。
本说明书实施例中,对延迟消息进行批量恢复,可以大大提高延迟消息的恢复效率。
在一个可选的实施例中,可以根据所述至少一个存储单元对应的恢复时间段,设置所述至少一个存储单元的单元标识。
具体的,上述单元标识的格式可以为“dtopic+xx年xx月xx日xx时+自增编号”。其中,“dtopic”为单元名称的前缀,表示存储单元用于存储延迟消息;“x年xx月xx日xx时”表示存储单元对应的恢复时间段;“自增编号”表示存储单元为同一恢复时间段的第几个存储单元,在新增同一恢复时间段的存储单元的情况下,自动增一。
由于至少一个存储单元对应的单元名称中包括对应的恢复时间段,在一个可选的实施例中,可以基于至少一个存储单元对应的单元名称,建立索引。
本说明书实施例中,通过查询索引可以迅速地确定恢复时间段满足预设条件的目标存储单元,间接提高延迟消息的恢复效率。
在一个可选的实施例中,所述恢复系统的数量可以为一个;在所述目标存储单元对应的恢复时间段满足预设条件的情况下,由所述恢复系统将所述目标存储单元中的延迟消息恢复至所述消息系统,实现所述目标存储单元中的延迟消息的恢复。
在一个可选的实施例中,考虑到所述目标存储单元中的延迟消息的数据量较大的情况下,一个恢复系统的性能不足以承载所述目标存储单元中的延迟消息的恢复业务,所述恢复系统的数量还可以为至少两个,由至少两个恢复系统将所述目标存储单元中的延迟消息恢复至所述消息系统,实现所述目标存储单元中的延迟消息的恢复。
其中,所述一个恢复系统的性能包括所述恢复系统所在服务器的CPU(Centralprocessing unit,中央处理器)个数、该服务端分配给所述恢复系统的内存和磁盘容量。其中,所述恢复系统所在服务器可以为消息服务器,也可以为存储系统所在服务器,还可以为不同于消息服务器和存储系统所在服务器的服务器。
还需要说明的是,本说明书实施例中,恢复系统是无状态、可扩展的。
在一个可选的实施例中,可以在将一个恢复系统部署于服务器的情况下,在服务器上预留一定的扩展空间。根据该一个恢复系统的性能,预估该一个恢复系统是否能够承载所述目标存储单元中的延迟消息的恢复业务。在不能承载的情况下,利用上述预留的一定的扩展空间,对该一个恢复系统进行扩展,得到至少两个恢复系统。
在一个可选的实施例中,如图6所示,在所述恢复系统的数量为至少两个的情况下,上述方法还包括:
S601:获取所述延迟消息集合的集合名称和预设的分组数量。
本说明书实施例中,预先设置分组数量,以根据所述预设的分组数量将所述目标存储单元中的延迟消息划分为至少两个分组。
S603:对所述集合名称进行哈希计算,得到所述每个延迟消息对应的一致性哈希值。
在一个可选的实施例中,在第一客户端的数量为至少两个的情况下,还可以对所述每个延迟消息对应的源消息集合的集合名称进行哈希计算,得到所述每个延迟消息对应的一致性哈希值。
S605:根据所述每个延迟消息对应的一致性哈希值和所述预设的分组数量,确定所述每个延迟消息对应的分组标识。
本说明书实施例中,所述每个延迟消息对应的分组标识的计算公式见公式1为:所述每个延迟消息对应的分组标识=所述每个延迟消息对应的一致性哈希值%所述预设的分组数量。
也即,所述每个延迟消息对应的分组标识等于所述每个延迟消息对应的一致性哈希值除以所述预设的分组数量所剩的余数。
S607:根据所述每个延迟消息对应的分组标识,从所述至少两个恢复系统中确定所述每个延迟消息对应的目标恢复系统。
根据所述每个延迟消息对应的分组标识的计算公式可知,在分组数量为N(N为大于等于2的自然数)的情况下,分组标识的数量为N个,具体为0、1、2、……、N-1。
基于此,在一个可选的实施例中,可以设置分组数量与恢复系统的数量相同,预先对至少两个恢复系统从0进行编号,确定编号与每个延迟消息对应的分组标识相同的恢复系统为每个延迟消息对应的目标恢复系统。例如,分组标识为1的延迟消息由编号为1的恢复系统进行恢复。
基于此,在一个可选的实施例中,可以预先设置N个分组标识与至少两个恢复系统的对应关系,根据该对应关系,从至少两个恢复系统中确定所述每个延迟消息对应的目标恢复系统。
在一个可选的实施例中,还可以预先对至少两个恢复系统从0进行编号,根据公式2来选择所述每个延迟消息对应的目标恢复系统。
上述公式2可以为:所述每个延迟消息对应的目标恢复系统的编号=所述每个延迟消息对应的分组标识%恢复系统的数量。
也即,所述每个延迟消息对应的目标恢复系统的编号等于所述每个延迟消息对应的分组标识除以恢复系统的数量所剩的余数。
以上三种确定目标恢复系统的方案,可以根据实际应用的需求进行选择,可丰富本申请实施例提供的消息处理方法的应用场景。
相应的,所述将所述目标存储单元中的延迟消息恢复至所述消息系统包括:
由所述每个延迟消息对应的目标恢复系统将所述每个延迟消息恢复至所述消息系统。
本说明书实施例中,设置至少两个恢复系统,可以均衡恢复系统的负载。
在一个可选的实施例中,在至少两个恢复系统中的某个恢复系统工作异常的情况下,还可以分配其他恢复系统继续处理该工作异常的恢复系统的恢复业务,可以解决单点问题,避免单个恢复系统工作异常所导致的恢复业务中断和异常。
在一个可选的实施例中,如图7所示,上述方法还包括:
S701:获取所述目标存储单元中的延迟消息对应的恢复状态;
相应的,在一个具体的实施例中,所述由所述每个延迟消息对应的目标恢复系统将所述每个延迟消息恢复至所述消息系统包括:
S703:根据所述目标存储单元中的延迟消息对应的恢复状态,从所述目标恢复单元中确定出未恢复的延迟消息;
S705:由所述未恢复的延迟消息对应的目标恢复系统将所述目标存储单元中未恢复的延迟消息恢复至所述消息系统。
本说明书实施例中,通过在所述目标存储单元中设置每个延迟消息对应的恢复状态,可以根据每个延迟消息的恢复状态,对已恢复和未恢复的延迟消息进行标记,以避免延迟消息的重复恢复。
在一个可选的实施例中,上述方法还包括:
在所述未恢复的延迟消息对应的目标恢复系统工作异常的情况下,重启所述目标恢复系统;
获取所述目标恢复系统重新工作的起始时间;
根据所述起始时间和所述预设的恢复加载阈值,从所述目标存储单元未恢复的延迟消息中确定出过期消息;
获取所述过期消息对应的配置信息;
根据所述过期消息对应的配置信息,对所述过期消息进行删除或者保留。
本说明书实施例中,在所述未恢复的延迟消息对应的所述目标恢复系统工作异常的情况下,如果未恢复的延迟消息所在目标存储单元对应的恢复时间段满足预设条件,将会导致未恢复的延迟消息中出现未恢复即过期的过期消息。
本说明书实施例中,预先设置所述过期消息对应的配置信息。其中,所述配置信息表征所述过期消息是否需要恢复。
可以理解,本说明书实施例中,第一客户端为业务方的消息生产者,第二客户端为业务方的消息消费者。第一客户端生产的延迟消息,最终被第二客户端消费,以完成目标业务。
在实际应用中,目标业务的实际业务需求不同,过期消息对完成目标业务的影响也不同。
本说明书实施例中,可以根据所述目标业务的实际业务需求,预先设置所述延迟消息集合中每个延迟消息对应的配置信息,以表示每个延迟消息过期后是否仍具有推送价值。例如,某个延迟消息对应的配置信息为0,则表示某个延迟消息过期后仍具有推送价值;某个延迟消息对应的配置信息为1,则表示某个延迟消息过期后不具有推送价值。
基于此,可以根据所述过期消息对应的配置信息,确定所述过期消息是否具有推送价值,对不具有推送价值的过期消息进行删除,对具有推送价值的过期消息进行保留。
本说明书实施例中,可以避免不具有推送价值的过期消息被消息系统推送至第一客户端对应的第二客户端,影响目标业务出错的问题。还可以将具有推送价值的过期消息被消息系统推送至第一客户端对应的第二客户端,确保目标业务能够完成。
在一些实施例中,上述方法还包括:
在所述目标存储单元中未恢复的延迟消息成功恢复至所述消息系统的情况下,更新所述未恢复的延迟消息的恢复状态为已恢复。
本说明书实施例中,通过及时更新所述目标存储单元中未恢复的延迟消息的恢复状态,可以避免延迟消息的重复恢复问题。
在一些实施例中,上述方法还包括:
在所述消息类型为非目标存储消息的情况下,由所述消息系统根据所述每个延迟消息对应的延迟时间,将所述每个延迟消息推送至所述第一客户端对应的第二客户端。
本说明书实施例中,所述消息系统本身设置有延迟机制,该延迟机制可以包括但不限于例如轮询、环形队列、定时器和任务集合。利用该延迟机制,消息系统可以根据每个延迟消息对应的延迟时间,实现每个延迟消息的延迟推送。
在一个可选的实施例中,所述至少一个存储单元的存储结构可以包括但不限于表结构、链式结构和树结构。本说明书实施例中,考虑到数据存储的便宜性,所述至少一个存储单元的存储结构优选为表结构。
在一个可选的实施例中,在对第一目标延迟消息进行消息转换,得到消息类型为目标存储消息的延迟消息集合的情况下,以表结构的存储单元为例,存储单元的表结构关键字段如表1所示:
表1
topic | 生产时间 | 生产地址 | 恢复时间 | 分组标识 | 消息体 | 恢复状态 |
其中,上述topic表示延迟消息对应的延迟消息集合的集合名称或者源消息集合的集合名称;上述生产时间表示第一客户端生产延迟消息的时间;上述生产地址表示生产延迟消息的第一客户端;上述分组标识用于确定延迟消息对应的目标恢复系统;上述消息体为上述(第一目标)延迟消息对应的消息体;上述恢复状态表征延迟消息是否恢复。
具体的,如何根据分组标识确定延迟消息对应的目标恢复系统,详见上文阐述,再次不作赘述。
可以理解,对第一目标延迟消息进行消息转换,便于将延迟消息对应的上述信息迅速、有序地存储于延迟消息对应的存储单元中。
本说明书实施例中,上述topic可以用于计算延迟消息对应的一致性哈希值;上述生产时间可以用于结合延迟消息对应的延迟时间、来确定延迟消息对应的恢复时间;上述恢复时间可以用于结合至少一个存储单元对应的恢复时间段、来确定延迟消息对应的目标存储单元;上述分组标识用于确定延迟消息对应的目标恢复系统;上述恢复状态用于标识延时消息是否被恢复、以避免重复恢复的问题。
此外,在需要查询延迟消息对应的上述信息的情况下,均可以根据上述表结构迅速地查询,大大减少查询时间。
如图8所示,本说明书实施例提供了一种消息处理方法的应用示意图,以展示如何处理消息类型为目标存储消息的延迟消息集合、以及如何处理消息类型为非目标存储消息的延迟消息集合。
具体的,第一客户端生产源延迟消息集合,根据预设的延迟时间阈值,从源延迟消息集合中确定出大于或等于预设的延迟时间阈值的第一目标延迟消息,得到消息类型为非目标存储消息的延迟消息集合,从源延迟消息集合中确定出小于预设的延迟时间阈值的第二目标延迟消息,得到消息类型为目标存储消息的延迟消息集合。
消息系统接收第一客户端发送的消息延迟请求,消息延迟请求包括消息类型、延迟消息集合和延迟消息集合中每个延迟消息对应的延迟时间。
针对消息类型为目标存储消息的延迟消息集合,消息系统根据每个延迟消息的恢复时间和存储系统中至少一个存储单元对应的恢复时间段,从至少一个存储单元中确定出每个延迟消息对应的目标存储单元。例如,延迟消息1的恢复时间为2021年12月12日00时01分01秒,则将延迟消息1存储于单元标识为“dtopic+2021_12_12_00+00001”的存储单元中。延迟消息3的恢复时间为2021年01月12日01时05分06秒,则将延迟消息3存储于单元标识为“dtopic+2021_12_12_01+00001”的存储单元中。在单元标识为“dtopic+2021_12_12_00+00001”的存储单元中存储的消息达到5w条的情况下,在恢复时间段“2021年12月12日00时”下新增单元标识为“dtopic+2021_12_12_00+00002”的存储单元,对恢复时间为2021年12月12日00时59分01秒的延迟时间2进行存储。
针对消息类型为非目标存储消息的延迟消息集合,消息系统根据每个延迟消息对应的延迟时间,将每个延迟消息推送给第一客户端对应的第二客户端。
如图9所示,本说明书实施例提供了另一种消息处理方法的应用示意图,以展示如何将目标存储单元中的延迟消息恢复至消息系统。
具体的,在存储系统的当前时间为2020年12月11日23时30分、且恢复时间阈值为30分钟的情况下,确定目标时间段为2020年12月12日00时,单元标识为“dtopic+2021_12_12_00+00001”的存储单元对应的恢复时间段满足预设条件(位于目标时间段内),对该存储单元的每个延迟消息进行恢复。
在对该存储单元的每个延迟消息进行恢复之前,根据上述公式1,计算出每个延迟消息对应的分组标识。
其中,恢复时间分别为“2020年12月12日00时01分01秒”、“2020年12月12日00时02分02秒”和“2020年12月12日00时02分03秒”的延迟消息对应的分组标识为0,则通过恢复系统0将前述延迟消息恢复至消息系统。其中,恢复时间分别为“2020年12月12日00时01分02秒”、“2020年12月12日00时02分01秒”和“2020年12月12日00时03分01秒”的延迟消息对应的分组标识为1,则通过恢复系统1将前述延迟消息恢复至消息系统。
应当理解的是,以上的消息处理方法的应用示意图仅是示例性和解释性的,并不能限制本申请。
本说明书实施例中,可以对不同消息类型的延迟消息集合进行针对性处理,提高延迟消息的处理效率。并且,在延迟消息集合的消息类型为目标存储消息的情况下,可以根据延迟消息集合中每个延迟消息对应的延迟时间和至少一个存储单元对应的恢复时间段,从至少一个存储单元中确定每个延迟消息对应的目标存储单元,将每个延迟消息有序存储于对应的目标存储单元中,有利于每个延迟消息的有序恢复,提高延迟消息的处理效率。通过设置至少两个恢复系统,利用至少两个恢复系统将恢复时间段符合预设条件的目标存储单元中的延迟消息恢复至消息系统,在提高延迟消息的恢复效率和均衡负载的同时,还可以避免单点问题。如此,可大大提高延迟消息的处理效率,在处理大量延迟消息的情况下,也能够满足延迟消息的处理需求。
如图10所示,本申请实施例还提供了一种消息处理装置,所述装置包括:
接收模块1001,用于接收第一客户端发送的消息延迟请求,所述消息延迟请求包括消息类型、延迟消息集合和所述延迟消息集合中每个延迟消息对应的延迟时间;
发送模块1003,用于将所述延迟消息集合发送给消息系统;
第一确定模块1005,用于在所述消息类型为目标存储消息的情况下,确定所述每个延迟消息对应的恢复时间;
获取模块1007,用于获取存储系统中的至少一个存储单元对应的恢复时间段;
第二确定模块1009,用于根据所述每个延迟消息对应的恢复时间和所述至少一个存储单元对应的恢复时间段,从至少一个存储单元中确定所述每个延迟消息对应的目标存储单元;
转储模块1011,用于将所述每个延迟消息转储于所述对应的目标存储单元;
恢复模块1013,用于在所述目标存储单元对应的恢复时间段满足预设条件的情况下,由至少一个恢复系统将所述目标存储单元中的延迟消息恢复至所述消息系统。
在一些实施例中,所述恢复模块1013包括:
获取单元,用于获取预设的恢复加载阈值和所述存储系统的当前时间;
确定单元,用于根据所述预设的恢复加载阈值和所述存储系统的当前时间,确定目标时间段;
恢复单元,用于在所述目标存储单元对应的恢复时间段位于所述目标时间段内的情况下,由至少一个恢复系统将所述目标存储单元中的延迟消息恢复至所述消息系统。
在一些实施例中,所述恢复系统的数量为至少两个;所述装置还包括:
第二获取模块,用于获取所述延迟消息集合的集合名称和预设的分组数量;
计算模块,用于对所述集合名称进行哈希计算,得到所述每个延迟消息对应的一致性哈希值;
第三确定模块,用于根据所述每个延迟消息对应的一致性哈希值和所述预设的分组数量,确定所述每个延迟消息对应的分组标识;
相应的,所述恢复单元,还用于由所述每个延迟消息对应的目标恢复系统将所述每个延迟消息恢复至所述消息系统。
在一些实施例中,所述装置还包括:
第三获取模块,用于获取所述目标存储单元中的延迟消息对应的恢复状态;
相应的,所述恢复单元还包括:
确定子单元,用于根据所述目标存储单元中的延迟消息对应的恢复状态,从所述目标恢复单元中确定出未恢复的延迟消息;
恢复子单元,用于由所述未恢复的延迟消息对应的目标恢复系统将所述目标存储单元中未恢复的延迟消息恢复至所述消息系统。
在一些实施例中,所述装置还包括:
重启模块,用于在所述未恢复的延迟消息对应的目标恢复系统工作异常的情况下,重启所述目标恢复系统;
第四获取模块,用于获取所述目标恢复系统重新工作的起始时间;
第四确定模块,用于根据所述起始时间和所述预设的恢复加载阈值,从所述目标存储单元未恢复的延迟消息中确定出过期消息;
第五获取模块,用于获取所述过期消息对应的配置信息;
删除/保留模块,用于根据所述过期消息对应的配置信息,对所述过期消息进行删除或者保留。
在一些实施例中,所述装置包括:
更新模块,用于在所述目标存储单元中未恢复的延迟消息成功恢复至所述消息系统的情况下,更新所述未恢复的延迟消息的恢复状态为已恢复。
在一些实施例中,所述第一确定模块1005包括:
获取单元,用于在所述消息类型为目标存储消息的情况下,获取所述消息延迟请求的接收时间;
确定单元,用于根据所述消息延迟请求的接收时间和所述每个延迟消息对应的延迟时间,确定所述每个延迟消息对应的恢复时间。
在一些实施例中,所述装置还包括:
推送模块,用于在所述消息类型为非目标存储消息的情况下,由所述消息系统根据所述每个延迟消息对应的延迟时间,将所述每个延迟消息推送至所述第一客户端对应的第二客户端。
所述的装置实施例中的装置与方法实施例基于同样地发明构思。
本申请实施例还提供了一种消息处理设备,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序、所述至少一条指令或所述至少一段程序由所述处理器加载并执行以实现如上所述的消息处理方法。
所述的设备实施例中的设备与方法实施例基于同样地发明构思。
本申请实施例还提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现如上所述的消息处理方法。
本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实现方式中提供的方法。
本申请实施例提供了一种消息处理服务器,该消息处理服务器包括处理器和存储器,该存储器中存储有至少一条指令、至少一段程序、代码集或指令集,该至少一条指令、该至少一段程序、该代码集或指令集由该处理器加载并执行以实现如上述方法实施例所提供的消息处理方法。
存储器可用于存储软件程序以及模块,处理器通过运行存储在存储器的软件程序以及模块,从而执行各种功能应用以及消息处理。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、功能所需的应用程序等;存储数据区可存储根据所述设备的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器还可以包括存储器控制器,以提供处理器对存储器的访问。
本申请实施例所提供的方法实施例可以在移动终端、计算机终端、服务器或者类似的运算装置中执行。以运行在服务器上为例,图11是本申请实施例提供的一种消息处理方法的服务器的硬件结构框图。如图11所示,该服务器1100可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(Central Processing Units,CPU)1110(处理器1110可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器1130,一个或一个以上存储应用程序1123或数据1122的存储介质1120(例如一个或一个以上海量存储设备)。其中,存储器1130和存储介质1120可以是短暂存储或持久存储。存储在存储介质1120的程序可以包括一个或一个以上模块,每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1110可以设置为与存储介质1120通信,在服务器1100上执行存储介质1120中的一系列指令操作。服务器1100还可以包括一个或一个以上电源1160,一个或一个以上有线或无线网络接口1150,一个或一个以上输入输出接口1140,和/或,一个或一个以上操作系统1121,例如Windows ServerTM,Mac OSXTM,UnixTM,LinuxTM,FreeBSDTM等等。
输入输出接口1140可以用于经由一个网络接收或者发送数据。上述的网络具体实例可包括服务器1100的通信供应商提供的无线网络。在一个实例中,输入输出接口1140包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,输入输出接口1140可以为射频(RadioFrequency,RF)模块,其用于通过无线方式与互联网进行通讯。
本领域普通技术人员可以理解,图11所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,服务器1100还可包括比图11中所示更多或者更少的组件,或者具有与图11所示不同的配置。
本申请的实施例还提供了一种存储介质,所述存储介质可设置于服务器之中以保存用于实现方法实施例中一种消息处理方法相关的至少一条指令、至少一段程序、代码集或指令集,该至少一条指令、该至少一段程序、该代码集或指令集由该处理器加载并执行以实现上述方法实施例提供的消息处理方法。
可选地,在本实施例中,上述存储介质可以位于计算机网络的多个网络服务器中的至少一个网络服务器。可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
由上述本申请提供的消息处理方法、装置、服务器或存储介质的实施例可见,本申请中通过不同消息类型的延迟消息集合进行针对性处理,对消息类型为目标存储消息的延迟消息集合进行有序存储、有序恢复,实现大量延迟消息的存储,大大提高延迟消息的处理效率。另外,利用至少两个恢复系统对存储的延迟消息进行恢复,可以均衡负载,解决单点问题,提高延迟消息的恢复效率。
需要说明的是:上述本申请实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种消息处理方法,其特征在于,所述方法包括:
接收第一客户端发送的消息延迟请求,所述消息延迟请求包括消息类型、延迟消息集合和所述延迟消息集合中每个延迟消息对应的延迟时间;
将所述延迟消息集合发送给消息系统;
在所述消息类型为目标存储消息的情况下,获取所述消息延迟请求的接收时间;
根据所述消息延迟请求的接收时间和所述每个延迟消息对应的延迟时间,确定所述每个延迟消息对应的恢复时间;
获取存储系统中的至少一个存储单元对应的恢复时间段;
根据所述每个延迟消息对应的恢复时间和所述至少一个存储单元对应的恢复时间段,从至少一个存储单元中确定所述每个延迟消息对应的目标存储单元;
将所述每个延迟消息转储于所述对应的目标存储单元;
在所述目标存储单元对应的恢复时间段满足预设条件的情况下,由至少一个恢复系统将所述目标存储单元中的延迟消息恢复至所述消息系统。
2.根据权利要求1所述的方法,其特征在于,所述在所述目标存储单元对应的恢复时间段满足预设条件的情况下,由至少一个恢复系统将所述目标存储单元中未恢复的延迟消息恢复至所述消息系统包括:
获取预设的恢复加载阈值和所述存储系统的当前时间;
根据所述预设的恢复加载阈值和所述存储系统的当前时间,确定目标时间段;
在所述目标存储单元对应的恢复时间段位于所述目标时间段内的情况下,由所述至少一个恢复系统将所述目标存储单元中的延迟消息恢复至所述消息系统。
3.根据权利要求1或2所述的方法,其特征在于,所述恢复系统的数量为至少两个;所述方法还包括:
获取所述延迟消息集合的集合名称和预设的分组数量;
对所述集合名称进行哈希计算,得到所述每个延迟消息对应的一致性哈希值;
根据所述每个延迟消息对应的一致性哈希值和所述预设的分组数量,确定所述每个延迟消息对应的分组标识;
根据所述每个延迟消息对应的分组标识,从所述至少两个恢复系统中确定所述每个延迟消息对应的目标恢复系统;
相应的,所述将所述目标存储单元中的延迟消息恢复至所述消息系统包括:
由所述每个延迟消息对应的目标恢复系统将所述每个延迟消息恢复至所述消息系统。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
获取所述目标存储单元中的延迟消息对应的恢复状态;
相应的,所述由所述每个延迟消息对应的目标恢复系统将所述每个延迟消息恢复至所述消息系统包括:
根据所述目标存储单元中的延迟消息对应的恢复状态,从所述目标恢复单元中确定出未恢复的延迟消息;
由所述未恢复的延迟消息对应的目标恢复系统将所述目标存储单元中未恢复的延迟消息恢复至所述消息系统。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
在所述未恢复的延迟消息对应的目标恢复系统工作异常的情况下,重启所述目标恢复系统;
获取所述目标恢复系统重新工作的起始时间;
根据所述起始时间和所述预设的恢复加载阈值,从所述目标存储单元未恢复的延迟消息中确定出过期消息;
获取所述过期消息对应的配置信息;
根据所述过期消息对应的配置信息,对所述过期消息进行删除或者保留。
6.根据权利要求4所述的方法,其特征在于,所述方法还包括:
在所述目标存储单元中未恢复的延迟消息成功恢复至所述消息系统的情况下,更新所述未恢复的延迟消息的恢复状态为已恢复。
7.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
在所述消息类型为非目标存储消息的情况下,由所述消息系统根据所述每个延迟消息对应的延迟时间,将所述每个延迟消息推送至所述第一客户端对应的第二客户端。
8.一种消息处理装置,其特征在于,所述装置包括:
接收模块,用于接收第一客户端发送的消息延迟请求,所述消息延迟请求包括消息类型、延迟消息集合和所述延迟消息集合中每个延迟消息对应的延迟时间;
发送模块,用于将所述延迟消息集合发送给消息系统;
第一确定模块,用于在所述消息类型为目标存储消息的情况下,获取所述消息延迟请求的接收时间;根据所述消息延迟请求的接收时间和所述每个延迟消息对应的延迟时间,确定所述每个延迟消息对应的恢复时间;
获取模块,用于获取存储系统中的至少一个存储单元对应的恢复时间段;
第二确定模块,用于根据所述每个延迟消息对应的恢复时间和所述至少一个存储单元对应的恢复时间段,从至少一个存储单元中确定所述每个延迟消息对应的目标存储单元;
转储模块,用于将所述每个延迟消息转储于所述对应的目标存储单元;
恢复模块,用于在所述目标存储单元对应的恢复时间段满足预设条件的情况下,由至少一个恢复系统将所述目标存储单元中的延迟消息恢复至所述消息系统。
9.一种消息处理设备,其特征在于,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序、所述至少一条指令或所述至少一段程序由所述处理器加载并执行以实现如权利要求1至7任一所述的消息处理方法。
10.一种存储介质,其特征在于,所述存储介质用于保存至少一条指令,所述至少一条指令用于被处理器加载以执行权利要求1至7任一所述的消息处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110348539.6A CN113064707B (zh) | 2021-03-31 | 2021-03-31 | 一种消息处理方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110348539.6A CN113064707B (zh) | 2021-03-31 | 2021-03-31 | 一种消息处理方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113064707A CN113064707A (zh) | 2021-07-02 |
CN113064707B true CN113064707B (zh) | 2023-01-13 |
Family
ID=76564837
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110348539.6A Active CN113064707B (zh) | 2021-03-31 | 2021-03-31 | 一种消息处理方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113064707B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113595814A (zh) * | 2021-07-06 | 2021-11-02 | 深圳Tcl新技术有限公司 | 消息延迟检测方法、装置、电子设备及存储介质 |
CN114020464B (zh) * | 2021-11-05 | 2022-11-01 | 江苏安超云软件有限公司 | 一种动态处理虚拟化资源的方法、装置及存储介质 |
CN115022263A (zh) * | 2022-06-02 | 2022-09-06 | 政采云有限公司 | 一种延时消息的投递方法、装置、设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108388479A (zh) * | 2018-02-10 | 2018-08-10 | 深圳壹账通智能科技有限公司 | 延迟消息推送方法、装置、计算机设备及存储介质 |
CN111124653A (zh) * | 2019-12-31 | 2020-05-08 | 江苏满运软件科技有限公司 | 延迟消息处理方法、系统、设备和存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7058837B2 (en) * | 2003-05-12 | 2006-06-06 | International Business Machines Corporation | Method and system for providing a message-time-ordering facility |
KR100994128B1 (ko) * | 2008-09-23 | 2010-11-15 | 한국전자통신연구원 | 고정밀 네트워크 동기를 위한 타임 스탬핑 방법 및 장치 |
WO2010050288A1 (ja) * | 2008-10-30 | 2010-05-06 | インターナショナル・ビジネス・マシーンズ・コーポレーション | サーバシステム、サーバ装置、プログラム、および方法 |
-
2021
- 2021-03-31 CN CN202110348539.6A patent/CN113064707B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108388479A (zh) * | 2018-02-10 | 2018-08-10 | 深圳壹账通智能科技有限公司 | 延迟消息推送方法、装置、计算机设备及存储介质 |
CN111124653A (zh) * | 2019-12-31 | 2020-05-08 | 江苏满运软件科技有限公司 | 延迟消息处理方法、系统、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113064707A (zh) | 2021-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113064707B (zh) | 一种消息处理方法、装置及设备 | |
CN107332876B (zh) | 区块链状态的同步方法及装置 | |
CN1988535B (zh) | 文件存储同步方法、系统及客户端 | |
CN111091429A (zh) | 电子票据标识分配方法及装置、电子票据生成系统 | |
CN109981349B (zh) | 调用链信息查询方法以及设备 | |
CN111614748B (zh) | 用于可扩展的对等匹配的设备及方法 | |
CN111190736A (zh) | 基于微服务的低入侵分布式定时任务调度系统及方法 | |
CN109510770B (zh) | 负载均衡节点之间的信息同步方法、装置和处理设备 | |
CN106686117B (zh) | 一种分布式计算集群的数据存储处理系统及方法 | |
Skjegstad et al. | Low complexity set reconciliation using Bloom filters | |
CN113360783B (zh) | 用户在线列表更新方法、装置及计算机设备 | |
CN113467718B (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
CN112804313B (zh) | 基于跨域边缘节点的数据同步方法、装置、设备及介质 | |
CN112817980B (zh) | 一种数据索引处理方法、装置、设备及存储介质 | |
CN116028196A (zh) | 数据处理方法、装置及存储介质 | |
CN115022263A (zh) | 一种延时消息的投递方法、装置、设备及存储介质 | |
CN114997108A (zh) | 订单号的生成方法、装置、设备及存储介质 | |
CN112751895B (zh) | 通信连接保活方法及其系统 | |
CN113297008A (zh) | 数据处理方法以及系统 | |
CN113793612B (zh) | 模型服务的更新方法、装置及存储介质 | |
Tian et al. | Research and implementation of data synchronization with syncml | |
CN113014533B (zh) | 校验文件的处理方法、装置及系统、存储介质、电子装置 | |
CN113703815B (zh) | 离线资源更新方法、装置、终端和存储介质 | |
CN113760683B (zh) | 日志采集方法及装置 | |
CN107635246B (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40048681 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |