CN113342544A - 数据存储架构的设计方法、消息传输方法及装置 - Google Patents
数据存储架构的设计方法、消息传输方法及装置 Download PDFInfo
- Publication number
- CN113342544A CN113342544A CN202110587906.8A CN202110587906A CN113342544A CN 113342544 A CN113342544 A CN 113342544A CN 202110587906 A CN202110587906 A CN 202110587906A CN 113342544 A CN113342544 A CN 113342544A
- Authority
- CN
- China
- Prior art keywords
- queue
- message
- group
- queue group
- groups
- 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.)
- Granted
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)
- Information Transfer Between Computers (AREA)
Abstract
本发明实施例涉及一种数据存储架构的设计方法、消息传输方法及装置,方法包括:将全量消息队列划分为多个队列组;当确定多个队列组中存在发生消息积压的第一队列组时,从除第一队列组以外的其他队列组中选择至少一个消息队列移入第一队列组;在进行消息传输时,根据待传输的目标消息的消息优先级等级从多个队列组中确定一个目标队列组;将目标消息发送至目标队列组中的消息队列,以由消费者从目标消息队列组中的消息队列中获取目标消息。由此,可以实现RocketMQ消息中间件支持消息优先级,并实现将具有不同优先级等级的消息进行隔离,以及在某一队列组发生消息积压时,提高消费者对该队列组中消息的消费速度。
Description
技术领域
本发明实施例涉及数据处理领域,尤其涉及一种数据存储架构的设计方法、消息传输方法及装置。
背景技术
RocketMQ是一款分布式、队列模型的消息中间件,由于其具有低延迟、高性能、高可靠性、万亿级容量、灵活的可扩展性等特点,被广泛应用于各种业务项目中。
在一些业务场景中,往往需要对消息设置消息优先级,以使得重要的消息能够被优先处理。然而,RocketMQ并不支持消息优先级,其在进行消息传输时,并不根据消息优先级的不同而对消息做区分处理,这就导致当消息量激增而导致RocketMQ中消息积压时,无法实现优先对重要的消息进行处理。
发明内容
鉴于此,为解决上述RocketMQ中不支持消息优先级的技术问题,本发明实施例提供一种数据存储架构的设计方法、消息传输方法及装置。
第一方面,本发明实施例提供一种数据存储架构的设计方法,包括:
将全量消息队列划分为多个队列组,每一所述队列组用于存储预设优先级等级的消息;
当确定多个所述队列组中存在发生消息积压的第一队列组时,从除所述第一队列组以外的其他队列组中选择至少一个消息队列移入所述第一队列组。
在一可能的实施方式中,在所述从除所述第一队列组以外的其他队列组中选择至少一个消息队列移入所述第一队列组之后,所述方法还包括:
当确定所述第一队列组当前未发生消息积压时,将移入的所述消息队列移回其原属的所述队列组中。
在一可能的实施方式中,每个所述消息队列配置有消息存储量阈值;
所述确定多个所述队列组中存在发生消息积压的第一队列组,包括:
针对每一所述队列组,确定所述队列组中各消息队列中的消息数目;若所述队列组中存在任意消息数目超过对应的所述消息存储量阈值的消息队列,则将所述队列组确定为发生消息积压的第一队列组。
在一可能的实施方式中,所述从除所述第一队列组以外的其他队列组中选择至少一个消息队列移入所述第一队列组,包括:
从除所述第一队列组以外的其他队列组中确定至少一个第二队列组,所述第二队列组对应的预设优先级等级低于所述第一队列组;
从至少一个所述第二队列组中选择至少一个消息队列移入所述第一队列组。
在一可能的实施方式中,所述从至少一个所述第二队列组中选择至少一个消息队列移入所述第一队列组,包括:
从至少一个所述第二队列组中选择至少一个第一消息队列,所述第一消息队列中的消息数目低于至少一个所述第二队列组中,除所述第一消息队列以外的任一消息队列;
将至少一个所述第一消息队列移入所述第一队列组。
在一可能的实施方式中,在所述第一队列组的数目为N,且N为大于1的自然数的情况下,所述从除所述第一队列组以外的其他队列组中选择至少一个消息队列移入所述第一队列组,包括:
依据对应的优先级等级从高到低的顺序,对N个所述第一队列组进行排序;
从排序结果中排在首位的第一队列组开始,依次执行从除所述第一队列组以外的其他队列组中选择至少一个消息队列移入所述第一队列组的步骤。
在一可能的实施方式中,所述将全量消息队列划分为多个队列组,包括:
将各所述消息队列的队列号与所述预设优先级等级的数目进行取余运算;
将运算结果相同的消息队列归入同一队列组,运算结果不同的消息队列归入不同队列组,其中,根据各所述队列组对应的所述运算结果确定所述队列组对应的所述预设优先级等级。
第二方面,本发明实施例提供一种消息传输方法,包括:
将全量消息队列划分为多个队列组,每一所述队列组用于存储预设优先级等级的消息;
当确定多个所述队列组中存在发生消息积压的第一队列组时,从除所述第一队列组以外的其他队列组中选择至少一个消息队列移入所述第一队列组;
在进行消息传输时,根据待传输的目标消息的优先级等级从多个所述队列组中确定一个目标队列组;
将所述目标消息发送至所述目标队列组中的消息队列,以由消费者从所述目标消息队列组中的消息队列中获取所述目标消息。
第三方面,本发明实施例提供一种消息传输系统,包括:
消费进度监听器,确定各消息队列中的消息数目;
调度器,将全量消息队列划分为多个队列组,每一所述队列组用于存储预设优先级等级的消息;以及当根据多个所述队列组的消息队列中的消息数目确定存在发生消息积压的第一队列组时,从除所述第一队列组以外的其他队列组中选择至少一个消息队列移入所述第一队列组;
队列池,维护多个所述队列组的信息,以及将多个所述队列组的信息同步至生产者;所述信息至少包括所述队列组包含的消息队列、所述队列组对应的预设优先级等级;
生产者,在进行消息传输时,根据待传输的目标消息的优先级等级从多个所述队列组中确定一个目标队列组;将所述目标消息发送至所述目标队列组中的消息队列;
消费者,从多个所述消息队列中获取消息。
第四方面,本发明实施例提供一种数据存储架构的设计装置,包括:
分组模块,用于将全量消息队列划分为多个队列组,每一所述队列组用于存储预设优先级等级的消息;
队列调度模块,用于当确定多个所述队列组中存在发生消息积压的第一队列组时,从除所述第一队列组以外的其他队列组中选择至少一个消息队列移入所述第一队列组。
第五方面,本发明实施例提供一种消息传输装置,包括:
分组模块,用于将全量消息队列划分为多个队列组,每一所述队列组用于存储预设优先级等级的消息;
队列调度模块,用于当确定多个所述队列组中存在发生消息积压的第一队列组时,从除所述第一队列组以外的其他队列组中选择至少一个消息队列移入所述第一队列组;
目标确定模块,用于在进行消息传输时,根据待传输的目标消息的优先级等级从多个所述队列组中确定一个目标队列组;
消息传输模块,用于将所述目标消息发送至所述目标队列组中的消息队列,以由消费者从所述目标消息队列组中的消息队列中获取所述目标消息。
第六方面,本发明实施例提供一种电子设备,包括:处理器和存储器,所述处理器用于执行所述存储器中存储的程序,以实现第一方面或第二方面中任一项所述的方法。
第七方面,本发明实施例提供一种存储介质,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现第一方面或第二方面中任一项所述的方法。
本发明实施例提供的技术方案,通过将一个Topic包括的多个消息队列进行分组,每一队列组用于存储预设优先级等级的消息,实现了RocketMQ消息中间件能够支持消息优先级;在生产者进行消息分发时,根据待传输的目标消息的优先级等级从多个队列组中确定一个目标队列组,将目标消息发送至目标队列组中的消息队列,从而实现了在RocketMQ消息中间件中,将具有不同优先级等级的消息进行隔离;并且,通过在存在发生消息积压的第一队列组时,从其他队列组中选择至少一个消息队列移入第一队列组,增加了第一队列组中消息队列的数目,也即增加了第一队列组中消息队列占所有消息队列的比重,从而增加消费者读取第一队列组中消息的次数,如此则可实现在第一队列组发生消息积压时,提高消费者对第一队列组中消息的消费速度,进一步地,当第一队列组对应较高的优先级等级时,则能够实现提高对重要消息的消费速度,使得重要消息能够优先得到处理。
附图说明
图1为本发明实施例提供的系统架构示意图;
图2为本发明实施例提供的一种将Topic A包括的16个消息队列分为四个队列组的分组结果示意图;
图3为本发明实施例提供的一种数据存储架构的设计方法的实施例流程图;
图4为本发明实施例提供的另一种将Topic A包括的16个消息队列分为四个队列组的分组结果示意图;
图5为本发明实施例提供的一种数据存储架构的设计方法的实施例流程图;
图6为本发明实施例提供的一种消息传输方法的实施例流程图;
图7为本发明实施例提供的一种数据存储架构的设计装置的实施例框图;
图8为本发明实施例提供的一种消息传输装置的实施例框图;
图9为本发明实施例提供的一种的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为便于理解本发明实施例,下面首先结合附图对本发明实施例提供的系统架构进行举例说明:
参见图1,为本发明实施例提供的系统架构示意图。如图1所示,系统架构中包括生产者11、消费者12、RocketMQ消息中间件13,以及优先级队列调度模块14。
本发明实施例中,RocketMQ消息中间件13采用主题模式实现消息分发,例如,RocketMQ消息中间件13包括Topic A(图中未示出),Topic A包括多个消息队列,生产者11发布于Topic A中的消息将被均匀地发送至每一个消息队列中。一个Topic包括的多个消息队列可分布在两个或多个Broker(RocketMQ消息中间件的服务节点)上,例如,Topic A包括16个消息队列,该16个消息队列分布在Broker 131和132上,其中,消息队列Q0~Q7分布在Broker131上,消息队列Q8~Q15分布在Broker132上。
本发明实施例中,优先级队列调度模块14可执行本发明实施例提供的数据存储架构的设计方法,以实现对Topic包括的全量消息队列进行初始分组,得到多个队列组,其中,每一队列组用于存储预设优先级等级的消息,可选地,不同的队列组对应不同的预设优先级等级,以及对多个队列组,也即Topic包括的全量消息队列的分组情况进行动态调整。
作为一个实施例,优先级队列调度模块14包括队列池141、消费进度监听器142,以及调度器143。其中,消费进度监听器142用于确定Topic包括的各消息队列中的消息数目;调度器143可用于对Topic包括的全量消息队列进行初始分组,得到多个队列组,以及根据消费进度监听器142所监听到的各消息队列中的消息数据,对多个队列组,也即Topic包括的全量消息队列的分组情况进行动态调整。
例如,在实践中,根据实际业务需求定义四个优先级等级,分别为低、中、高、紧急,那么,如图2所示,则可将Topic A包括的16个消息队列分为四个队列组1~4,该四个队列组1~4各自对应的优先级等级分别为低、中、高、紧急。按照上述描述,队列组1对应的优先级等级为低,则意味着队列组1中的消息队列用于存储具有低优先级等级的消息(基于此,以下也将队列组1称为低消息优先级队列组);队列组2对应的优先级等级为中,则意味着队列组2中的消息队列用于存储具有中优先级等级的消息(基于此,以下也将队列组2称为中消息优先级队列组);队列组3对应的优先级等级为高,则意味着队列组3中的消息队列用于存储具有高优先级等级的消息(基于此,以下也将队列组3称为高消息优先级队列组);队列组4对应的优先级等级为紧急,则意味着队列组4中的消息队列用于存储具有紧急优先级等级的消息(基于此,以下也将队列组4称为紧急消息优先级队列组)。
由此可见,本发明实施例实现了在RocketMQ消息中间件中支持消息优先级,基于此,则可支持根据消息的优先级等级对消息进行分发存储,并且通过将具有不同优先级等级的消息存储于不同的队列组中,实现了将具有不同优先级等级的消息进行隔离。
队列池141则用于维护上述多个队列组的信息,以及将多个队列组的信息同步至生产者11。这里,队列组的信息至少包括队列组包含的消息队列、队列组对应的优先级等级。
生产者11则用于基于队列池141所同步的多个队列组的信息,并采用本发明实施例提供的消息传输方法,将待传输的目标消息发送至具有该目标消息所属的优先级等级的消息队列中,进而消费者12从该消息队列中获取目标消息。如此,则实现了生产者11通过RocketMQ消息中间件13向消费者12进行消息传输。
下面基于图1所示例的系统架构,结合附图以具体实施例对本发明提供的数据存储架构的设计方法和消息传输方法做进一步的解释说明,实施例并不构成对本发明实施例的限定。
参见图3,为本发明实施例提供的一种数据存储架构的设计方法的实施例流程图。如图3所示,该流程可包括以下步骤:
步骤301、将全量消息队列划分为多个队列组,每一队列组用于存储预设优先级等级的消息。
上述全量消息队列可以指图1中,Topic A包括的16个消息队列。
作为一个实施例,可由用户人为地对全量消息队列进行初始分组,得到多个队列组,并为每一队列组分别设置优先级等级,以实现每一队列组用于存储预设优先级等级的消息。
在实践中,对于某一优先级等级而言,具有该优先级等级的消息数目越多,也即传输量越大,则可为该优先级等级对应的队列组中分配越多的消息队列。通过该种处理,可以增加该优先级等级对应的消息队列占所有消息队列的比重,从而能够增加消费者读取该优先级等级对应消息的次数,如此则可实现在具有该优先级等级的消息传输量较大时,提高消费者对此类消息的消费速度,避免此类消息出现消息积压。
作为另一个实施例,可由图1中的调度器143按照以下方式对全量消息队列进行初始分组,得到多个队列组:将各消息队列的队列号与预设优先级等级的数目进行取余运算,将运算结果相同的消息队列归入同一队列组,运算结果不同的消息队列归入不同队列组,其中,根据各队列组对应的运算结果确定各队列组对应的预设优先级等级。
例如,在上述举例中,将消息队列Q0的队列号0、消息队列Q4的队列号4、消息队列Q8的队列号8分别与预设优先级等级的数目4进行取余运算,运算结果均为0,则将消息队列Q0、Q4、Q8归入同一队列组。其中,该队列组对应的运算结果0,则意味着该队列组对应的优先级等级为低。
再例如,在上述举例中,将消息队列Q1的队列号1、消息队列Q5的队列号5、消息队列Q9的队列号9、将消息队列Q13的队列号13分别与预设优先级等级的数目4进行取余运算,运算结果均为1,则将消息队列Q1、Q5、Q9、Q13归入同一队列组。其中,该队列组对应的运算结果为1,这意味着该队列组对应的优先级等级为中。
作为再一个实施例,可通过人为和智能分配相结合的方式对全量消息队列进行初始分组。例如,在上述举例中,可首先由用户人为地将消息队列Q0~Q3的优先级等级设置为紧急、高、中、低,以保证每一优先级等级都至少对应一个消息队列,然后,针对其他消息队列,采用上述方式进行智能分组,得到图2所示例的分组结果。
步骤302、当确定多个队列组中存在发生消息积压的第一队列组时,从除第一队列组以外的其他队列组中选择至少一个消息队列移入第一队列组。
由步骤302中的描述可知,本发明实施例中,在对全量消息队列进行初始分组之后,各个队列组并非是一成不变的,而是可动态调整的。
具体地,本发明实施例中,可根据队列组中各消息队列中的消息数目,确定该队列组是否发生消息积压,当确定该队列组发生消息积压(以下将发生消息积压的队列组称为第一队列组)时,则意味着需要提高消费者对第一队列组中消息队列中消息的消费速度。
基于此,在本发明实施例中,当根据多个队列组的消息队列中的消息数目确定存在发生消息积压的第一队列组时,从除第一队列组以外的其他队列组中选择至少一个消息队列移入第一队列组。例如,基于图2的示例,假设队列组4发生消息积压,并假设将队列组3中的Q13,以及队列组1中的Q7移入队列组4中,此时的消息队列分组情况则如图4所示。
在第一队列组发生消息积压时,将其他队列组中的消息队列移入第一队列组中,可增加第一队列组中消息队列的数目,从而增加第一队列组中消息队列占所有消息队列的比重,这能够增加消费者读取该第一队列组中消息的次数,如此则可实现在第一队列组发生消息积压时,提高消费者对第一队列组中消息的消费速度。
其中,可通过以下方式确定队列组是否发生消息积压:确定队列组的各消息队列中的消息数目,若该队列组中存在消息数目超过对应的消息存储量阈值的消息队列,则将该队列组确定为发生消息积压的第一队列组。本发明实施例中,针对对应不同优先级等级的队列组,可设置不同的消息存储量阈值,例如,为紧急消息优先级队列组设置的消息存储量阈值为10,为高消息优先级队列组设置的消息存储量阈值为50,为中消息优先级队列组设置的消息存储量阈值为200,为低消息优先级队列组设置的消息存储量阈值为500。由该例子可见,队列组对应的优先级等级越高,其对应的消息存储量阈值越低,如此可以实现提高较高优先级等级对应的队列组对消息积压的敏感度,从而使得具有较高优先级等级的消息能够优先得到消费。
还需要说明的是,本发明实施例中,可周期性地执行上述过程,以周期性地确定各队列组是否发生消息积压。
至于是如何从除第一队列组以外的其他队列组中选择消息队列移入第一队列组的,在下文中通过图5所示实施例进行说明,这里先不详述。
本发明实施例提供的技术方案,通过将一个Topic包括的多个消息队列进行分组,每一队列组用于存储预设优先级等级的消息,实现了RocketMQ消息中间件能够支持消息优先级;通过在存在发生消息积压的第一队列组时,从其他队列组中选择至少一个消息队列移入第一队列组,增加了第一队列组中消息队列的数目,也即增加了第一队列组中消息队列占所有消息队列的比重,从而增加消费者读取第一队列组中消息的次数,如此则可实现在第一队列组发生消息积压时,提高消费者对第一队列组中消息的消费速度,进一步地,当第一队列组对应较高的优先级等级时,则能够实现提高对重要消息的消费速度,使得重要消息能够优先得到处理。
参见图5,为本发明实施例提供的另一种数据存储结构的设计方法的实施例流程图。该图5所示流程在上述图3所示流程的基础上,描述如何从除第一队列组以外的其他队列组中选择至少一个消息队列移入第一队列组,如图5所示,该流程可包括以下步骤:
步骤501、从除第一队列组以外的其他队列组中确定至少一个第二队列组,第二队列组对应的消息优先级低于第一队列组。
步骤502、从至少一个第二队列组中选择消息队列移入第一队列组。
由上述步骤501和步骤502中的描述可知,本发明实施例中,当第一队列组发生消息积压时,优先从优先级等级低于第一队列组的至少一个第二队列组中选择至少一个消息队列移入第一队列组。通过该种处理,可以优先保证具有较高优先级等级的消息的消费速度。
例如,基于图2的示例,假设队列4发生消息积压,则可将队列1~3确定为第二队列组,进而从队列1~3中选择至少一个消息队列移入第一队列组。
再例如,基于图2的示例,假设队列3发生消息积压,则可将队列1~2确定为第二队列组,进而从队列1~2中选择至少一个消息队列移入第一队列组。
本发明实施例中,可采用以下方式实现从至少一个第二队列组中选择至少一个消息队列移入第一队列组:从至少一个第二队列组中选择至少一个第一消息队列,第一消息队列中的消息数目低于至少一个第二队列组中,除第一消息队列以外的任一消息队列。可选地,上述第一消息队列的数目与第一队列组中,消息数目超过消息存储量阈值的消息队列的数目相同。
例如,基于图2的示例,假设队列组4的Q4中的消息数目超过设定阈值,那么基于上述的描述,可将队列组1~3中,消息数目最低的一个消息队列,例如Q7移入队列组1,此时,队列组4中的消息队列增至5个。
再例如,基于图2的示例,假设队列组4的Q4和Q8中的消息数目均超过设定阈值,那么基于上述的描述,可队列组1~3中,消息数目最低的消息队列(例如Q7)和消息数目次低的消息队列(例如Q13)移入队列组1,此时,队列组1中的消息队列增至6个。
通过将消息数目比较低的消息队列移入当前发生消息积压的第一队列组中,可以实现尽可能地扩大第一队列组的消息容量,进而减缓第一队列的消息积压程度。
此外,在实践中,还存在第一队列组的数目为N,且N为大于1的自然数的情况,在该种情况下,本发明实施例提出,优先保证优先级等级较高的队列组的消费速度,也即优先保证具有较高优先级等级消息的消费速度。
具体的,可依据优先级等级从高到低的顺序,对N个第一队列组进行排序,从排序结果中排在首位的第一队列组开始,依次执行从除第一队列组以外的其他队列组中选择至少一个消息队列移入第一队列组的步骤。
例如,第一队列组包括队列组2和队列组4,依据优先级等级从高到低的顺序,对该两个队列组的排序结果为队列组4,队列组2。按照上述描述,将首先针对队列组4,从队列组1~3中选择至少一个消息队列移入队列组4,然后,再针对队列组2,从队列组1中选择至少一个消息队列移入队列组2。
通过图5所示流程,实现了在第一队列发生消息积压时,从除第一队列组以外的其他队列组中选择至少一个消息队列移入第一队列组,以提高第一队列组中消息的消费速度。
此外,在图3和图5所示流程的基础上,本发明实施例还提出:在从除第一队列组以外的其他队列组中选择至少一个消息队列移入第一队列组之后,当确定第一队列组当前未发生消息积压时,将移入的消息队列再移回其原属的队列组中。通过该种处理,可以实现在第一队列组消除消息积压后,也避免其他队列组因消息队列减少而发生消息积压。
参见图6,为本发明实施例提供的一种消息传输方法的实施例流程图。如图6所示,该流程可包括以下步骤:
步骤601、将全量消息队列划分为多个队列组,每一队列组用于存储预设优先级等级的消息。
步骤602、当确定多个队列组中存在发生消息积压的第一队列组时,从除第一队列组以外的其他队列组中选择至少一个消息队列移入第一队列组。
步骤601和步骤602的详细描述可参见上述图3所示实施例中的描述,这里不再赘述。
步骤603、在进行消息传输时,根据待传输的目标消息的优先级等级从多个队列组中确定一个目标队列组。
步骤604、将目标消息发送至目标队列组中的消息队列,以由消费者从目标消息队列组中的消息队列中获取目标消息。
由上述描述可知,每一队列组用于存储预设优先级等级的消息,基于此,在本申请实施例中,生产者在向消费者进行消息传输时,可根据待传输的目标消息的优先级等从多个队列组中确定一个目标队列组。例如,目标消息的优先级等级为低,那么基于图2的示例,生产者可将队列组1确定为目标队列组。
进一步地,生产者按照消息发布策略,比如轮询的策略从目标队列组中选择一个消息队列,将目标消息发送至该被选择的消息队列中,之后,消费者则可从该消息队列中获取目标消息。
本发明实施例提供的技术方案,通过将一个Topic包括的多个消息队列进行分组,每一队列组用于存储预设优先级等级的消息,实现了RocketMQ消息中间件能够支持消息优先级;在生产者进行消息分发时,根据待传输的目标消息的优先级等级从多个队列组中确定一个目标队列组,将目标消息发送至目标队列组中的消息队列,从而实现了在RocketMQ消息中间件中,将具有不同优先级等级的消息进行隔离;并且,通过在存在发生消息积压的第一队列组时,从其他队列组中选择至少一个消息队列移入第一队列组,增加了第一队列组中消息队列的数目,也即增加了第一队列组中消息队列占所有消息队列的比重,从而增加消费者读取第一队列组中消息的次数,如此则可实现在第一队列组发生消息积压时,提高消费者对第一队列组中消息的消费速度,进一步地,当第一队列组对应较高的优先级等级时,则能够实现提高对重要消息的消费速度,使得重要消息能够优先得到处理。
与前述数据存储架构的设计方法的实施例相对应,本发明还提供数据存储架构的设计装置的实施例框图。
参见图7,为本发明实施例提供的一种数据存储结构的设计装置的实施例框图。如图7所示,该装置包括:分组模块71、队列调度模块72。
其中,分组模块71,用于将全量消息队列划分为多个队列组,每一所述队列组用于存储预设优先级等级的消息;
队列调度模块72,用于当确定多个所述队列组中存在发生消息积压的第一队列组时,从除所述第一队列组以外的其他队列组中选择至少一个消息队列移入所述第一队列组。
在一可能的实施方式中,装置还包括(图中未示出):
复位模块,用于在所述从除所述第一队列组以外的其他队列组中选择至少一个消息队列移入所述第一队列组之后,当确定所述第一队列组当前未发生消息积压时,将移入的所述消息队列移回其原属的所述队列组中。
在一可能的实施方式中,每个所述消息队列配置有消息存储量阈值;装置还包括(图中未示出):
数目确定模块,用于针对每一所述队列组,确定所述队列组中各消息队列中的消息数目;
积压队列确定模块,用于若存在任意消息数目超过对应的所述消息存储量阈值的消息队列,则将所述队列组确定为发生消息积压的第一队列组。
在一可能的实施方式中,所述队列调度模块72,包括(图中未示出):
第一确定子模块,用于从除所述第一队列组以外的其他队列组中确定至少一个第二队列组,所述第二队列组对应的消息优先级低于所述第一队列组;
选择子模块,用于从至少一个所述第二队列组中选择至少一个消息队列移入所述第一队列组。
在一可能的实施方式中,所述选择子模块具体用于:
从至少一个所述第二队列组中选择至少一个第一消息队列,所述第一消息队列中的消息数目低于至少一个所述第二队列组中,除所述第一消息队列以外的任一消息队列;将至少一个所述第一消息队列移入所述第一队列组。
在一可能的实施方式中,在所述第一队列组的数目为N,且N为大于1的自然数的情况下,所述队列调度模块72,包括(图中未示出):
排序子模块,用于依据对应的优先级等级从高到低的顺序,对N个所述第一队列组进行排序;
执行子模块,用于从排序结果中排在首位的第一队列组开始,依次执行从除所述第一队列组以外的其他队列组中选择至少一个消息队列移入所述第一队列组的步骤。
在一可能的实施方式中,所述分组模块71包括(图中未示出):
运算子模块,用于将各所述消息队列的队列号与所述预设优先级等级的数目进行取余运算;
分组子模块,用于将运算结果相同的消息队列归入同一队列组,运算结果不同的消息队列归入不同队列组,其中,根据各所述队列组对应的所述运算结果确定所述队列组对应的所述预设优先级等级。
与前述消息传输方法的实施例相对应,本发明还提供消息传输装置的实施例框图。
参见图8,为本发明实施例提供的一种消息传输装置的实施例框图。如图8所示,该装置包括:分组模块81、队列调度模块82、目标确定模块83,以及消息传输模块84。
其中,分组模块81,用于将全量消息队列划分为多个队列组,每一所述队列组用于存储预设优先级等级的消息;
队列调度模块82,用于当确定多个所述队列组中存在发生消息积压的第一队列组时,从除所述第一队列组以外的其他队列组中选择至少一个消息队列移入所述第一队列组;
目标确定模块83,用于在进行消息传输时,根据待传输的目标消息的优先级等级从多个所述队列组中确定一个目标队列组;
消息传输模块84,用于将所述目标消息发送至所述目标队列组中的消息队列,以由消费者从所述目标消息队列组中的消息队列中获取所述目标消息。
图9为本发明实施例提供的一种的电子设备的结构示意图,图9所示的电子设备900包括:至少一个处理器901、存储器902、至少一个网络接口904和其他用户接口903。电子设备900中的各个组件通过总线系统905耦合在一起。可理解,总线系统905用于实现这些组件之间的连接通信。总线系统905除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图9中将各种总线都标为总线系统905。
其中,用户接口903可以包括显示器、键盘或者点击设备(例如,鼠标,轨迹球(trackball)、触感板或者触摸屏等。
可以理解,本发明实施例中的存储器902可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-OnlyMemory,ROM)、可编程只读存储器(ProgrammableROM,PROM)、可擦除可编程只读存储器(ErasablePROM,EPROM)、电可擦除可编程只读存储器(ElectricallyEPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(RandomAccessMemory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(StaticRAM,SRAM)、动态随机存取存储器(DynamicRAM,DRAM)、同步动态随机存取存储器(SynchronousDRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(DoubleDataRateSDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(SynchlinkDRAM,SLDRAM)和直接内存总线随机存取存储器(DirectRambusRAM,DRRAM)。本文描述的存储器902旨在包括但不限于这些和任意其它适合类型的存储器。
在一些实施方式中,存储器902存储了如下的元素,可执行单元或者数据结构,或者他们的子集,或者他们的扩展集:操作系统9021和应用程序9022。
其中,操作系统9021,包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序9022,包含各种应用程序,例如媒体播放器(MediaPlayer)、浏览器(Browser)等,用于实现各种应用业务。实现本发明实施例方法的程序可以包含在应用程序9022中。
在本发明实施例中,通过调用存储器902存储的程序或指令,具体的,可以是应用程序9022中存储的程序或指令,处理器901用于执行各方法实施例所提供的方法步骤,例如包括:
将全量消息队列划分为多个队列组,每一所述队列组用于存储预设优先级等级的消息;当确定多个所述队列组中存在发生消息积压的第一队列组时,从除所述第一队列组以外的其他队列组中选择至少一个消息队列移入所述第一队列组。
或者,将全量消息队列划分为多个队列组,每一所述队列组用于存储预设优先级等级的消息;当确定多个所述队列组中存在发生消息积压的第一队列组时,从除所述第一队列组以外的其他队列组中选择至少一个消息队列移入所述第一队列组;在进行消息传输时,根据待传输的目标消息的优先级等级从多个所述队列组中确定一个目标队列组;将所述目标消息发送至所述目标队列组中的消息队列,以由消费者从所述目标消息队列组中的消息队列中获取所述目标消息。
上述本发明实施例揭示的方法可以应用于处理器901中,或者由处理器901实现。处理器901可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器901中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器901可以是通用处理器、数字信号处理器(DigitalSignalProcessor,DSP)、专用集成电路(ApplicationSpecificIntegratedCircuit,ASIC)、现成可编程门阵列(FieldProgrammableGateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件单元组合执行完成。软件单元可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器902,处理器901读取存储器902中的信息,结合其硬件完成上述方法的步骤。
可以理解的是,本文描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(ApplicationSpecificIntegratedCircuits,ASIC)、数字信号处理器(DigitalSignalProcessing,DSP)、数字信号处理设备(DSPDevice,DSPD)、可编程逻辑设备(ProgrammableLogicDevice,PLD)、现场可编程门阵列(Field-ProgrammableGateArray,FPGA)、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。
对于软件实现,可通过执行本文所述功能的单元来实现本文所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
本实施例提供的电子设备可以是如图9中所示的电子设备,可执行如图3和图5中数据存储架构的设计方法的所有步骤,以及执行如图6中消息传输方法的所有步骤,进而实现图3、图5、图6中方法的技术效果,具体请参照图3、图5以及图6的相关描述,为简洁描述,在此不作赘述。
本发明实施例还提供了一种存储介质(计算机可读存储介质)。这里的存储介质存储有一个或者多个程序。其中,存储介质可以包括易失性存储器,例如随机存取存储器;存储器也可以包括非易失性存储器,例如只读存储器、快闪存储器、硬盘或固态硬盘;存储器还可以包括上述种类的存储器的组合。
当存储介质中一个或者多个程序可被一个或者多个处理器执行,以实现上述在电子设备侧执行的数据存储架构的设计方法和/或消息传输方法。
所述处理器用于执行存储器中存储的程序,以实现以下在电子设备侧执行的数据存储架构的设计方法的步骤:
将全量消息队列划分为多个队列组,每一所述队列组用于存储预设优先级等级的消息;当确定多个所述队列组中存在发生消息积压的第一队列组时,从除所述第一队列组以外的其他队列组中选择至少一个消息队列移入所述第一队列组。
和/或实现以下在电子设备侧执行的消息传输方法的步骤:
将全量消息队列划分为多个队列组,每一所述队列组用于存储预设优先级等级的消息;当确定多个所述队列组中存在发生消息积压的第一队列组时,从除所述第一队列组以外的其他队列组中选择至少一个消息队列移入所述第一队列组;在进行消息传输时,根据待传输的目标消息的优先级等级从多个所述队列组中确定一个目标队列组;将所述目标消息发送至所述目标队列组中的消息队列,以由消费者从所述目标消息队列组中的消息队列中获取所述目标消息。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (13)
1.一种数据存储架构的设计方法,其特征在于,包括:
将全量消息队列划分为多个队列组,每一所述队列组用于存储预设优先级等级的消息;
当确定多个所述队列组中存在发生消息积压的第一队列组时,从除所述第一队列组以外的其他队列组中选择至少一个消息队列移入所述第一队列组。
2.根据权利要求1所述的方法,其特征在于,在所述从除所述第一队列组以外的其他队列组中选择至少一个消息队列移入所述第一队列组之后,所述方法还包括:
当确定所述第一队列组当前未发生消息积压时,将移入的所述消息队列移回其原属的所述队列组中。
3.根据权利要求1所述的方法,其特征在于,每个所述消息队列配置有消息存储量阈值;
所述确定多个所述队列组中存在发生消息积压的第一队列组,包括:
针对每一所述队列组,确定所述队列组中各消息队列中的消息数目;若所述队列组中存在任意消息数目超过对应的所述消息存储量阈值的消息队列,则将所述队列组确定为发生消息积压的第一队列组。
4.根据权利要求1所述的方法,其特征在于,所述从除所述第一队列组以外的其他队列组中选择至少一个消息队列移入所述第一队列组,包括:
从除所述第一队列组以外的其他队列组中确定至少一个第二队列组,所述第二队列组对应的预设优先级等级低于所述第一队列组;
从至少一个所述第二队列组中选择至少一个消息队列移入所述第一队列组。
5.根据权利要求4所述的方法,其特征在于,所述从至少一个所述第二队列组中选择至少一个消息队列移入所述第一队列组,包括:
从至少一个所述第二队列组中选择至少一个第一消息队列,所述第一消息队列中的消息数目低于至少一个所述第二队列组中,除所述第一消息队列以外的任一消息队列;
将至少一个所述第一消息队列移入所述第一队列组。
6.根据权利要求1~4任一所述的方法,其特征在于,在所述第一队列组的数目为N,且N为大于1的自然数的情况下,所述从除所述第一队列组以外的其他队列组中选择至少一个消息队列移入所述第一队列组,包括:
依据对应的优先级等级从高到低的顺序,对N个所述第一队列组进行排序;
从排序结果中排在首位的第一队列组开始,依次执行从除所述第一队列组以外的其他队列组中选择至少一个消息队列移入所述第一队列组的步骤。
7.根据权利要求1所述的方法,其特征在于,所述将全量消息队列划分为多个队列组,包括:
将各所述消息队列的队列号与所述预设优先级等级的数目进行取余运算;
将运算结果相同的消息队列归入同一队列组,运算结果不同的消息队列归入不同队列组,其中,根据各所述队列组对应的所述运算结果确定所述队列组对应的所述预设优先级等级。
8.一种消息传输方法,其特征在于,包括:
将全量消息队列划分为多个队列组,每一所述队列组用于存储预设优先级等级的消息;
当确定多个所述队列组中存在发生消息积压的第一队列组时,从除所述第一队列组以外的其他队列组中选择至少一个消息队列移入所述第一队列组;
在进行消息传输时,根据待传输的目标消息的优先级等级从多个所述队列组中确定一个目标队列组;
将所述目标消息发送至所述目标队列组中的消息队列,以由消费者从所述目标消息队列组中的消息队列中获取所述目标消息。
9.一种消息传输系统,其特征在于,包括:
消费进度监听器,确定各消息队列中的消息数目;
调度器,将全量消息队列划分为多个队列组,每一所述队列组用于存储预设优先级等级的消息;以及当根据多个所述队列组的消息队列中的消息数目确定存在发生消息积压的第一队列组时,从除所述第一队列组以外的其他队列组中选择至少一个消息队列移入所述第一队列组;
队列池,维护多个所述队列组的信息,以及将多个所述队列组的信息同步至生产者;所述信息至少包括所述队列组包含的消息队列、所述队列组对应的预设优先级等级;
生产者,在进行消息传输时,根据待传输的目标消息的优先级等级从多个所述队列组中确定一个目标队列组;将所述目标消息发送至所述目标队列组中的消息队列;
消费者,从多个所述消息队列中获取消息。
10.一种数据存储架构的设计装置,其特征在于,包括:
分组模块,用于将全量消息队列划分为多个队列组,每一所述队列组用于存储预设优先级等级的消息;
队列调度模块,用于当确定多个所述队列组中存在发生消息积压的第一队列组时,从除所述第一队列组以外的其他队列组中选择至少一个消息队列移入所述第一队列组。
11.一种消息传输装置,其特征在于,包括:
分组模块,用于将全量消息队列划分为多个队列组,每一所述队列组用于存储预设优先级等级的消息;
队列调度模块,用于当确定多个所述队列组中存在发生消息积压的第一队列组时,从除所述第一队列组以外的其他队列组中选择至少一个消息队列移入所述第一队列组;
目标确定模块,用于在进行消息传输时,根据待传输的目标消息的优先级等级从多个所述队列组中确定一个目标队列组;
消息传输模块,用于将所述目标消息发送至所述目标队列组中的消息队列,以由消费者从所述目标消息队列组中的消息队列中获取所述目标消息。
12.一种电子设备,其特征在于,包括:处理器和存储器,所述处理器用于执行所述存储器中存储的消息传输程序,以实现权利要求1~8中任一项所述的消息传输方法。
13.一种存储介质,其特征在于,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现权利要求1~8中任一项所述的消息传输方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110587906.8A CN113342544B (zh) | 2021-05-27 | 2021-05-27 | 数据存储架构的设计方法、消息传输方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110587906.8A CN113342544B (zh) | 2021-05-27 | 2021-05-27 | 数据存储架构的设计方法、消息传输方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113342544A true CN113342544A (zh) | 2021-09-03 |
CN113342544B CN113342544B (zh) | 2023-09-01 |
Family
ID=77472256
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110587906.8A Active CN113342544B (zh) | 2021-05-27 | 2021-05-27 | 数据存储架构的设计方法、消息传输方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113342544B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114785805A (zh) * | 2022-04-18 | 2022-07-22 | 北京高途云集教育科技有限公司 | 一种数据传输方法、装置、电子设备以及存储介质 |
CN115550280A (zh) * | 2022-11-24 | 2022-12-30 | 云账户技术(天津)有限公司 | 多级消息队列实现方法、系统、电子设备和可读存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19737852A1 (de) * | 1997-08-29 | 1999-03-04 | Siemens Ag | Verfahren und Schaltungsanordnung zum Übertragen von Nachrichteneinheiten in Nachrichtenströmen unterschiedlicher Priorität |
EP1054544A2 (en) * | 1999-05-21 | 2000-11-22 | Hitachi, Ltd. | Packet forwarding device and packet priority setting method |
US20120005688A1 (en) * | 2010-06-30 | 2012-01-05 | International Business Machines Corporation | Allocating space in message queue for heterogeneous messages |
US9742683B1 (en) * | 2015-11-03 | 2017-08-22 | Cisco Technology, Inc. | Techniques for enabling packet prioritization without starvation in communications networks |
CN107197015A (zh) * | 2017-05-23 | 2017-09-22 | 阿里巴巴集团控股有限公司 | 一种基于消息队列系统的消息处理方法和装置 |
US20200042349A1 (en) * | 2018-07-31 | 2020-02-06 | Nutanix, Inc. | Multi-level job processing queues |
CN111949392A (zh) * | 2020-08-27 | 2020-11-17 | 苏州浪潮智能科技有限公司 | 一种缓存任务队列调度方法、系统、终端及存储介质 |
CN112099975A (zh) * | 2020-09-25 | 2020-12-18 | Oppo广东移动通信有限公司 | 一种消息处理方法及系统、存储介质 |
-
2021
- 2021-05-27 CN CN202110587906.8A patent/CN113342544B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19737852A1 (de) * | 1997-08-29 | 1999-03-04 | Siemens Ag | Verfahren und Schaltungsanordnung zum Übertragen von Nachrichteneinheiten in Nachrichtenströmen unterschiedlicher Priorität |
EP1054544A2 (en) * | 1999-05-21 | 2000-11-22 | Hitachi, Ltd. | Packet forwarding device and packet priority setting method |
US20120005688A1 (en) * | 2010-06-30 | 2012-01-05 | International Business Machines Corporation | Allocating space in message queue for heterogeneous messages |
US9742683B1 (en) * | 2015-11-03 | 2017-08-22 | Cisco Technology, Inc. | Techniques for enabling packet prioritization without starvation in communications networks |
CN107197015A (zh) * | 2017-05-23 | 2017-09-22 | 阿里巴巴集团控股有限公司 | 一种基于消息队列系统的消息处理方法和装置 |
US20200042349A1 (en) * | 2018-07-31 | 2020-02-06 | Nutanix, Inc. | Multi-level job processing queues |
CN111949392A (zh) * | 2020-08-27 | 2020-11-17 | 苏州浪潮智能科技有限公司 | 一种缓存任务队列调度方法、系统、终端及存储介质 |
CN112099975A (zh) * | 2020-09-25 | 2020-12-18 | Oppo广东移动通信有限公司 | 一种消息处理方法及系统、存储介质 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114785805A (zh) * | 2022-04-18 | 2022-07-22 | 北京高途云集教育科技有限公司 | 一种数据传输方法、装置、电子设备以及存储介质 |
CN114785805B (zh) * | 2022-04-18 | 2024-04-12 | 北京高途云集教育科技有限公司 | 一种数据传输方法、装置、电子设备以及存储介质 |
CN115550280A (zh) * | 2022-11-24 | 2022-12-30 | 云账户技术(天津)有限公司 | 多级消息队列实现方法、系统、电子设备和可读存储介质 |
CN115550280B (zh) * | 2022-11-24 | 2023-03-31 | 云账户技术(天津)有限公司 | 多级消息队列实现方法、系统、电子设备和可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113342544B (zh) | 2023-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107391526B (zh) | 一种基于区块链的数据处理方法及设备 | |
US10467053B2 (en) | Multi-thread processor with rescheduling when threads are nondispatchable | |
CN113342544A (zh) | 数据存储架构的设计方法、消息传输方法及装置 | |
JP2020514866A (ja) | ブロックチェーンベースのデータ処理方法および装置 | |
KR101622168B1 (ko) | 실시간 스케쥴링 방법 및 이를 이용한 중앙처리장치 | |
CN111930486A (zh) | 任务选取数据处理方法、装置、设备及存储介质 | |
KR20120062768A (ko) | 멀티-코어 아키텍처들을 위한 사용자-레벨 인터럽트 메커니즘 | |
KR20050020942A (ko) | 연속 매체 우선순위 인식 저장장치 스케줄러 | |
CN102301664A (zh) | 多核处理器的流分发方法及装置 | |
US11134021B2 (en) | Techniques for processor queue management | |
CN115408100A (zh) | 容器集群调度的方法、装置、设备及存储介质 | |
Choi et al. | An enhanced data-locality-aware task scheduling algorithm for hadoop applications | |
CN110955720B (zh) | 一种数据加载方法、装置及系统 | |
CN107870866B (zh) | Io命令调度方法与nvm接口控制器 | |
CN110716813A (zh) | 数据流处理方法、装置、可读存储介质及处理器 | |
US20190026142A1 (en) | Information processing apparatus, control method and storage medium | |
US7562364B2 (en) | Adaptive queue scheduling | |
CN107870779B (zh) | 调度方法与装置 | |
CN116248699B (zh) | 多副本场景下的数据读取方法、装置、设备及存储介质 | |
CN116502225A (zh) | 自适应分组冗余编排的病毒扫描方法、装置及电子设备 | |
JP2020154391A (ja) | 情報処理システムおよびプログラム | |
CN115278786A (zh) | 业务接入方法、装置、电子设备及存储介质 | |
CN114816703A (zh) | 一种任务处理方法、装置、设备及介质 | |
CN113918291A (zh) | 多核操作系统流任务调度方法、系统、计算机和介质 | |
JP4754531B2 (ja) | デバイスへのアクセス制御方法および処理装置 |
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 |