多租户环境下应用与数据库之间的连接建立方法及装置与流程

文档序号:31052627发布日期:2022-08-06 08:21阅读:172来源:国知局
多租户环境下应用与数据库之间的连接建立方法及装置与流程

1.本发明涉及多租户技术,尤指一种多租户环境下应用与数据库之间的连接建立方法及装置。


背景技术:

2.随着saas(software as a service,软件即服务)的出现,软件行业正在经历一场变革。saas软件系统建立在多重租赁的基础上,也就是一套软件和数据库平台,经过软件和数据库的隔离及保密等技术,多个租户可同时使用同一应用软件。
3.在saas系统中,目前应用程序所在服务器与各个租户数据库之间的连接数的配置通常都是在应用程序的配置文件或预设存储区域中设置,应用程序启动时读取配置文件或预设存储区域,再根据读取到的值设置连接数。
4.目前设置的都是一个固定值,比如,如图4所示,左边是应用程序所在的服务器,右边是各个租户数据库,应用与每个租户数据库之间固定设置5个连接,但租户1只需要1个连接,分配5个连接就有点浪费,租户6需要10个连接,分配5个连接就会导致应用访问缓慢、甚至异常。这种配置方式存在以下缺点:1、对于低频率使用的数据库存在资源浪费;2、对于高频率使用的数据库存在连接数不足,影响租户使用体验;而且不同的租户在不同的时间段有着不同的使用率,始终按一个固定值设置租户数据库的连接数,使得服务器资源不能得到充分利用,同时不能满足客户需求。


