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

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

【技术实现步骤摘要】
基于消息队列的数据库写入调度器、写入方法和存储介质
本申请涉及数据写入
,特别是涉及基于消息队列的数据库写入调度器、写入方法和存储介质
技术介绍
在实际的生产使用中,随着写入数据库的并发请求数增多,数据库的服务稳定性会严重下降,写入请求处理的速度也会下降。针对现有的数据库的并发请求增多和写入请求处理速度之间的均衡问题,尚未提出有效的解决方案。
技术实现思路
本申请实施例提供了一种基于消息队列的数据库写入调度器、写入方法和存储介质,根据数据对实时性的敏感程度,设置不同数据的在资源紧张时的入库先后顺序。以至少解决相关技术中请求并发和写入请求处理的速度的均衡问题。第一方面,本申请实施例提供了一种基于消息队列的数据库写入调度器,包括:优先级确定模块,根据数据对实时性的敏感指数设置不同的优先级;批次大小确定模块,根据数据的优先级设置不同的消息队列,并确定对应消息队列的批次大小;线程管理模块,管理一数据库的并发线程并设置并发线程上限;数据写入模块,将数据写入对应消息队列,并经对应消息队列根据批次大小在线程管理模块管理下批量写入数据库。在其中一些实施例中,数据写入模块还包括时间均衡模块,时间均衡模块设置一最大消费时间,当消息队列的消息数大于批次大小时,触发写入动作;当消息队列的消息数小于批次大小时,等待至最大消费时间,触发写入动作。在其中一些实施例中,数据写入消息队列的频率与数据库的写入速度一致。在其中一些实施例中,数据库可具体设置为ElasticSearch。第二方面,本申请实施例提供了一种基于消息队列的数据库写入方法,应用于第一方面的基于消息队列的数据库写入调度器,包括以下步骤:优先级确定步骤,根据数据对实时性的敏感指数设置不同的优先级;批次大小确定步骤,根据数据的优先级设置不同的消息队列,并确定对应消息队列的批次大小;线程管理步骤,一线程管理模块管理一数据库的并发线程并设置并发线程上限;数据写入步骤,将数据写入对应消息队列,并经对应消息队列根据批次大小在线程管理模块管理下批量写入一数据库。在其中一些实施例中,还包括时间均衡步骤,设置一最大消费时间,当消息队列的消息数大于批次大小时,触发写入动作;当消息队列的消息数小于批次大小时,等待至最大消费时间,触发写入动作。在其中一些实施例中,数据写入消息队列的频率与数据库的写入速度一致。在其中一些实施例中,数据库可具体设置为ElasticSearch。第三方面,本申请实施例提供了一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第二方面所述的基于消息队列的数据库写入方法。第四方面,本申请实施例提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述第二方面所述的基于消息队列的数据库写入方法。相比于相关技术,本申请实施例提供的基于消息队列的数据库写入调度器、写入方法和存储介质,本专利技术可以应用于数据能力
,还可以应用于数据治理
,通过设置批次大小、最大消费时间和并发线程上限,实现请求并发和处理速度矛盾时的均衡策略,通过批次大小和最大等待时间两个维度的控制,提高了系统服务的稳定性,提升了处理速度。本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。附图说明此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:图1是根据本申请实施例的基于消息队列的数据库写入调度器的结构框图;图2是根据本申请实施例的基于消息队列的数据库写入调度器的优选结构框图;图3是根据本申请实施例的基于消息队列的数据库写入方法的流程图;图4是根据本申请优选实施例的基于消息队列的数据库写入方法的流程图;图5为根据本申请实施例的计算机设备的硬件结构示意图。附图说明:优先级确定模块1;批次大小确定模块2;线程管理模块3;数据写入模块4;时间均衡模块5;异步计算模块6;处理器81;存储器82;通信接口83;总线80。具体实施方式为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的
技术实现思路
的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属
内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。本实施例提供的基于消息队列的数据库写入调度器可以集成到需要数据库写入的设备或软件中。本申请所涉及的方法、数据库写入调度器、计算机设备或者存储介质可用于搜索引擎,还可以具体应用于Elasticse本文档来自技高网
...

【技术保护点】
1.一种基于消息队列的数据库写入调度器,其特征在于,包括:/n优先级确定模块,根据数据对实时性的敏感指数设置不同的优先级;/n批次大小确定模块,根据所述数据的优先级设置不同的消息队列,并确定对应所述消息队列的批次大小;/n线程管理模块,管理一数据库的并发线程并设置并发线程上限;/n数据写入模块,将所述数据写入对应所述消息队列,并经对应所述消息队列根据所述批次大小在所述线程管理模块管理下批量写入所述数据库。/n

【技术特征摘要】
1.一种基于消息队列的数据库写入调度器,其特征在于,包括:
优先级确定模块,根据数据对实时性的敏感指数设置不同的优先级;
批次大小确定模块,根据所述数据的优先级设置不同的消息队列,并确定对应所述消息队列的批次大小;
线程管理模块,管理一数据库的并发线程并设置并发线程上限;
数据写入模块,将所述数据写入对应所述消息队列,并经对应所述消息队列根据所述批次大小在所述线程管理模块管理下批量写入所述数据库。


2.根据权利要求1所述的基于消息队列的数据库写入调度器,其特征在于,还包括时间均衡模块,所述时间均衡模块设置一最大消费时间,
当所述消息队列的消息数大于所述批次大小时,触发写入动作;
当所述消息队列的消息数小于所述批次大小时,等待至所述最大消费时间,触发所述写入动作。


3.根据权利要求1或2所述的基于消息队列的数据库写入调度器,其特征在于,所述数据写入所述消息队列的频率与所述数据库的写入速度一致。


4.根据权利要求1所述的基于消息队列的数据库写入调度器,其特征在于,所述数据库可具体设置为ElasticSearch。


5.一种基于消息队列的数据库写入方法,应用于权利要求1-4任意一项所述的基于消息队列的数据库写入方法,其特征在于,包括以下步骤:
优先级确定步骤,根据数据对实时性的敏感指数设置不同的优先级;
批次大...

【专利技术属性】
技术研发人员:夏锦阳
申请(专利权)人:北京秒针人工智能科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1