CN113010297A - 基于消息队列的数据库写入调度器、写入方法和存储介质 - Google Patents

基于消息队列的数据库写入调度器、写入方法和存储介质 Download PDF

Info

Publication number
CN113010297A
CN113010297A CN202110443466.9A CN202110443466A CN113010297A CN 113010297 A CN113010297 A CN 113010297A CN 202110443466 A CN202110443466 A CN 202110443466A CN 113010297 A CN113010297 A CN 113010297A
Authority
CN
China
Prior art keywords
message queue
data
database
writing
batch size
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
Application number
CN202110443466.9A
Other languages
English (en)
Inventor
夏锦阳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Second Hand Artificial Intelligence Technology Co ltd
Original Assignee
Beijing Second Hand Artificial Intelligence Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Second Hand Artificial Intelligence Technology Co ltd filed Critical Beijing Second Hand Artificial Intelligence Technology Co ltd
Priority to CN202110443466.9A priority Critical patent/CN113010297A/zh
Publication of CN113010297A publication Critical patent/CN113010297A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/547Messaging middleware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue

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 Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请涉及一种基于消息队列的数据库写入调度器、写入方法和存储介质,其中,该写入调度器包括:优先级确定模块,根据数据对实时性的敏感指数设置不同的优先级;批次大小确定模块,根据数据的优先级设置不同的消息队列,并确定对应消息队列的批次大小;线程管理模块,管理一数据库的并发线程并设置并发线程上限;数据写入模块,将数据写入对应消息队列,并经对应消息队列根据批次大小在线程管理模块管理下批量写入数据库。通过设置批次大小、最大消费时间和并发线程上限,实现请求并发和处理速度矛盾时的均衡策略,通过批次大小和最大等待时间两个维度的控制,提高了系统服务的稳定性,提升了处理速度。

Description

