配置数据源的方法及系统的制作方法

xiaoxiao2021-2-23  125

配置数据源的方法及系统的制作方法
【技术领域】
[0001]本发明涉及计算机技术领域,特别地涉及一种配置数据源的方法及装置。
【背景技术】
[0002]数据库应用中,数据源作为数据库连接管理的标准接口,应用实例通过数据源获取到数据库的连接。应用实例通过内嵌的客户端与配置系统服务器交互。数据源的配置参数通常包括数据库IP、端口、schema、用户名、密码等等连接参数。对于提供连接池功能的数据源来说,数据源的配置参数还包括最大连接数、最小连接数、空闲连接销毁时间等等容量参数。
[0003]数据库运行维护的过程中,需要定期修改用户名或密码,有时还需要升级更换服务器,导致IP发生变更。对于这种连接参数发生变化的场景,应用实例一般需要修改配置重启。另外,如果增加(或者减少)了应用实例,原有应用实例的连接池的最大连接数和最小连接数等容量参数一般需要调小(或者调大),以使数据库总体连接数保持在合理水平。一般的连接池数据源实现都提供了修改最大、最小连接数参数的应用程序编程接口 API(Applicat1n Programming Interface),但是需要人工逐个调整,十分耗费时间和精力。有鉴于上述情况,当前亟需寻求一种方案满足如下两个条件:(1)当连接参数发生变化时,应用实例无需重启就能使用新的数据源;(2)当容量参数变化时,能够快捷统一地调整所有应用实例的容量参数,而不需要逐个修改。
[0004]现有技术中,通常借助于应用实例开发框架(比如Java的Spring框架)提供多个数据源,即提前让应用程序配置好所有可能用到的底层数据源,上层的数据源实现包含这些底层数据源引用,根据应用程序运行时上下文环境来选择使用其中一个底层数据源,由它负责应用程序的调用。但是,该方案的本质是一种静态的配置,无法应用于无法提前确定连接参数的场景,也无法应用于容量参数发生变化的场景。

【发明内容】