技术实现要素:

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.根据所述租户对所述应用的使用频率等级,对到对应的系数;所述系数不大于1,对应用的使用频率越低对应的系数越小;
33.将所述系数与所述租户对所述应用的最大连接数相乘,得到所述租户对所述应用的连接数需求量。
34.本发明还提供一种多租户环境下应用与数据库之间的连接建立装置,包括:所述连接建立装置被设计成执行前述的多租户环境下应用与数据库之间的连接建立方法。
35.与现有技术相比,本发明所提供的多租户环境下应用与数据库之间的连接建立方法及装置,至少能够带来以下有益效果:本发明以每个租户的使用情况为依据,定时计算出每个租户最优的数据库连接数配置,并据此定时更新应用服务器与数据库之间的连接数,从而实现应用服务器最佳的资源利用率,避免资源浪费或连接数不够的情况。
附图说明
36.下面将以明确易懂的方式,结合附图说明优选实施方式,对一种多租户环境下应用与数据库之间的连接建立方法及装置的上述特性、技术特征、优点及其实现方式予以进一步说明。
37.图1是本发明的多租户环境下应用与数据库之间的连接建立方法的一个实施例的流程图;
38.图2是本发明的多租户环境下应用与数据库之间的连接建立装置的一个实施例的结构示意图;
39.图3是本发明的多租户环境下应用与数据库之间的连接建立装置的另一个实施例的结构示意图;
40.图4是现有技术中单应用多租户环境下应用服务器与各个租户数据库之间的连接示意图。
具体实施方式
41.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。
42.为使图面简洁,各图中只示意性地表示出了与本发明相关的部分,它们并不代表其作为产品的实际结构。另外,以使图面简洁便于理解,在有些图中具有相同结构或功能的部件,仅示意性地绘示了其中的一个,或仅标出了其中的一个。在本文中,“一个”不仅表示“仅此一个”,也可以表示“多于一个”的情形。
43.在本发明的一个实施例中,如图1所示,一种多租户环境下应用与数据库之间的连接建立方法,包括:
44.步骤s100获取每个租户对应用的使用情况;
45.步骤s200根据每个租户对应用的使用情况,按照预设规则,分别计算每个租户对应用的连接数需求量;
46.步骤s300根据每个租户对应用的连接数需求量设置应用服务器与对应的租户数据库之间的连接数,根据该连接数建立相应的连接;
47.步骤s400判断预设时间是否到达,若到达,则跳转到步骤s100。
48.具体地,应用是指一种软件或程序,尤指一种saas软件。应用服务器是指运行应用程序的服务器。租户使用应用程序所产生的数据存放在租户数据库上,租户通过应用服务器连接到对应的数据库上,不同的租户使用不同的数据库。
49.应用服务器与租户数据库之间的连接数,传统方式是设置为一固定值,但在多租户环境下由于每个租户的使用频率并不一样,所需要的连接数也不一样,若固定设置会导致有的租户体验不佳,服务器资源也未充分利用。
50.鉴于此,本实施例,根据每个租户的实际使用情况估计出每个租户的所需连接数,基于所需连接数建立相应的连接,并且定时更新每个租户的所需连接数,以及据此更新对应的连接,实现了根据实际需求动态分配连接数,使服务器资源得到充分利用,又提高了租
户的体验。
51.上述方法可以选择在应用服务器上进行。
52.步骤s400中,预设时间可以选择应用使用较少的时间点,比如每月1号/每周1凌晨1点整,这样可以减少对正常应用使用的影响。在每个预设时间重新根据每个租户的实际使用情况估计出所需连接数,基于所需连接数建立相应的连接,从而实现多租户环境下应用与数据库之间连接的按需动态建立。
53.在一个实施例中,步骤s100包括:
54.步骤s110记录各租户访问应用的操作行为,并分别保存到对应租户的操作日志中;
55.步骤s120根据租户的操作日志获取租户对应用的使用情况。
56.可借助现有工具,比如logback,log4j、其他开源日志框架等日志记录工具,记录各租户访问应用的操作行为并存储。
57.在一个实施例中,步骤s120包括:
58.步骤s121根据租户的操作日志统计出租户对应用在各个单位时间的请求连接数;
59.步骤s122从获得的所有单位时间的请求连接数中,获取单位时间的请求连接数的平均值和/或最高值和/或中位值。
60.比如,单位时间设为分钟,根据租户1小时的操作日志,可汇总出60个每分钟的请求连接数,再从这60个每分钟的请求连接数中,计算出请求连接数的平均值e、最高值t和中位值m。平均值e、最高值t和中位值m从不同的角度反映了租户对应用的使用情况。
61.在一个实施例中,步骤s200包括:
62.步骤s210从租户对应用的使用情况中获取租户在单位时间的请求连接数的最高值t和中位值m;
63.步骤s220根据租户在单位时间的请求连接数的最高值t和中位值m,确定租户对应用的使用频率等级。
64.在一个实施例中,步骤s200包括:
65.步骤s211从租户对应用的使用情况中获取租户在单位时间的请求连接数的平均值,根据租户在单位时间的请求连接数的平均值确定租户对应用的使用频率等级。
66.在一个实施例中,步骤s200还包括:
67.步骤s230获取租户对应用的最大连接数;
68.步骤s240根据租户对应用的最大连接数和租户对应用的使用频率等级,得到租户对应用的连接数需求量。
69.最大连接数可以根据实际使用中出现过的最大连接数、最大同时在线峰值,购买的账号数量、购买的最大在线数和购买的在线峰值流量中的一种或多种来确定。比如,根据租户购买的账号数量、购买的最大在线数、购买的在线峰值流量确定最大连接数;或对购买得到的允许租户使用的最大连接数和实际使用中出现过的最大连接数取小,作为最大连接数。
70.在一个实施例中,步骤s220包括:
71.将使用频率等级分为四个等级,分别为低使用频率、中使用频率、高使用频率和超过使用频率;
72.将租户在单位时间的请求连接数的中位值m除以最高值t,得到第一参考量;
73.若第一参考量不大于第一门限,则租户的使用频率等级为低使用频率;
74.若第一参考量介于第一门限与第二门限之间,则租户的使用频率等级为中使用频率;
75.若第一参考量介于第二门限与第三门限之间,则租户的使用频率等级为高使用频率;
76.若第一参考量大于第三门限,则租户的使用频率等级为超高使用频率;
77.第一门限小于第二门限,第二门限小于第三门限。
78.比如,假设第一门限=0.25,第二门限=0.5,第三门限=0.75,计算m/t,根据m/t(即第一参考量)的值将租户的使用频率等级分为四个等级:
79.低使用频率:0<m/t≤0.25;
80.中使用频率:0.25<m/t≤0.5;
81.高使用频率:0.5<m/t≤0.75;
82.超高使用频率:0.75<m/t≤1。
83.在一个实施例中,步骤s240包括:
84.根据租户对应用的使用频率等级,对到对应的系数;系数不大于1,对应用的使用频率越低对应的系数越小;
85.将系数与租户对应用的最大连接数相乘,得到租户对应用的连接数需求量。
86.比如,使用频率等级分为4级,分别为低使用频率、中使用频率、高使用频率和超高使用频率。每个使用频率等级对应一个系数a,0《系数a《=1,低使用频率对应系数0.25,中使用频率对应系数0.5,高使用频率对应系数0.75,超高使用频率对应系数1,使用频率越低对应的系数越小;租户对应用的连接数需求量n=最大连接数c*使用频率等级对应的系数a,即:
87.低使用频率:n=c*0.25且n≥1;
88.中使用频率:n=c*0.5且n≥1;
89.高使用频率:n=c*0.75且n≥1;
90.超高使用频率:n=c且n≥1。
91.在本发明的一个实施例中,如图2所示,一种多租户环境下应用与数据库之间的连接建立装置10,包括:
92.获取模块100,获取每个租户对应用的使用情况;
93.需求量计算模块200,根据每个租户对应用的使用情况,按照预设规则,分别计算每个租户对应用的连接数需求量;
94.连接建立模块300,根据每个租户对应用的连接数需求量设置应用服务器与对应的租户数据库之间的连接数,根据该连接数建立相应的连接;
95.定期更新模块400,用于若到达预设时间,则重复以上过程,定期更新应用服务器与每个租户数据库之间的连接数及相应的连接。
96.在一个实施例中,获取模块还用于记录各租户访问应用的操作行为,并分别保存到对应租户的操作日志中;根据租户的操作日志获取租户对应用的使用情况。
97.在一个实施例中,获取模块,还用于根据租户的操作日志统计出租户对应用在各
个单位时间的请求连接数;从获得的所有单位时间的请求连接数中,获取单位时间的请求连接数的最高值和中位值。
98.在一个实施例中,需求量计算模块包括:
99.使用频率确定单元,用于从租户对应用的使用情况中获取租户在单位时间的请求连接数的最高值和中位值;根据租户在单位时间的请求连接数的最高值和中位值,确定租户对应用的使用频率等级;
100.最大连接数获取单元,用于获取租户对应用的最大连接数;
101.需求量计算单元,用于根据租户对应用的最大连接数和租户对应用的使用频率等级,得到租户对应用的连接数需求量。
102.在一个实施例中,将使用频率等级分为四个等级,分别为低使用频率、中使用频率、高使用频率和超过使用频率;使用频率确定单元,还用于将租户在单位时间的请求连接数的中位值除以最高值,得到第一参考量;若第一参考量不大于第一门限,则租户的使用频率等级为低使用频率;若第一参考量介于第一门限与第二门限之间,则租户的使用频率等级为中使用频率;若第一参考量介于第二门限与第三门限之间,则租户的使用频率等级为高使用频率;若第一参考量大于第三门限,则租户的使用频率等级为超高使用频率;第一门限小于第二门限,第二门限小于第三门限。
103.在一个实施例中,需求量计算单元,还用于根据租户对应用的使用频率等级,对到对应的系数;系数不大于1,对应用的使用频率越低对应的系数越小;将系数与租户对应用的最大连接数相乘,得到租户对应用的连接数需求量。
104.需要说明的是,本发明提供的一种多租户环境下应用与数据库之间的连接建立装置的实施例与前述提供的多租户环境下应用与数据库之间的连接建立方法的实施例均基于同一发明构思,能够取得相同的技术效果。因而,多租户环境下应用与数据库之间的连接建立装置的实施例的其它具体内容可以参照前述连接建立方法的实施例内容的记载。
105.在本发明的一个实施例中,如图3所示,一种多租户环境下应用与数据库之间的连接建立装置20,包括存储器21、处理器22;
106.存储器21,用于存储计算机程序23;
107.处理器22,用于运行计算机程序23时实现如前述记载的多租户环境下应用与数据库之间的连接建立方法。
108.作为一个示例,处理器21执行计算机程序时实现根据前述记载的步骤s100~步骤s400。另外地,处理器21执行计算机程序时实现前述记载的连接建立装置10中各模块的功能。作为又一个示例,处理器执行计算机程序时实现获取模块100、需求量计算模块200、连接建立模块300和定期更新模块400的功能。
109.可选地,根据完成本发明的具体需要,计算机程序可以被分割为一个或多个模块/单元。每个模块/单元可以为能够完成特定功能的一系列计算机程序指令段。该计算机程序指令段用于描述计算机程序在连接建立装置20中的执行过程。
110.作为示例,计算机程序可以被分割为虚拟装置中的各个模块/单元,譬如获取模块、需求量计算模块、连接建立模块和定期更新模块。
111.根据需要,连接建立装置20还可以包括输入输出设备、显示设备、网络接入设备及总线等。
112.本领域技术人员可以理解的是,上述用于实现相应功能的单元、模块的划分是出于便利于说明、叙述的目的,根据应用需求,将上述单元、模块做进一步的划分或者组合,即将装置/设备的内部结构重新进行划分、组合,以实现的上述记载的功能。
113.上述实施例的各个单元、模块可以分别采用单独的物理单元,也可以将两个或两个以上的单元、模块集成在一个物理单元。上述实施例的各个单元、模块可以采用硬件和/或软件功能单元的实现对应的功能。上述实施例的多个单元、组件、模块之间可以的直接耦合、间接耦合或通讯连接可以通过总线或者接口实现;多个单元或装置的之间的耦合、连接,可以是电性、机械或类似的方式。相应地,上述实施例的各个单元、模块的具体名称也只是为了便于叙述及区分,并不用限制本技术的保护范围。
114.应当说明的是,上述实施例均可根据需要自由组合。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1