一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据库连接信息切换方法、系统、电子装置及存储介质与流程

2022-09-15 06:28:40 来源:中国专利 TAG:


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.图1为实现本技术各个实施例的一种应用环境架构图;
27.图2为本技术第一实施例提出的一种数据库连接信息切换方法的流程图;
28.图3为本技术第二实施例提出的一种数据库连接信息切换方法的流程图;
29.图4为本技术第三实施例提出的一种数据库连接信息切换方法的流程图;
30.图5为本技术第四实施例提出的一种电子装置的硬件架构示意图;
31.图6为本技术第五实施例提出的一种数据库连接信息切换系统的模块示意图;
32.图7为本技术第六实施例提出的一种数据库连接信息切换系统的模块示意图;
33.本技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
34.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本技术,并不用于限定本技术。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
35.需要说明的是,在本技术中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本技术要求的保护范围之内。
36.请参阅图1,图1为实现本技术各个实施例的一种应用环境架构图。本技术可应用于包括,但不仅限于配置中心1、应用端2、客户端3的应用环境中。
37.其中,所述配置中心1用于将配置从各应用中剥离出来,对配置进行统一管理,应用端2自身不需要自己去管理配置。所述配置中心1可以包括配置中心服务器和配置中心客户端,在配置中心客户端可以提供web页面,以使操作人员通过该web页面对配置项进行增删改查等管理操作。
38.具体地,所述配置中心1可以是apollo(阿波罗)配置中心等分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端2,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。
39.所述应用端2可以是应用程序服务器,用于监听配置中心1中的配置项的变更事件,根据所述变更事件的内容构建新的数据源,替换旧的数据源,以及通知客户端3等。应用端2可以通过长轮询的方式与配置中心1保持连接,检测到配置项有变更后,会返回相关信息通知客户端3。其中,当配置项发生变更时,应用端2可以拉取或者通过配置中心1实时下发的方式获取到最新的配置项信息。
40.所述客户端3用于根据应用端2通知的事件,重新去拉取全量的数据,重新创建datasource(数据源)实例对象。
41.上面提到的服务器可以是机架式服务器、刀片式服务器、塔式服务器或机柜式服务器等计算设备,可以是独立的服务器,也可以是多个服务器所组成的服务器集群。客户端可以是pc(personal computer,个人电脑)、手机、平板电脑、便携计算机、可穿戴设备等终端设备。
42.所述配置中心1、应用端2、客户端3之间通过有线或无线网络通信连接,以进行数据传输和交互。
43.实施例一
44.参阅图2所示,为本技术第一实施例提出的一种数据库连接信息切换方法的流程示意图。在本实施例中,根据不同的需求,图2所示的流程图中的步骤的执行顺序可以改变,某些步骤可以省略。下面以所述应用端作为执行主体对该方法进行说明。
45.该方法包括:
46.s200,监听配置中心的配置项变更事件。
47.在本实施例中,所述配置项变更是指数据库连接信息的变更。具体而言,所述数据库连接信息包括但不限于数据库连接串、用户名、密码、以及相关超时设置参数。如果是分库分表的情况,还会涉及相关策略配置信息。
48.在应用运行期间,当需要对以上数据库连接信息进行变更时,可以直接在配置中心中实现全局统一的修改。当配置中心中的配置项发生变更时,会发布配置项变更事件。在本实施例中也就是数据库连接信息变更事件,会触发数据源的重建。
49.应用端通过长轮询的方式与配置中心保持连接,从而可以监听到所述配置项变更事件。
50.s202,根据所述配置项变更事件构建新数据源。
51.当应用端从配置中心监听到所述配置项变更事件后,可以拉取最新的配置项信息,也就是修改后的数据库连接信息。然后,根据所述修改后的数据库连接信息构建新的数
据源。
52.s204,根据所述新数据源匹配对应的旧数据源,并用所述新数据源替换所述旧数据源。
53.所述匹配可以在订阅中心实现。在订阅中心将所述新数据源与所有已有的数据源进行匹配,找到与所述新数据源对应的旧数据源,也就是修改所述数据库连接信息之前的数据源。
54.例如,假设所述数据库连接信息中的密码发生变更,则根据修改后的密码会创建新数据源,再根据所述新数据源找到密码修改之前的旧数据源。
55.在找到所述旧数据源后,就可以直接利用所述新数据源替换掉所述旧数据源,实现新旧数据源之间的切换,而不需要重启应用。具体地,所述替换是指将原本访问所述旧数据源的连接请求切换为对所述新数据源的连接访问。这样的切换可以不影响当前执行中的sql(structured query language,结构化查询语言)操作。
56.本实施例提供的数据库连接信息切换方法,在应用系统运行期间,如果需要对数据库连接信息进行变更,可以直接通过配置中心修改配置项,并触发变更事件即可完成连接信息的动态变更,不用重启应用。通过对活跃连接的判断,可以实现优雅切换的效果,即在切换过程中不影响当前执行中的sql操作,避免了因为变更影响在线业务交易,降低用户体验。另外,动态变更的支持,对运维管理人员更加友好,运维人员对配置项的变更的空间更大,可以根据需要随时提交变更,达到真正的动态运维的效果。
57.实施例二
58.参阅图3所示,为本技术第二实施例提出的一种数据库连接信息切换方法的流程示意图。在本实施例中,所述数据库连接信息切换方法在上述第一实施例的基础上,还包括步骤s306。可以理解,本方法实施例中的流程图不用于对执行步骤的顺序进行限定。根据需要,还可以对该流程图中的部分步骤进行添加或删减。
59.该方法包括以下步骤:
60.s300,监听配置中心的配置项变更事件。
61.在本实施例中,所述配置项变更是指数据库连接信息的变更。具体而言,所述数据库连接信息包括但不限于数据库连接串、用户名、密码、以及相关超时设置参数。如果是分库分表的情况,还会涉及相关策略配置信息。
62.在应用运行期间,当需要对以上数据库连接信息进行变更时,可以直接在配置中心中实现全局统一的修改。当配置中心中的配置项发生变更时,会发布配置项变更事件。在本实施例中也就是数据库连接信息变更事件,会触发数据源的重建。
63.应用端通过长轮询的方式与配置中心保持连接,从而可以监听到所述配置项变更事件。
64.s302,根据所述配置项变更事件构建新数据源。
65.当应用端从配置中心监听到所述配置项变更事件后,可以拉取最新的配置项信息,也就是修改后的数据库连接信息。然后,根据所述修改后的数据库连接信息构建新的数据源。
66.s304,根据所述新数据源匹配对应的旧数据源,并用所述新数据源替换所述旧数据源。
67.所述匹配可以在订阅中心实现。在订阅中心将所述新数据源与所有已有的数据源进行匹配,找到与所述新数据源对应的旧数据源,也就是修改所述数据库连接信息之前的数据源。
68.例如,假设所述数据库连接信息中的密码发生变更,则根据修改后的密码会创建新数据源,再根据所述新数据源找到密码修改之前的旧数据源。
69.在找到所述旧数据源后,就可以直接利用所述新数据源替换掉所述旧数据源,实现新旧数据源之间的切换,而不需要重启应用。具体地,所述替换是指将原本访问所述旧数据源的连接请求切换为对所述新数据源的连接访问。这样的切换可以不影响当前执行中的sql操作。
70.s306,关闭所述旧数据源。
71.当用所述新数据源替换所述旧数据源完成之后,则可以关闭所述旧数据源,以避免资源浪费及数据库连接使用过程中可能出现的连接泄露等问题。
72.在一种优选实施例中,所述方法还包括:当检测到所述旧数据源在预设时间段内仍未关闭时,强制关闭所述旧数据源。设计完备的数据库连接池会有强制回收策略,若所述旧数据库超过设定的时间(预设时间段)未关闭,则可以通过连接池强制关闭所述旧数据源。
73.本实施例提供的数据库连接信息切换方法,可以在应用系统运行期间,如果需要对数据库连接信息进行变更,可以直接通过配置中心修改配置项,并触发变更事件即可完成连接信息的动态变更,不用重启应用。通过对活跃连接的判断,可以实现优雅切换的效果,即在切换过程中不影响当前执行中的sql操作,避免了因为变更影响在线业务交易,降低用户体验。另外,动态变更的支持,对运维管理人员更加友好,运维人员对配置项的变更的空间更大,可以根据需要随时提交变更,达到真正的动态运维的效果。并且,当替换完成后关闭旧数据源,以及当旧数据源在设定的时间内未关闭时进行强制关闭,可以避免资源浪费及数据库连接使用过程中可能出现的连接泄露等问题。
74.实施例三
75.参阅图4所示,为本技术第三实施例提出的一种数据库连接信息切换方法的流程示意图。在本实施例中,所述数据库连接信息切换方法在上述第一实施例或第二实施例的基础上,还包括步骤s408。可以理解,本方法实施例中的流程图不用于对执行步骤的顺序进行限定。根据需要,还可以对该流程图中的部分步骤进行添加或删减。
76.该方法包括以下步骤:
77.s400,监听配置中心的配置项变更事件。
78.在本实施例中,所述配置项变更是指数据库连接信息的变更。具体而言,所述数据库连接信息包括但不限于数据库连接串、用户名、密码、以及相关超时设置参数。如果是分库分表的情况,还会涉及相关策略配置信息。
79.在应用运行期间,当需要对以上数据库连接信息进行变更时,可以直接在配置中心中实现全局统一的修改。当配置中心中的配置项发生变更时,会发布配置项变更事件。在本实施例中也就是数据库连接信息变更事件,会触发数据源的重建。
80.应用端通过长轮询的方式与配置中心保持连接,从而可以监听到所述配置项变更事件。
81.s402,根据所述配置项变更事件构建新数据源。
82.当应用端从配置中心监听到所述配置项变更事件后,可以拉取最新的配置项信息,也就是修改后的数据库连接信息。然后,根据所述修改后的数据库连接信息构建新的数据源。
83.s404,根据所述新数据源匹配对应的旧数据源,并用所述新数据源替换所述旧数据源。
84.所述匹配可以在订阅中心实现。在订阅中心将所述新数据源与所有已有的数据源进行匹配,找到与所述新数据源对应的旧数据源,也就是修改所述数据库连接信息之前的数据源。
85.例如,假设所述数据库连接信息中的密码发生变更,则根据修改后的密码会创建新数据源,再根据所述新数据源找到密码修改之前的旧数据源。
86.在找到所述旧数据源后,就可以直接利用所述新数据源替换掉所述旧数据源,实现新旧数据源之间的切换,而不需要重启应用。具体地,所述替换是指将原本访问所述旧数据源的连接请求切换为对所述新数据源的连接访问。这样的切换可以不影响当前执行中的sql操作。
87.s406,关闭所述旧数据源。
88.当用所述新数据源替换所述旧数据源完成之后,则可以关闭所述旧数据源,以避免资源浪费及数据库连接使用过程中可能出现的连接泄露等问题。
89.在一种优选实施例中,所述方法还包括:当检测到所述旧数据源在预设时间段内仍未关闭时,强制关闭所述旧数据源。设计完备的数据库连接池会有强制回收策略,若所述旧数据库超过设定的时间(预设时间段)未关闭,则可以通过连接池强制关闭所述旧数据源。
90.s408,将所述变更事件的内容和数据源替换的信息通知客户端。
91.应用端及时将所述变更事件的内容,也就是数据库连接信息的变更,以及已将所述旧数据源替换为所述新数据源的相关信息通知到客户端。客户端会根据变更的事件,重新去拉取全量的数据,重新构造数据源,也就是创建datasource实例对象。后续客户端再需要访问数据源时,就可以访问所述新数据源。
92.本实施例提供的数据库连接信息切换方法,可以在应用系统运行期间,如果需要对数据库连接信息进行变更,可以直接通过配置中心修改配置项,并触发变更事件即可完成连接信息的动态变更,不用重启应用。通过对活跃连接的判断,可以实现优雅切换的效果,即在切换过程中不影响当前执行中的sql操作,避免了因为变更影响在线业务交易,降低用户体验。另外,动态变更的支持,对运维管理人员更加友好,运维人员对配置项的变更的空间更大,可以根据需要随时提交变更,达到真正的动态运维的效果。并且,还可以及时将变更消息通知到客户端,以便客户端做出相应地应对。
93.实施例四
94.参阅图5所示,为本技术第四实施例提出一种电子装置2的硬件架构示意图。
95.本实施例中,所述电子装置2可包括,但不仅限于,可通过系统总线相互通信连接存储器11、处理器12、网络接口13。需要指出的是,图5仅示出了具有组件11-13的电子装置2,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
在本实施例中,所述电子装置2可以是所述应用端。
96.其中,所述存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器11可以是所述电子装置2的内部存储单元,例如该电子装置2的硬盘或内存。在另一些实施例中,所述存储器11也可以是所述电子装置2的外部存储设备,例如该电子装置2上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。当然,所述存储器11还可以既包括所述电子装置2的内部存储单元也包括其外部存储设备。本实施例中,所述存储器11通常用于存储安装于所述电子装置2的操作系统和各类应用软件,例如数据库连接信息切换系统200的程序代码等。此外,所述存储器11还可以用于暂时地存储已经输出或者将要输出的各类数据。
97.所述处理器12在一些实施例中可以是中央处理器(central processing unit,cpu)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器12通常用于控制所述电子装置2的总体操作。本实施例中,所述处理器12用于运行所述存储器11中存储的程序代码或者处理数据,例如运行所述的数据库连接信息切换系统200等。
98.所述网络接口13可包括无线网络接口或有线网络接口,该网络接口13通常用于在所述电子装置2与其他电子设备之间建立通信连接。
99.实施例五
100.参阅图6所示,为本技术第五实施例提出一种数据库连接信息切换系统200的模块示意图。
101.本实施例中,所述数据库连接信息切换系统200包括一系列的存储于存储器11上的计算机程序指令,当该计算机程序指令被处理器12执行时,可以实现本技术各实施例的数据库连接信息切换操作。在一些实施例中,基于该计算机程序指令各部分所实现的特定的操作,数据库连接信息切换系统200可以被划分为一个或多个模块。例如,在图6中,所述数据库连接信息切换系统200可以被分割成监听模块201、构建模块202、替换模块203。其中:
102.所述监听模块201,用于监听配置中心的配置项变更事件。
103.在本实施例中,所述配置项变更是指数据库连接信息的变更。具体而言,所述数据库连接信息包括但不限于数据库连接串、用户名、密码、以及相关超时设置参数。如果是分库分表的情况,还会涉及相关策略配置信息。
104.在应用运行期间,当需要对以上数据库连接信息进行变更时,可以直接在配置中心中实现全局统一的修改。当配置中心中的配置项发生变更时,会发布配置项变更事件。在本实施例中也就是数据库连接信息变更事件,会触发数据源的重建。
105.监听模块201通过长轮询的方式与配置中心保持连接,从而可以监听到所述配置项变更事件。
106.所述构建模块202,用于根据所述配置项变更事件构建新数据源。
107.当监听模块201从配置中心监听到所述配置项变更事件后,构建模块202可以拉取最新的配置项信息,也就是修改后的数据库连接信息。然后,根据所述修改后的数据库连接
信息构建新的数据源。
108.所述替换模块203,用于根据所述新数据源匹配对应的旧数据源,并用所述新数据源替换所述旧数据源。
109.所述匹配可以在订阅中心实现。在订阅中心将所述新数据源与所有已有的数据源进行匹配,找到与所述新数据源对应的旧数据源,也就是修改所述数据库连接信息之前的数据源。
110.例如,假设所述数据库连接信息中的密码发生变更,则根据修改后的密码会创建新数据源,再根据所述新数据源找到密码修改之前的旧数据源。
111.在找到所述旧数据源后,替换模块203就可以直接利用所述新数据源替换掉所述旧数据源,实现新旧数据源之间的切换,而不需要重启应用。具体地,所述替换是指将原本访问所述旧数据源的连接请求切换为对所述新数据源的连接访问。这样的切换可以不影响当前执行中的sql操作。
112.实施例六
113.参阅图7所示,为本技术第六实施例提出一种数据库连接信息切换系统200的模块示意图。在本实施例中,所述数据库连接信息切换系统200除了包括第五实施例中的所述监听模块201、构建模块202、替换模块203之外,还包括关闭模块204、通知模块205。
114.所述关闭模块204,用于关闭所述旧数据源。
115.当用所述新数据源替换所述旧数据源完成之后,则关闭模块204可以关闭所述旧数据源,以避免资源浪费及数据库连接使用过程中可能出现的连接泄露等问题。
116.在一种优选实施例中,当关闭模块204检测到所述旧数据源在预设时间段内仍未关闭时,还可以强制关闭所述旧数据源。设计完备的数据库连接池会有强制回收策略,若所述旧数据库超过设定的时间(预设时间段)未关闭,则关闭模块204可以通过连接池强制关闭所述旧数据源。
117.所述通知模块205,用于将所述变更事件的内容和数据源替换的信息通知客户端。
118.通知模块205及时将所述变更事件的内容,也就是数据库连接信息的变更,以及已将所述旧数据源替换为所述新数据源的相关信息通知到客户端。客户端会根据变更的事件,重新去拉取全量的数据,重新构造数据源,也就是创建datasource实例对象。后续客户端再需要访问数据源时,就可以访问所述新数据源。
119.实施例七
120.本技术还提供了另一种实施方式,即提供一种计算机可读存储介质,所述计算机可读存储介质存储有数据库连接信息切换程序,所述数据库连接信息切换程序可被至少一个处理器执行,以使所述至少一个处理器执行如上述的数据库连接信息切换方法的步骤。
121.上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。
122.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本技术各个实施例所述的方法。
123.以上仅为本技术的优选实施例,并非因此限制本技术的专利范围,凡是利用本技术说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本技术的专利保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献