System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 多数据源的连接管理方法、装置、存储介质及电子设备制造方法及图纸_技高网

多数据源的连接管理方法、装置、存储介质及电子设备制造方法及图纸

技术编号:40212331 阅读:8 留言:0更新日期:2024-02-02 22:21
本申请公开了一种多数据源的连接管理方法、装置、存储介质及电子设备。该方法包括:接收用户的数据源连接请求,确定数据源连接请求的请求类型,基于请求类型确定是否需要建立代理连接;在不需要建立代理连接的情况下,确定数据源连接请求为查询请求,从缓存数据库中确定查询请求对应的查询结果,将查询结果返回给用户;在需要建立代理连接的情况下,从数据源连接请求中提取目标数据源,构建目标数据源与用户的代理连接;基于代理连接从目标数据源获取连接实例,基于连接实例连接用户与目标数据源,基于数据源连接请求对目标数据源中的数据进行处理。通过本申请,解决了相关技术中与数据源连接时直接创建连接实例,数据源连接的利用效率低的问题。

【技术实现步骤摘要】

本申请涉及信息以及数据源连接领域,具体而言,涉及一种多数据源的连接管理方法、装置、存储介质及电子设备


技术介绍

1、随着互联网技术的快速发展,信息交互对实时性的要求越来越高,对于数据源的连接管理也经历了数次演进。对于连接请求较少,相对简单的应用系统,由于用户对数据库的访问不频繁,在用户需要访问数据库资源时,通过创建用户与数据源之间的新的连接,在连接使用完毕后关闭该连接。在数据连接请求的数量较少的场景下,实时创建新连接的方法并不会较为明显的影响性能开销,但是对于一个业务复杂,数据连接请求的并发量较高的场景中,数据库必须满足大量的连接请求,相同的连接将会被重复的创建和销毁,造成数据库资源的大量消耗,极大降低了系统性能。

2、为了提高对诸如内存、cpu(central processing unit,中央处理器)和数据库连接等系统资源的利用率,提升应用系统的效率,数据库连接池便应运而生。相关技术中,通过使用数据库连接池,将数据库连接变成了一种可复用的资源,降低了应用系统创建和销毁数据库连接的资源开销,提升了cpu的使用效率。然而,在相关技术中的数据库连接池管理方法中,大多是针对单一的数据源建立连接池进行统一的管理,当业务数据达到了一个量级,使用单一数据库存储达到瓶颈后,需要进行分库分表等操作进行数据管理,此时的数据操作同样需要进行多数据源的连接。

3、在某些数据服务的场景中,需要支持多种不同类型的数据库,比如mysql(mystructured query language,关系型数据库管理系统)、clickhouse(click stream,datawarehouse,列式分布式数据库管理系统)、hbase(hadoop database,一种分布式的、面向列的开源数据库)等。当应用系统涉及到多个数据源时,相关技术中的数据源管理方法多是针对不同数据源创建多种连接池,各种连接池的参数,调用方式,性能等皆不一致,使用和维护非常复杂。相关技术中数据库连接池的相关参数都是人为根据以往经验而在连接池建立之前设置的,这种固定参数的设计无法对连接池的参数进行动态调整,连接池不具有自适应的能力。而在多数据源的情况下,不同数据源的并发需求并不相同,固定的参数设置,容易造成不同数据源的资源分配不均,无法最大化利用系统性能。

4、针对相关技术中与数据源连接时直接创建连接实例,数据源连接的利用效率低的问题,目前尚未提出有效的解决方案。


技术实现思路

1、本申请的主要目的在于提供一种多数据源的连接管理方法、装置、存储介质及电子设备,以解决相关技术中与数据源连接时直接创建连接实例,数据源连接的利用效率低的问题。

2、为了实现上述目的,根据本申请的一个方面,提供了一种多数据源的连接管理方法。该方法包括:接收用户的数据源连接请求,并确定数据源连接请求的请求类型,基于请求类型确定是否需要建立代理连接,其中,代理连接用于确定用户需要连接的数据源,并模拟用户与数据源之间的连接状态;在不需要建立代理连接的情况下,确定数据源连接请求为查询请求,从缓存数据库中确定查询请求对应的查询结果,并将查询结果返回给用户;在需要建立代理连接的情况下,从数据源连接请求中提取出待连接的目标数据源,构建目标数据源与用户之间的代理连接;基于代理连接从目标数据源获取连接实例,基于连接实例连接用户与目标数据源,并基于数据源连接请求对目标数据源中的数据进行处理。

3、可选地,基于请求类型确定是否需要建立代理连接包括:判断请求类型是否为查询请求;在请求类型不是查询请求的情况下,确定需要建立代理连接;在请求类型是查询请求的情况下,判断缓存数据库中是否存在查询请求需要查询的目标数据;在缓存数据库中存在查询请求需要查询的目标数据的情况下,确定不需要建立代理连接;在缓存数据库中不存在查询请求需要查询的目标数据的情况下,确定需要建立代理连接。