基于消息队列的数据库写入调度器、写入方法和存储介质
技术领域
本申请涉及数据写入技术领域,特别是涉及基于消息队列的数据库写入调度器、写入方法和存储介质
背景技术
在实际的生产使用中,随着写入数据库的并发请求数增多,数据库的服务稳定性会严重下降,写入请求处理的速度也会下降。
针对现有的数据库的并发请求增多和写入请求处理速度之间的均衡问题,尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种基于消息队列的数据库写入调度器、写入方法和存储介质,根据数据对实时性的敏感程度,设置不同数据的在资源紧张时的入库先后顺序。以至少解决相关技术中请求并发和写入请求处理的速度的均衡问题。
第一方面,本申请实施例提供了一种基于消息队列的数据库写入调度器,包括:
优先级确定模块,根据数据对实时性的敏感指数设置不同的优先级;
批次大小确定模块,根据数据的优先级设置不同的消息队列,并确定对应消息队列的批次大小;
线程管理模块,管理一数据库的并发线程并设置并发线程上限;
数据写入模块,将数据写入对应消息队列,并经对应消息队列根据批次大小在线程管理模块管理下批量写入数据库。
在其中一些实施例中,数据写入模块还包括时间均衡模块,时间均衡模块设置一最大消费时间,
当消息队列的消息数大于批次大小时,触发写入动作;
当消息队列的消息数小于批次大小时,等待至最大消费时间,触发写入动作。
在其中一些实施例中,数据写入消息队列的频率与数据库的写入速度一致。
在其中一些实施例中,数据库可具体设置为ElasticSearch。
第二方面,本申请实施例提供了一种基于消息队列的数据库写入方法,应用于第一方面的基于消息队列的数据库写入调度器,包括以下步骤:
优先级确定步骤,根据数据对实时性的敏感指数设置不同的优先级;
批次大小确定步骤,根据数据的优先级设置不同的消息队列,并确定对应消息队列的批次大小;
线程管理步骤,一线程管理模块管理一数据库的并发线程并设置并发线程上限;
数据写入步骤,将数据写入对应消息队列,并经对应消息队列根据批次大小在线程管理模块管理下批量写入一数据库。
在其中一些实施例中,还包括时间均衡步骤,设置一最大消费时间,
当消息队列的消息数大于批次大小时,触发写入动作;
当消息队列的消息数小于批次大小时,等待至最大消费时间,触发写入动作。
在其中一些实施例中,数据写入消息队列的频率与数据库的写入速度一致。
在其中一些实施例中,数据库可具体设置为ElasticSearch。
第三方面,本申请实施例提供了一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第二方面所述的基于消息队列的数据库写入方法。
第四方面,本申请实施例提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述第二方面所述的基于消息队列的数据库写入方法。
相比于相关技术,本申请实施例提供的基于消息队列的数据库写入调度器、写入方法和存储介质,本发明可以应用于数据能力技术领域,还可以应用于数据治理技术领域,通过设置批次大小、最大消费时间和并发线程上限,实现请求并发和处理速度矛盾时的均衡策略,通过批次大小和最大等待时间两个维度的控制,提高了系统服务的稳定性,提升了处理速度。
本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。
在附图中:
图1是根据本申请实施例的基于消息队列的数据库写入调度器的结构框图;
图2是根据本申请实施例的基于消息队列的数据库写入调度器的优选结构框图;
图3是根据本申请实施例的基于消息队列的数据库写入方法的流程图;
图4是根据本申请优选实施例的基于消息队列的数据库写入方法的流程图;
图5为根据本申请实施例的计算机设备的硬件结构示意图。
附图说明:
优先级确定模块1;批次大小确定模块2;线程管理模块3;
数据写入模块4;时间均衡模块5;异步计算模块6;
处理器81;存储器82;通信接口83;总线80。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。
除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。
本实施例提供的基于消息队列的数据库写入调度器可以集成到需要数据库写入的设备或软件中。本申请所涉及的方法、数据库写入调度器、计算机设备或者存储介质可用于搜索引擎,还可以具体应用于Elasticsearch、Lucene和Solr等。
下面将以Elasticsearch为例对本申请实施例进行说明。
Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎。Elasticsearch用于云计算中,能够达到实时快速搜索。Elasticsearch包含数据存储、索引的功能,本申请实施例中的数据库可以为ElasticSearch,将ElasticSearch看做是一种侧重于搜索功能的数据库。
在实际生产使用中,随着写入Elasticsearch并发请求数的提高,Elasticsearch服务稳定性会严重下降。
本实施例提供了一种基于消息队列的数据库写入调度器,如以下所使用的,术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的数据库写入调度器较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图1是根据本申请实施例的基于消息队列的数据库写入调度器的结构框图,如图1所示,该数据库写入调度器包括:
优先级确定模块1,根据数据对实时性的敏感指数设置不同的优先级;
批次大小确定模块2,根据数据的优先级设置不同的消息队列,并确定对应消息队列的批次大小;
线程管理模块3,管理一数据库的并发线程并设置并发线程上限;
数据写入模块4,将数据写入对应消息队列,并经对应消息队列根据批次大小在线程管理模块管理下批量写入数据库。
通过上述设置批次大小和并发线程上限,实现了写入数据库的数据在时间维度上的调度控制,有效的解决了请求并发和处理速度的均衡问题。
需要说明的是,数据对实时性的敏感指数用来显示数据对于实时性的敏感程度,可以通过相关的模型通过量化计算得到。
根据数据对实时性的敏感程度,设置不同数据的入库优先级,实现入库速度调度,将数据的实时性的敏感程度与写入数据的次序相关,当资源紧张时,优先将优先级高的数据进行处理,以实现并发请求数和处理速度的均衡。
采用批量消费消息队列和批量写入数据库的方式,保证了数据库的写入速度,同时,将高优先级的数据消费批次大小较大。通过上述两种机制保证高优先级别的数据快速入库。
在一些实施例中,数据库写入调度器还包括时间均衡模块5,时间均衡模块5设置一最大消费时间,
当消息队列的消息数大于批次大小时,触发写入动作;
当消息队列的消息数小于批次大小时,等待至最大消费时间,触发写入动作。
在实际应用中,最大消费时间指的是消费最大的等待时间,通过设置最大等待时间,保证消费频率。把控消息队列传输数据的时间,避免仅依赖批次大小进行调控导致时间过长。通过批次大小和最大等待时间的设置,从两个维度上进行调控,以达到请求并发和处理速度之间的均衡。
实际上,在批次划分的逻辑上,优先考虑批次大小、其次考虑批次等待时间,这种在流式数据上划分批次的方式,能在控制请求频率的前提下、尽可能提高数据实时性。
在一些实施例中,数据写入消息队列的频率与数据库的写入速度一致。
在实际应用中,当Elasticsearch的数据写入速度下降时,消费消息队列的频率也需要变慢,避免更多的写入请求使得写入速度进一步恶化。
在一些实施例中,数据库可具体设置为ElasticSearch。
通过采用本申请实施例中所提出的基于消息队列的数据库写入调度器,可以有效提高ElasticSearch的写入性能,有效对其进行写入的控制和优化。
在实际的应用中,数据库设置为ElasticSearch,消息队列可以具体设置为Kafka消息队列。
其中,Elasticsearch是作为一个分布式多用户能力的全文搜索引擎,在实际生产使用中,随着写入Elasticsearch并发请求数的提高,Elasticsearch服务稳定性会严重下降,这也是在ElasticSearch中应用本申请实施例的重要意义。而Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。利用Kafka作为消息队列,对待写入Elasticsearch的数据进行暂存,并通过统一的消费程序,实现写入Elasticsearch数据的时间纬度上的调度控制。
图2是根据本申请实施例的基于消息队列的数据库写入调度器的优选结构框图,如图2所示,该数据可写入调度器包括图1所示的所有模块,此外还包括:异步计算模块6。
可以将异步计算模块6的服务集成到该写入调度器中,以解决当遭遇请求并发和处理速度的双重瓶颈时,数据写入的问题。
数据经消息队列并发进入数据库,当数据库的请求并发量到达并发请求上限,处理速度同样达到瓶颈时,引入异步计算模块6,根据数据对实时性的敏感指数设定数据处理的优先级,从而达到缓解问题的目的,以提高数据的写入速度。
需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。
本实施例还提供了一种基于消息队列的数据库写入方法。该方法用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。图3是根据本申请实施例的基于消息队列的数据库写入方法的流程图,如图3所示,该流程包括如下步骤:
S301,优先级确定步骤,根据数据对实时性的敏感指数设置不同的优先级;
S302,批次大小确定步骤,根据数据的优先级设置不同的消息队列,并确定对应消息队列的批次大小;
S303,线程管理步骤,一线程管理模块管理一数据库的并发线程并设置并发线程上限;
S304,数据写入步骤,将数据写入对应消息队列,并经对应消息队列根据批次大小在线程管理模块管理下批量写入一数据库。
通过上述步骤,设置上述批次大小和并发线程上限,有效的解决了请求并发和处理速度的均衡策略,实现了写入数据库的数据在时间维度上的调度控制。
在其中一些实施例中,还包括时间均衡步骤,设置一最大消费时间,
当消息队列的消息数大于批次大小时,触发写入动作;
当消息队列的消息数小于批次大小时,等待至最大消费时间,触发写入动作。
通过时间均衡步骤,实现写入数据的时间维度上的调度控制,从批次大小和最大消费时间两个维度实现批次划分调度方式,实现请求并发和处理速度的均衡策略,提高处理速度。
在一些实施例中,数据写入消息队列的频率与数据库的写入速度一致。
将数据写入消息队列的频率与数据库的写入速度相一致,避免由于一方的不协调引起双方的失衡,从而导致写入速度进一步恶化。
在一些实施例中,数据库可以具体设置为ElasticSearch。
下面通过优选实施例对本申请实施例进行描述和说明。
图4是根据本申请优选实施例的基于消息队列的数据库写入方法的流程图。
S401,设置优先级不同的消息队列。
根据数据对实时性的敏感程度,设置不同Kafka消息队列,数据写入方将数据写入相应队列。
S402,设置并发线程上限。
由于ElasticSearch写入不稳定的瓶颈是过高的并发,在该写入调度器中将写入Elasticsearch的并发线程视为一种资源,由统一的线程管理模块管理并设定并发线程上限,从而保证写入性能的稳定性。在线程数达到并发线程上限后,会出现线程竞争,高优先级的数据会有更多竞争资源的机会。
S403,数据批量写入数据库。
采用批量消费消息队列,批量写入Elasticsearch的方式处理。高优先级的数据消费批次大小较大。即有上述两种机制保证高优先级数快速入库。
S404,设置最大消费时间。
通过设置最大消费时间,保证消费速度。当消息队列中剩余的消息数大于批次大小时,触发消费动作;若消息队列中剩余的消息数小于批次大小则一直等待到最大消费时间,此时不论消息队列中的剩余消息数多少,都会触发消费动作。
S405,异步计算。
采用S401-S404步骤中方法可以将异步计算的服务集成到该系统中。解决当遭遇请求并发和处理速度的双重瓶颈时,数据写入的问题。
数据经消息队列并发进入数据库,当数据库的请求并发量到达并发请求上限,处理速度同样达到瓶颈时,引入异步计算,根据数据对实时性的敏感指数设定数据处理的优先级,从而达到缓解问题的目的,以提高数据的写入速度。
需要说明的是,在上述流程中或者附图的流程图中示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。例如,S405可以设置在S402或S403中。
另外,结合图1描述的本申请实施例基于消息队列的数据库写入方法可以由计算机设备来实现。图5为根据本申请实施例的计算机设备的硬件结构示意图。
计算机设备可以包括处理器81以及存储有计算机程序指令的存储器82。
具体地,上述处理器81可以包括中央处理器(CPU),或者特定集成电路(Application Specific Integrated Circuit,简称为ASIC),或者可以被配置成实施本申请实施例的一个或多个集成电路。
其中,存储器82可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器82可包括硬盘驱动器(Hard Disk Drive,简称为HDD)、软盘驱动器、固态驱动器(SolidState Drive,简称为SSD)、闪存、光盘、磁光盘、磁带或通用串行总线(Universal SerialBus,简称为USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器82可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器82可在数据处理数据库写入调度器的内部或外部。在特定实施例中,存储器82是非易失性(Non-Volatile)存储器。在特定实施例中,存储器82包括只读存储器(Read-Only Memory,简称为ROM)和随机存取存储器(Random Access Memory,简称为RAM)。在合适的情况下,该ROM可以是掩模编程的ROM、可编程ROM(Programmable Read-Only Memory,简称为PROM)、可擦除PROM(ErasableProgrammable Read-Only Memory,简称为EPROM)、电可擦除PROM(Electrically ErasableProgrammable Read-Only Memory,简称为EEPROM)、电可改写ROM(ElectricallyAlterable Read-Only Memory,简称为EAROM)或闪存(FLASH)或者两个或更多个以上这些的组合。在合适的情况下,该RAM可以是静态随机存取存储器(StaticRandom-AccessMemory,简称为SRAM)或动态随机存取存储器(Dynamic Random Access Memory,简称为DRAM),其中,DRAM可以是快速页模式动态随机存取存储器(Fast Page Mode DynamicRandom Access Memory,简称为FPMDRAM)、扩展数据输出动态随机存取存储器(ExtendedDate Out Dynamic Random Access Memory,简称为EDODRAM)、同步动态随机存取内存(Synchronous Dynamic Random-Access Memory,简称SDRAM)等。
存储器82可以用来存储或者缓存需要处理和/或通信使用的各种数据文件,以及处理器81所执行的可能的计算机程序指令。
处理器81通过读取并执行存储器82中存储的计算机程序指令,以实现上述实施例中的任意一种基于消息队列的数据库写入方法。
在其中一些实施例中,计算机设备还可包括通信接口83和总线80。其中,如图5所示,处理器81、存储器82、通信接口83通过总线80连接并完成相互间的通信。
通信接口83用于实现本申请实施例中各模块、数据库写入调度器、单元和/或设备之间的通信。通信端口83还可以实现与其他部件例如:外接设备、图像/数据采集设备、数据库、外部存储以及图像/数据处理工作站等之间进行数据通信。
总线80包括硬件、软件或两者,将计算机设备的部件彼此耦接在一起。总线80包括但不限于以下至少之一:数据总线(Data Bus)、地址总线(Address Bus)、控制总线(Control Bus)、扩展总线(Expansion Bus)、局部总线(Local Bus)。举例来说而非限制,总线80可包括图形加速接口(Accelerated Graphics Port,简称为AGP)或其他图形总线、增强工业标准架构(Extended Industry Standard Architecture,简称为EISA)总线、前端总线(Front Side Bus,简称为FSB)、超传输(Hyper Transport,简称为HT)互连、工业标准架构(Industry Standard Architecture,简称为ISA)总线、无线带宽(Infini Band)互连、低引脚数(Low Pin Count,简称为LPC)总线、存储器总线、微信道架构(Micro ChannelArchitecture,简称为MCA)总线、外围组件互连(Peripheral Component Interconnect,简称为PCI)总线、PCI-Express(PCI-X)总线、串行高级技术附件(Serial AdvancedTechnology Attachment,简称为SATA)总线、视频电子标准协会局部(Video ElectronicsStandards Association Local Bus,简称为VLB)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线80可包括一个或多个总线。尽管本申请实施例描述和示出了特定的总线,但本申请考虑任何合适的总线或互连。
该计算机设备可以基于数据对实时性的敏感程度,设置不同的消息队列,并将数据写入对应的消息队列,通过设置消息队列的批次大小和数据库的并行线程上限,执行本申请实施例中的数据写入步骤,从而实现结合图1描述的基于消息队列的数据库写入方法。
另外,结合上述实施例中的基于消息队列的数据库写入方法,本申请实施例可提供一种存储介质来实现。该存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种基于消息队列的数据库写入方法。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种基于消息队列的数据库写入调度器,其特征在于,包括:
优先级确定模块,根据数据对实时性的敏感指数设置不同的优先级;
批次大小确定模块,根据所述数据的优先级设置不同的消息队列,并确定对应所述消息队列的批次大小;
线程管理模块,管理一数据库的并发线程并设置并发线程上限;
数据写入模块,将所述数据写入对应所述消息队列,并经对应所述消息队列根据所述批次大小在所述线程管理模块管理下批量写入所述数据库。
2.根据权利要求1所述的基于消息队列的数据库写入调度器,其特征在于,还包括时间均衡模块,所述时间均衡模块设置一最大消费时间,
当所述消息队列的消息数大于所述批次大小时,触发写入动作;
当所述消息队列的消息数小于所述批次大小时,等待至所述最大消费时间,触发所述写入动作。
3.根据权利要求1或2所述的基于消息队列的数据库写入调度器,其特征在于,所述数据写入所述消息队列的频率与所述数据库的写入速度一致。
4.根据权利要求1所述的基于消息队列的数据库写入调度器,其特征在于,所述数据库可具体设置为ElasticSearch。
5.一种基于消息队列的数据库写入方法,应用于权利要求1-4任意一项所述的基于消息队列的数据库写入方法,其特征在于,包括以下步骤:
优先级确定步骤,根据数据对实时性的敏感指数设置不同的优先级;
批次大小确定步骤,根据所述数据的优先级设置不同的消息队列,并确定对应所述消息队列的批次大小;
线程管理步骤,一线程管理模块管理一数据库的并发线程并设置并发线程上限;
数据写入步骤,将所述数据写入对应所述消息队列,并经对应所述消息队列根据所述批次大小在所述线程管理模块管理下批量写入一数据库。
6.根据权利要求5所述的基于消息对列的数据库写入方法,其特征在于,还包括时间均衡步骤,设置一最大消费时间,
当所述消息队列的消息数大于所述批次大小时,触发写入动作;
当所述消息队列的消息数小于所述批次大小时,等待至所述最大消费时间,触发所述写入动作。
7.根据权利要求6所述的基于消息队列的数据库写入方法,其特征在于,所述数据写入所述消息队列的频率与所述数据库的写入速度一致。
8.根据权利要求5所述的基于消息队列的数据库写入方法,其特征在于,所述数据库可具体设置为ElasticSearch。
9.一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求5至8中任一项所述的基于消息队列的数据库写入方法。
10.一种存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求5至8中任一项所述的基于消息队列的数据库写入方法。
CN202110443466.9A 2021-04-23 2021-04-23 基于消息队列的数据库写入调度器、写入方法和存储介质 Pending CN113010297A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110443466.9A CN113010297A (zh) 2021-04-23 2021-04-23 基于消息队列的数据库写入调度器、写入方法和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110443466.9A CN113010297A (zh) 2021-04-23 2021-04-23 基于消息队列的数据库写入调度器、写入方法和存储介质

Publications (1)

Publication Number Publication Date
CN113010297A true CN113010297A (zh) 2021-06-22

Family

ID=76389099

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110443466.9A Pending CN113010297A (zh) 2021-04-23 2021-04-23 基于消息队列的数据库写入调度器、写入方法和存储介质

Country Status (1)

Country Link
CN (1) CN113010297A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114003469A (zh) * 2021-12-30 2022-02-01 北京微步在线科技有限公司 一种资产监控方法及装置
CN114253477A (zh) * 2021-12-15 2022-03-29 威创集团股份有限公司 一种超高并发影像数据写入方法、装置及可读存储介质
CN115643538A (zh) * 2022-10-27 2023-01-24 青岛意想意创技术发展有限公司 基于优先级信息的消息调度方法和装置
CN116048840A (zh) * 2022-12-30 2023-05-02 北京白驹易行科技有限公司 一种基于多租户的订单es高速写入方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103049317A (zh) * 2013-01-10 2013-04-17 中国南方电网有限责任公司超高压输电公司 云环境下基于队列的高并发数据快速写入系统及方法
US20140324959A1 (en) * 2011-11-21 2014-10-30 Push Technology Limited Time-sensitive data delivery
CN110334074A (zh) * 2019-07-09 2019-10-15 西安点告网络科技有限公司 数据处理方法、装置、服务器及存储介质
CN111177363A (zh) * 2019-12-30 2020-05-19 广州市百果园网络科技有限公司 一种群组消息的写入方法、装置、服务器和存储介质
CN111638946A (zh) * 2019-03-01 2020-09-08 北京京东尚科信息技术有限公司 一种请求信息分级处理方法和装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140324959A1 (en) * 2011-11-21 2014-10-30 Push Technology Limited Time-sensitive data delivery
CN103049317A (zh) * 2013-01-10 2013-04-17 中国南方电网有限责任公司超高压输电公司 云环境下基于队列的高并发数据快速写入系统及方法
CN111638946A (zh) * 2019-03-01 2020-09-08 北京京东尚科信息技术有限公司 一种请求信息分级处理方法和装置
CN110334074A (zh) * 2019-07-09 2019-10-15 西安点告网络科技有限公司 数据处理方法、装置、服务器及存储介质
CN111177363A (zh) * 2019-12-30 2020-05-19 广州市百果园网络科技有限公司 一种群组消息的写入方法、装置、服务器和存储介质

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114253477A (zh) * 2021-12-15 2022-03-29 威创集团股份有限公司 一种超高并发影像数据写入方法、装置及可读存储介质
CN114003469A (zh) * 2021-12-30 2022-02-01 北京微步在线科技有限公司 一种资产监控方法及装置
CN115643538A (zh) * 2022-10-27 2023-01-24 青岛意想意创技术发展有限公司 基于优先级信息的消息调度方法和装置
CN115643538B (zh) * 2022-10-27 2024-01-30 青岛意想意创技术发展有限公司 基于优先级信息的消息调度方法和装置
CN116048840A (zh) * 2022-12-30 2023-05-02 北京白驹易行科技有限公司 一种基于多租户的订单es高速写入方法及系统

Similar Documents

Publication Publication Date Title
CN113010297A (zh) 基于消息队列的数据库写入调度器、写入方法和存储介质
US8325603B2 (en) Method and apparatus for dequeuing data
WO2019128535A1 (zh) 消息管理方法、设备及存储介质
WO2016197716A1 (zh) 一种作业调度方法和装置
US8260996B2 (en) Interrupt optimization for multiprocessors
US8478926B1 (en) Co-processing acceleration method, apparatus, and system
CN109697122B (zh) 任务处理方法、设备及计算机存储介质
US20170017412A1 (en) Shared Memory Controller And Method Of Using Same
JP2018533122A (ja) マルチバージョンタスクの効率的なスケジューリング
US9798591B2 (en) Method, apparatus, and chip for implementing mutually-exclusive operation of multiple threads
EP2905707A1 (en) Arithmetic processing apparatus and control method therefor
CN113918101B (zh) 一种写数据高速缓存的方法、系统、设备和存储介质
CN114257559B (zh) 一种数据报文的转发方法及装置
CN115361451B (zh) 一种网络通信并行处理方法及系统
CN116909943A (zh) 一种缓存访问方法、装置、存储介质及电子设备
EP3440547B1 (en) Qos class based servicing of requests for a shared resource
CN117251275B (zh) 多应用异步i/o请求的调度方法及系统、设备及介质
CN112925616A (zh) 任务分配方法、装置、存储介质及电子设备
WO2021259321A1 (zh) 存储调度方法、设备和存储介质
CN116414534A (zh) 任务调度方法、装置、集成电路、网络设备及存储介质
JP6189545B2 (ja) 電力消費の低減のためのネットワークアプリケーション並行スケジューリング
WO2016187831A1 (zh) 存取文件的方法、装置和存储系统
CN113127179A (zh) 资源调度方法、装置、电子设备及计算机可读介质
CN114422498A (zh) 大数据实时处理方法、系统、计算机设备及存储介质
CN115202842A (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