System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及数据库,并且更具体地,涉及计算机设备中一种数据库的调用方法、装置、计算机设备和存储介质。
技术介绍
1、在多租户应用场景下,一个应用程序可能需要连接多个数据库,比如,多个租户的租户数据会被存储多个数据库中,每个租户只能调用对应数据库中的租户数据。
2、相关技术中,应用程序提前加载配置文件,通过配置文件来找到租户对应的数据库。但是,配置文件的修改较为复杂,面对租户与数据库之间的对应关系频繁变化的场景难以适应。
技术实现思路
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、在一种可能的实施方式中,所述查询解析模块,用于通过所述数据库中间件,对所述租户信息进行哈希运算,得到所述租户信息的哈希标识;通过所述数据库中间件,确定所述哈希标识对应的存储节点;通过所述存储节点,在所述数据库中间件的本地缓存中存储的多个键值对中进行查询,得到所述租户信息对应的目标键值对;将所述目标键值对的值确定为所述租户信息对应的数据库信息。
...
【技术保护点】
1.一种数据库的调用方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述响应于目标应用的初始数据库调用请求,将所述初始数据库调用请求对应的租户信息添加到所述初始数据库调用请求中,得到目标数据库调用请求包括:
3.根据权利要求2所述的方法,其特征在于,所述通过数据库中间件对所述目标数据库调用请求进行解析和查询,得到所述租户信息对应的数据库信息包括:
4.根据权利要求3所述的方法,其特征在于,所述采用所述租户信息在所述数据库中间件的本地缓存中存储的多个候选数据库信息中进行查询,得到所述租户信息对应的数据库信息包括:
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
6.根据权利要求3所述的方法,其特征在于,所述方法还包括:
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
8.一种数据库的调用装置,其特征在于,所述装置包括:
9.一种计算机设备,其特征在于,所述计算机设备包括:
10.一种计算机可读存储介质,其特征在于,所述计算机
...【技术特征摘要】
1.一种数据库的调用方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述响应于目标应用的初始数据库调用请求,将所述初始数据库调用请求对应的租户信息添加到所述初始数据库调用请求中,得到目标数据库调用请求包括:
3.根据权利要求2所述的方法,其特征在于,所述通过数据库中间件对所述目标数据库调用请求进行解析和查询,得到所述租户信息对应的数据库信息包括:
4.根据权利要求3所述的方法,其特征在于,所述采用所述租户信息在所述数据库中间件的本地缓存中存储的多个候选数据库信息中进行查询,得到所述租户信...
【专利技术属性】
技术研发人员:黄大洋,
申请(专利权)人:长城汽车股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。