[0005]有鉴于此,本发明提供一种配置数据源的方法及系统,能够克服现有技术中的问题,具有简便易行等优点。
[0006]为实现上述目的,根据本发明的一个方面,提供了一种配置数据源的方法。
[0007]本发明的配置数据源的方法,包括:在所述配置系统服务器中具有待激活状态的新数据源配置信息的情况下,所述配置系统服务器对应的多个客户端中的各个客户端从所述配置系统服务器获取所述新数据源配置信息并保存在本地;各个所述客户端对所述新数据源配置信息进行验证,然后将验证结果发送给所述配置系统服务器;在所述配置系统服务器根据所述验证结果判断各个所述客户端都验证通过的情况下,各个所述客户端从所述配置系统服务器获取当前客户端数量;各个所述客户端在获取到所述当前客户端数量后,根据本地保存的所述新数据源配置信息和本地当前使用数据源配置信息之间的差异类型和所述当前客户端数量来执行预设操作。
[0008]可选地,所述根据本地保存的所述新数据源配置信息和本地当前使用数据源配置信息之间的差异类型和所述当前客户端数量来执行预设操作的步骤包括:若所述差异类型是容量参数差异,则所述客户端根据所述当前客户端数量计算最大连接数平均值和最小连接数平均值,然后进行修改数据源容量参数的操作;若所述差异类型是连接参数差异,则所述客户端进行如下操作:新建底层数据源对象,关闭原底层数据源对象,并且修改当前使用的底层数据源对象引用。
[0009]可选地,所述各个所述客户端对所述新数据源配置信息进行验证的步骤包括:各个所述客户端验证所述新数据源配置信息的格式和参数的合法性;以及各个所述客户端验证所述新数据源配置信息中的数据库连接参数的正确性和可行性。
[0010]可选地,所述各个所述客户端从所述配置系统服务器获取所述待激活状态的新数据源配置信息并保存在本地的步骤之前,还包括:各个所述客户端定期监测所述配置系统服务器中是否具有待激活状态的新数据源配置信息;所述各个所述客户端从所述配置系统服务器获取所述待激活状态的新数据源配置信息并保存在本地的步骤包括:各个所述客户端从所述配置系统服务器下载所述待激活状态的新数据源配置信息并保存在本地。
[0011]可选地,所述各个所述客户端从所述配置系统服务器获取当前客户端数量的步骤之前,还包括:在所述配置系统服务器根据所述验证结果判断各个客户端都验证通过的情况下,所述配置系统服务器激活所述新数据源配置信息;所述各个所述客户端从所述配置系统服务器获取当前客户端数量的步骤包括:各个所述客户端定期获取所述配置系统服务器中的最近激活的数据源配置信息的版本号,然后将所述最近激活的数据源配置信息的版本号与本地保存的待激活状态的所述新数据源配置信息的版本号做比较,若二者一致则从所述配置系统服务器主动获取所述当前客户端数量。
[0012]为实现上述目的,根据本发明的另一个方面,提供了一种配置数据源的系统。
[0013]本发明的配置数据源的系统,包括:配置系统服务器和多个客户端,其中,所述客户端用于:在所述配置系统服务器中具有待激活状态的新数据源配置信息的情况下,从所述配置系统服务器获取所述待激活状态的新数据源配置信息并保存在本地;对所述新数据源配置信息进行验证,然后将验证结果发送给所述配置系统服务器;在所述配置系统服务器根据所述验证结果判断所述多个客户端都验证通过的情况下,从所述配置系统服务器获取当前客户端数量;在获取到所述当前客户端数量后,根据本地保存的所述新数据源配置信息和本地当前使用数据源配置信息之间的差异类型和所述当前客户端数量来执行预设操作。
[0014]可选地,所述客户端还用于:在所述差异类型是容量参数差异的情况下,根据所述当前客户端数量计算最大连接数平均值和最小连接数平均值,然后进行修改数据源容量参数的操作;在所述差异类型是连接参数差异的情况下,进行如下操作:新建底层数据源对象,关闭原底层数据源对象,并且修改当前使用的底层数据源对象引用。
[0015]可选地,所述客户端还用于:验证所述新数据源配置信息的格式和参数的合法性;以及验证所述新数据源配置信息中的数据库连接参数的正确性和可行性。
[0016]可选地,所述客户端还用于:定期监测所述配置系统服务器中是否具有待激活状态的新数据源配置信息,若具有则从所述配置系统服务器下载所述待激活状态的新数据源配置信息并保存在本地。
[0017]可选地,所述配置系统服务器用于在根据所述验证结果判断所述多个客户端都验证通过的情况下,激活所述新数据源配置信息;所述客户端还用于:定期获取所述配置系统服务器中的最近激活的数据源配置信息的版本号,然后将所述最近激活的数据源配置信息的版本号与本地保存的待激活状态的所述新数据源配置信息的版本号做比较,若二者一致则从所述配置系统服务器主动获取所述当前客户端数量。
[0018]根据本发明的技术方案,本发明实施方式的配置数据源的方法和系统中的客户端先后执行“下载”和“激活”两个动作,可以保证客户端的提前验证和准备工作。本发明的配置数据源的方法和系统还实现了全局连接池配置,无需重启客户端即可动态改变数据库连接信息和容量信息,具有简便易行等优点。
【附图说明】
[0019]附图用于更好地理解本发明,不 构成对本发明的不当限定。其中:
[0020]图1是根据本发明实施方式的配置数据源的方法的基本步骤的示意图;
[0021]图2是根据本发明实施方式的配置数据源的系统的主要模块的示意图。
【具体实施方式】
[0022]以下结合附图对本发明的示范性实施方式做出说明,其中包括本发明实施方式的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施方式做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
[0023]图1是根据本发明实施方式的配置数据源的方法的基本步骤的示意图。如图1所示,本发明实施方式的配置数据源的方法可以包括如下的步骤A至步骤D。
[0024]步骤A:在配置系统服务器中具有待激活状态的新数据源配置信息的情况下,配置系统服务器对应的多个客户端中的各个客户端从配置系统服务器获取新数据源配置信息并保存在本地。其中,配置系统服务器与各个客户端之间传送数据可以采用拉取(PULL)模式或者推送(PUSH)模式。
[0025]在采用拉取模式的实施方式中,客户端主动获取数据。该实施方式中步骤A的“各个客户端从配置系统服务器获取待激活状态的新数据源配置信息并保存在本地”的步骤之前,还包括:各个客户端定期监测配置系统服务器中是否具有待激活状态的新数据源配置信息。并且步骤A的“各个客户端从配置系统服务器获取待激活状态的新数据源配置信息并保存在本地”的步骤具体包括:各个客户端从配置系统服务器下载待激活状态的新数据源配置信息并保存在本地。该实施方式的配置数据源的方法采取拉取模式,可以减轻配置系统服务器的负担,降低配置系统服务器的故障率,从而提高了其稳定性。
[0026]在采用推送模式的实施方式中,客户端被动接收数据。该实施方式中步骤A具体可以包括如下过程:配置系统服务器接收并保存待激活状态的新数据源配置信息,配置系统服务器向各个客户端分别下发该待激活状态的新数据源配置信息。
[0027]步骤B:各个客户端对新数据源配置信息进行验证,然后将验证结果发送给配置系统服务器。
[0028]可选地,步骤B具体包括:各个客户端验证新数据源配置信息的格式和参数的合法性;以及各个客户端验证新数据源配置信息中的数据库连接参数的正确性和可行性。
[0029]步骤C:在配置系统服务器根据验证结果判断各个客户端都验证通过的情况下,各个客户端从配置系统服务器获取当前客户端数量。其中,配置系统服务器与各个客户端之间传送数据可以采用拉取模式或则推送模式。
[0030]在采用拉取模式的实施方式中,客户端主动获取数据。该实施方式中步骤C的“各个客户端从配置系统服务器获取当前客户端数量的步骤”之前,还包括:在配置系统服务器根据验证结果判断各个客户端都验证通过的情况下,配置系统服务器激活新数据源配置信息。并且,步骤C的“各个客户端从配置系统服务器获取当前客户端数量”的步骤具体包括:各个客户端定期获取配置系统服务器中的最近激活的数据源配置信息的版本号,然后将最近激活的数据源配置信息的版本号与本地保存的待激活状态的新数据源配置信息的版本号做比较,若二者一致则从配置系统服务器主动获取当前客户端数量。该实施方式的配置数据源的方法采取拉取模式,可以减轻配置系统服务器的负担,降低配置系统服务器的故障率,从而提高了其稳定性。
[0031]需要说明的是,该实施方式中客户端访问配置系统服务器的频率可以智能调整。例如:有时候客户端判断获取到的配置系统服务器中的最近激活的数据源配置信息的版本号与本地保存的待激活状态的新数据源配置信息的版本号不一致(通常是配置系统服务器中的最近激活的数据源配置信息的版本号低于本地保存的待激活状态的新数据源配置信息的版本号),这意味着即将新数据源配置信息已经被下发到客户端并且亟待被激活。这时可以将访问频率加快,以使验证结果更快地反馈给配置系统服务器,从而提高了工作效率。等到高频访问过程持续预设时长之后再恢复普通访问频率。或者,等到客户端判断获取到的配置系统服务器中的最近激活的数据源配置信息的版本号与本地保存的待激活状态的新数据源配置信息的版本号变为一致之后再恢复普通访问频率。
[0032]在采用推送模式的实施方式中,客户端是被动接收数据。该实施方式中步骤C具体可以包括如下过程:配置系统服务器根据验证结果判断是否多个客户端都验证通过,若全部验证通过则主动向客户端发送当前客户端数量。
[0033]步骤D:各个客户端在获取到当前客户端数量后,根据本地保存的新数据源配置信息和本地当前使用数据源配置信息之间的差异类型和当前客户端数量来执行预设操作。可选地,预设操作具体包括如下的情形。
[0034]情形1:若差异类型是容量参数差异,则客户端根据当前客户端数量计算最大连接数平均值和最小连接数平均值,然后进行修改数据源容量参数的操作。
[0035]情形2:若差异类型是连接参数差异,则客户端进行如下操作:新建底层数据源对象,关闭原底层数据源对象,并且修改当前使用的底层数据源对象引用。
[0036]结合上文可知,本发明实施方式的配置数据源的方法经历了“下载”和“激活”两个阶段,可以保证客户端的提前验证和准备工作。该实施方式的配置数据源的方法还实现了全局连接池配置,无需重启客户端即可动态改变数据库连接信息和容量信息,具有简便易行等优点。
[0037]图2是根据本发明实施方式的配置数据源的系统的主要模块的示意图。如图2所示,该实施方式的配置数据源的系统20主要包括配置系统服务器21和多个客户端221、222、……、22N。其中,各个客户端221、222、……、22N用于:在配置系统服务器21中具有待激活状态的新数据源配置信息的情况下,从配置系统服务器21获取待激活状态的新数据源配置信息并保存在本地;对新数据源配置信息进行验证,然后将验证结果发送给配置系统服务器21;在配置系统服务器21根据验证结果判断多个客户端221、222、……、22N都验证通过的情况下,从配置系统服务器21获取当前客户端的数量;在获取到当前客户端的数量后,根据本地保存的新数据源配置信息和本地当前使用数据源配置信息之间的差异类型和当前客户端的数量来执行预设操作。
[0038]结合上文可知,本发明实施方式的配置数据源的系统中的客户端先后执行“下载”和“激活”两个动作,可以保证客户端的提前验证和准备工作。该实施方式的配置数据源的系统还实现了全局连接池配置,无需重启客户端即可动态改变数据库连接信息和容量信息,具有简便易行等优点。
[0039]可选地,上述的客户端221、222、……、22N还用于:在差异类型是容量参数差异的情况下,根据当前客户端数量计算最大连接数平均值和最小连接数平均值,然后进行修改数据源容量参数的操作;在差异类型是连接参数差异的情况下,进行如下操作:新建底层数据源对象,关闭原底层数据源对象,并且修改当前使用的底层数据源对象引用。
[0040]可选地,上述的客户端221、222、……、22N还用于:验证新数据源配置信息的格式和参数的合法性;以及验证新数据源配置信息中的数据库连接参数的 正确性和可行性。
[0041]可选地,上述的客户端221、222、……、22N还用于:定期监测配置系统服务器21中是否具有待激活状态的新数据源配置信息,若具有则从配置系统服务器21下载待激活状态的新数据源配置信息并保存在本地。该实施方式的配置数据源的方法采取拉取模式,可以减轻配置系统服务器的负担,降低配置系统服务器的故障率,从而提高了其稳定性。
[0042]可选地,配置系统服务器21用于在根据验证结果判断是否多个客户端都验证通过的情况下,激活新数据源配置信息。客户端221、222、……、22N还用于:定期获取配置系统服务器21中的最近激活的数据源配置信息的版本号,然后将最近激活的数据源配置信息的版本号与本地保存的待激活状态的新数据源配置信息的版本号做比较,若二者一致则从配置系统服务器21主动获取当前客户端数量。该实施方式的配置数据源的方法采取拉取模式,可以减轻配置系统服务器的负担,降低配置系统服务器的故障率,从而提高了其稳定性。
[0043]上述【具体实施方式】,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
【主权项】
1.一种配置数据源的方法,其特征在于,包括: 在所述配置系统服务器中具有待激活状态的新数据源配置信息的情况下,所述配置系统服务器对应的多个客户端中的各个客户端从所述配置系统服务器获取所述新数据源配置信息并保存在本地; 各个所述客户端对所述新数据源配置信息进行验证,然后将验证结果发送给所述配置系统服务器; 在所述配置系统服务器根据所述验证结果判断各个所述客户端都验证通过的情况下,各个所述客户端从所述配置系统服务器获取当前客户端数量; 各个所述客户端在获取到所述当前客户端数量后,根据本地保存的所述新数据源配置信息和本地当前使用数据源配置信息之间的差异类型和所述当前客户端数量来执行预设操作。2.根据权利要求1所述的配置数据源的方法,其特征在于,所述根据本地保存的所述新数据源配置信息和本地当前使用数据源配置信息之间的差异类型和所述当前客户端数量来执行预设操作的步骤包括: 若所述差异类型是容量参数差异,则所述客户端根据所述当前客户端数量计算最大连接数平均值和最小连接数平均值,然后进行修改数据源容量参数的操作; 若所述差异类型是连接参数差异,则所述客户端进行如下操作:新建底层数据源对象,关闭原底层数据源对象,并且修改当前使用的底层数据源对象引用。3.根据权利要求1所述的配置数据源的方法,其特征在于,所述各个所述客户端对所述新数据源配置信息进行验证的步骤包括: 各个所述客户端验证所述新数据源配置信息的格式和参数的合法性;以及 各个所述客户端验证所述新数据源配置信息中的数据库连接参数的正确性和可行性。4.根据权利要求1所述的配置数据源的方法,其特征在于, 所述各个所述客户端从所述配置系统服务器获取所述待激活状态的新数据源配置信息并保存在本地的步骤之前,还包括:各个所述客户端定期监测所述配置系统服务器中是否具有待激活状态的新数据源配置信息; 所述各个所述客户端从所述配置系统服务器获取所述待激活状态的新数据源配置信息并保存在本地的步骤包括:各个所述客户端从所述配置系统服务器下载所述待激活状态的新数据源配置信息并保存在本地。5.根据权利要求1所述的配置数据源的方法,其特征在于, 所述各个所述客户端从所述配置系统服务器获取当前客户端数量的步骤之前,还包括:在所述配置系统服务器根据所述验证结果判断各个客户端都验证通过的情况下,所述配置系统服务器激活所述新数据源配置信息; 所述各个所述客户端从所述配置系统服务器获取当前客户端数量的步骤包括:各个所述客户端定期获取所述配置系统服务器中的最近激活的数据源配置信息的版本号,然后将所述最近激活的数据源配置信息的版本号与本地保存的待激活状态的所述新数据源配置信息的版本号做比较,若二者一致则从所述配置系统服务器主动获取所述当前客户端数量。6.—种配置数据源的系统,其特征在于,包括:配置系统服务器和多个客户端,其中,所述客户端用于: 在所述配置系统服务器中具有待激活状态的新数据源配置信息的情况下,从所述配置系统服务器获取所述待激活状态的新数据源配置信息并保存在本地; 对所述新数据源配置信息进行验证,然后将验证结果发送给所述配置系统服务器; 在所述配置系统服务器根据所述验证结果判断所述多个客户端都验证通过的情况下,从所述配置系统服务器获取当前客户端数量; 在获取到所述当前客户端数量后,根据本地保存的所述新数据源配置信息和本地当前使用数据源配置信息之间的差异类型和所述当前客户端数量来执行预设操作。7.根据权利要求6所述的配置数据源的系统,其特征在于,所述客户端还用于: 在所述差异类型是容量参数差异的情况下,根据所述当前客户端数量计算最大连接数平均值和最小连接数平均值,然后进行修改数据源容量参数的操作; 在所述差异类型是连接参数差异的情况下,进行如下操作:新建底层数据源对象,关闭原底层数据源对象,并且修改当前使用的底层数据源对象引用。8.根据权利要求6所述的配置数据源的系统,其特征在于,所述客户端还用于: 验证所述新数据源配置信息的格式和参数的合法性;以及 验证所述新数据源配置信息中的数据库连接参数的正确性和可行性。9.根据权利要求6所述的配置数据源的系统,其特征在于,所述客户端还用于: 定期监测所述配置系统服务器中是否具有待激活状态的新数据源配置信息,若具有则从所述配置系统服务器下载所述待激活状态的新数据源配置信息并保存在本地。10.根据权利要求6所述的配置数据源的系统,其特征在于, 所述配置系统服务器用于在根据所述验证结果判断所述多个客户端都验证通过的情况下,激活所述新数据源配置信息; 所述客户端还用于:定期获取所述配置系统服务器中的最近激活的数据源配置信息的版本号,然后将所述最近激活的数据源配置信息的版本号与本地保存的待激活状态的所述新数据源配置信息的版本号做比较,若二者一致则从所述配置系统服务器主动获取所述当前客户端数量。
【专利摘要】本发明提供一种配置数据源的方法及系统,具有简便易行的优点。本发明的配置数据源的方法包括:在配置系统服务器中具有待激活状态的新数据源配置信息的情况下,配置系统服务器对应的多个客户端中的各个客户端从配置系统服务器获取新数据源配置信息并保存在本地;各个客户端对新数据源配置信息进行验证,然后将验证结果发送给配置系统服务器;在配置系统服务器根据验证结果判断各个客户端都验证通过的情况下,各个客户端从配置系统服务器获取当前客户端数量;各个客户端在获取到当前客户端数量后,根据本地保存的新数据源配置信息和本地当前使用数据源配置信息之间的差异类型和当前客户端数量来执行预设操作。
【IPC分类】H04L12/24
【公开号】CN105490850
【申请号】CN201510903034
【发明人】肖飞, 陈 峰, 赵湘建, 尤凤凯, 李帅
【申请人】北京京东尚科信息技术有限公司, 北京京东世纪贸易有限公司
【公开日】2016年4月13日
【申请日】2015年12月9日

最新回复(0)