本技术涉及数据处理,尤其涉及一种连接池中连接处理方法、装置、设备及介质。
背景技术:
1、为了提高性能,在一些高并发场景下,由于客户端需要与服务端频繁的建立连接,一般会采用连接池的模式,而连接池中可创建的连接数量是有限的。
2、目前常用的连接池即使在存在处于空闲状态的连接的情况下,也会根据客户端应用的需求不断创建新的连接,从而导致资源耗尽。
3、因此,目前的连接池会根据客户端应用的需求不断创建新的连接,从而产生资源耗尽的问题。
技术实现思路
1、本技术提供一种连接池中连接处理方法、装置、设备及介质,用以解决目前的连接池会根据客户端应用的需求不断创建新的连接,从而产生资源耗尽的问题。
2、本技术第一方面提供一种连接池中连接处理方法,包括:
3、获取客户端应用对应的连接获取请求;
4、根据所述连接获取请求确定连接池对应的连接状态;
5、若连接池的连接状态为不存在可获取连接,则判断连接池是否具备创建新的连接的条件;所述可获取连接为连接池中未曾被线程应用占用或被线程应用占用但处于空闲状态的连接;
6、若确定连接池具备创建新的连接的条件,则创建新的连接,并使所述客户端应用获取所述新的连接。
7、进一步地,如上所述的方法,所述连接池中已创建的连接包括:被线程应用占用的已用连接和未曾被线程应用占用的可用连接;所述已用连接包括:处于空闲状态的空闲连接和处于忙碌状态的忙碌连接;
8、所述根据所述连接获取请求确定连接池对应的连接状态,包括:
9、根据所述连接获取请求判断连接池中是否存在所述可用连接;
10、若确定不存在所述可用连接,则判断所述已用连接中是否存在所述空闲连接;
11、若确定不存在所述空闲连接,则确定连接池中的连接状态为不存在可获取连接。
12、进一步地,如上所述的方法,若确定存在所述可用连接,则所述方法,还包括:
13、从所述可用连接中确定所述客户端应用对应的目标连接;
14、使所述客户端应用获取所述目标连接。
15、进一步地,如上所述的方法,若确定存在所述空闲连接,则所述方法还包括:
16、从所述空闲连接中确定所述客户端应用对应的目标连接;
17、使所述客户端应用获取所述目标连接。
18、进一步地,如上所述的方法,所述判断连接池是否具备创建新的连接的条件,包括:
19、获取所述连接池中已创建的所有连接的目标连接数量;
20、判断所述目标连接数量是否大于或等于预设理论连接数量;
21、若确定所述目标连接数量大于或等于预设理论连接数量,则确定连接池不具备创建新的连接的条件;
22、若确定所述目标连接数量小于预设理论连接数量,则确定连接池具备创建新的连接的条件。
23、进一步地,如上所述的方法,所述判断所述目标连接数量是否大于或等于预设理论连接数量之前,还包括:
24、获取资源状态相关数据;所述资源状态相关数据包括:处理器核心数、处理器核心的使用率、已用的端口数、端口总数、已用的文件描述符数目和最大文件描述符数目;
25、将所述资源状态相关数据输入预设理论连接数算法,生成所述预设理论连接数量。
26、进一步地,如上所述的方法,所述判断所述目标连接数量是否大于或等于预设理论连接数量之前,还包括:
27、判断所述目标连接数量是否大于或等于预设数量阈值;所述预设数量阈值为连接池对应的预设最大连接数量与预设比例阈值之间的乘积;
28、若确定所述目标连接数量大于或等于预设数量阈值,则执行所述判断所述目标连接数量是否大于或等于预设理论连接数量的步骤;
29、若确定所述目标连接数量小于预设数量阈值,则确定连接池具备创建新的连接的条件。
30、本技术第二方面提供一种连接池中连接处理装置,包括:
31、获取模块,用于获取客户端应用对应的连接获取请求;
32、确定模块,用于根据所述连接获取请求确定连接池对应的连接状态;
33、判断模块,用于若连接池的连接状态为不存在可获取连接,则判断连接池是否具备创建新的连接的条件;所述可获取连接为连接池中未曾被线程应用占用或被线程应用占用但处于空闲状态的连接;
34、创建模块,用于若确定连接池具备创建新的连接的条件,则创建新的连接,并使所述客户端应用获取所述新的连接。
35、进一步地,如上所述的装置,所述连接池中已创建的连接包括:被线程应用占用的已用连接和未曾被线程应用占用的可用连接;所述已用连接包括:处于空闲状态的空闲连接和处于忙碌状态的忙碌连接;
36、所述确定模块具体用于:
37、根据所述连接获取请求判断连接池中是否存在所述可用连接;若确定不存在所述可用连接,则判断所述已用连接中是否存在所述空闲连接;若确定不存在所述空闲连接,则确定连接池中的连接状态为不存在可获取连接。
38、进一步地,如上所述的装置,若确定存在所述可用连接,则所述确定模块还用于:
39、从所述可用连接中确定所述客户端应用对应的目标连接;使所述客户端应用获取所述目标连接。
40、进一步地,如上所述的装置,若确定存在所述空闲连接,则所述确定模块还用于:
41、从所述空闲连接中确定所述客户端应用对应的目标连接;使所述客户端应用获取所述目标连接。
42、进一步地,如上所述的装置,所述判断模块在判断连接池是否具备创建新的连接的条件时,具体用于:
43、获取所述连接池中已创建的所有连接的目标连接数量;判断所述目标连接数量是否大于或等于预设理论连接数量;若确定所述目标连接数量大于或等于预设理论连接数量,则确定连接池不具备创建新的连接的条件;若确定所述目标连接数量小于预设理论连接数量,则确定连接池具备创建新的连接的条件。
44、进一步地,如上所述的装置,所述装置还包括:
45、生成模块,用于获取资源状态相关数据;所述资源状态相关数据包括:处理器核心数、处理器核心的使用率、已用的端口数、端口总数、已用的文件描述符数目和最大文件描述符数目;将所述资源状态相关数据输入预设理论连接数算法,生成所述预设理论连接数量。
46、进一步地,如上所述的装置,所述装置还包括:
47、数值判断模块,用于判断所述目标连接数量是否大于或等于预设数量阈值;所述预设数量阈值为连接池对应的预设最大连接数量与预设比例阈值之间的乘积;若确定所述目标连接数量大于或等于预设数量阈值,则执行所述判断所述目标连接数量是否大于或等于预设理论连接数量的步骤;若确定所述目标连接数量小于预设数量阈值,则确定连接池具备创建新的连接的条件。
48、本技术第三方面提供一种电子设备,包括:存储器和处理器;
49、所述存储器存储计算机执行指令;
50、所述处理器执行所述存储器存储的计算机执行指令,以实现如第一方面任一项所述的连接池中连接处理方法。
51、本技术第四方面提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现第一方面任一项所述的连接池中连接处理方法。
52、本技术第五方面提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现第一方面任一项所述的连接池中连接处理方法。
53、本技术提供的一种连接池中连接处理方法、装置、设备及介质,该方法包括:获取客户端应用对应的连接获取请求;根据所述连接获取请求确定连接池对应的连接状态;若连接池的连接状态为不存在可获取连接,则判断连接池是否具备创建新的连接的条件;所述可获取连接为连接池中未曾被线程应用占用或被线程应用占用但处于空闲状态的连接;若确定连接池具备创建新的连接的条件,则创建新的连接,并使所述客户端应用获取所述新的连接。本技术的连接池中连接处理方法,在获取到客户端应用对应的连接获取请求时,确定连接池对应的连接状态,若连接池的连接状态为不存在可获取连接,则进一步判断连接池是否具备创建新的连接的条件。同时,仅在连接池具备创建新的连接的条件时,才会创建新的连接,不会根据客户端应用的需求不断创建新的连接,从而避免产生资源耗尽的问题。