4、可选地,在从缓存数据库中确定查询请求对应的查询结果之前,该方法还包括:获取所有查询请求需要查询的查询数据,并确定每个查询数据的内存占有量;对于每个查询数据,判断内存占有量是否大于等于内存占有量阈值;在内存占有量大于等于内存占有量阈值的情况下,将内存占有量对应的查询数据从缓存数据库中删除;在内存占有量小于内存占有量阈值的情况下,确定查询数据的查询命中率,其中,查询命中率是查询数据对应的查询请求的数量与所有查询请求的总数量的比值;判断查询命中率是否大于等于命中率阈值,在查询命中率小于命中率阈值的情况下,将查询数据从缓存数据库中删除;在查询命中率大于等于命中率阈值的情况下,将查询数据存储至缓存数据库。

5、可选地,基于代理连接从目标数据源获取连接实例包括:判断数据源连接池中是否存在目标数据源,其中,数据源连接池包含多个数据源;在数据源连接池中存在目标数据源的情况下,判断目标数据源是否存在闲置连接;在目标数据源存在闲置连接的情况下,将闲置连接确定为连接实例;在目标数据源不存在闲置连接的情况下,在目标数据源创建新增连接,将新增连接确定为连接实例。

6、可选地,在判断目标数据源是否存在闲置连接之前,该方法还包括:确定数据源连接池中的所有数据源,采集每个数据源的历史连接记录;对于每个数据源,从历史连接记录中提取出历史连接参数,其中,历史连接参数至少包括:历史连接请求次数、历史最大连接数和历史最小连接数;基于隐马尔可夫算法构建连接参数预测模型,将历史连接参数和当前连接请求次数输入连接参数预测模型,得到预测连接参数,其中,预测连接参数包括最大连接数和最小连接数;将数据源的连接参数替换为预测连接参数。

7、可选地,在目标数据源创建新增连接之前,该方法还包括:判断目标数据源的当前连接数量是否大于等于最大连接数;在目标数据源的当期连接数量小于最大连接数的情况下,执行在目标数据源创建新增连接,将新增连接确定为连接实例的步骤;在目标数据源的当前连接数量大于等于最大连接数的情况下,在预设等待时长内重复执行判断目标数据源是否存在闲置连接的步骤,直到目标数据源存在闲置连接,将闲置连接确定为连接实例;在预设等待时长后目标数据源不存在闲置连接的情况下,发出提示信息,其中,提示信息用于提示数据源连接请求的连接失败;获取连接失败的数据源连接请求的数量,得到连接失败数量,判断连接失败数量是否大于等于连接失败数量阈值;在连接失败数量大于等于连接失败数量阈值的情况下,更新连接参数预测模型。

8、可选地,在基于连接实例连接用户与目标数据源之后,该方法还包括:判断数据源连接请求是否执行完成;在数据源连接请求执行完成的情况下,将连接实例更新为闲置连接。

9、为了实现上述目的,根据本申请的另一方面,提供了一种多数据源的连接管理装置。该装置包括:接收单元,用于接收用户的数据源连接请求,并确定数据源连接请求的请求类型,基于请求类型确定是否需要建立代理连接,其中,代理连接用于确定用户需要连接的数据源,并模拟用户与数据源之间的连接状态;确定单元,用于在不需要建立代理连接的情况下,本文档来自技高网...

【技术保护点】

1.一种多数据源的连接管理方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,基于所述请求类型确定是否需要建立代理连接包括:

3.根据权利要求1所述的方法,其特征在于,在从缓存数据库中确定所述查询请求对应的查询结果之前,所述方法还包括:

4.根据权利要求1所述的方法,其特征在于,基于所述代理连接从所述目标数据源获取连接实例包括:

5.根据权利要求4所述的方法,其特征在于,在判断所述目标数据源是否存在闲置连接之前,所述方法还包括:

6.根据权利要求4所述的方法,其特征在于,在所述目标数据源创建新增连接之前,所述方法还包括:

7.根据权利要求1所述的方法,其特征在于,在基于所述连接实例连接所述用户与所述目标数据源之后,所述方法还包括:

8.一种多数据源的连接管理装置,其特征在于,包括:

9.一种非易失性存储介质,其特征在于,所述非易失性存储介质包括存储的程序,其中,所述程序运行时控制所述非易失性存储介质所在的设备执行权利要求1至7中任意一项所述的多数据源的连接管理方法。p>

10.一种电子设备,其特征在于,包括一个或多个处理器和存储器,所述存储器用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1至7中任意一项所述的多数据源的连接管理方法。

...

【技术特征摘要】

1.一种多数据源的连接管理方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,基于所述请求类型确定是否需要建立代理连接包括:

3.根据权利要求1所述的方法,其特征在于,在从缓存数据库中确定所述查询请求对应的查询结果之前,所述方法还包括:

4.根据权利要求1所述的方法,其特征在于,基于所述代理连接从所述目标数据源获取连接实例包括:

5.根据权利要求4所述的方法,其特征在于,在判断所述目标数据源是否存在闲置连接之前,所述方法还包括:

6.根据权利要求4所述的方法,其特征在于,在所述目标数据源创建新增连接之前,所述方法还包括:

7....

【专利技术属性】
技术研发人员:陈志刘天资
申请(专利权)人:天翼电子商务有限公司
类型:发明
国别省市:

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

1