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

多数据源的集成调度方法、装置、设备及存储介质与流程

2022-12-31 15:03:19 来源:中国专利 TAG:


1.本发明涉及计算机技术领域,尤其涉及一种多数据源的集成调度方法、装置、设备及存储介质。


背景技术:

2.数据平台加工和沉淀了各种数据源,比如基金数据源、营销数据源、股票数据源等。数据服务api(application programming interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,无需访问源码,或理解内部工作机制的细节。目前基于java语言的开发模式,都是一个工程对应一个数据源,如果存在多个数据源的需求时,需要基于新数据搭建新的工程,同时提供对应的api实现跨组件的之间的通信交互。但是在部分特殊的业务场景下,当需要在一个工程中同时操作多个数据源时,现有的工程开发模式无法很好的兼容,就导致需要开发人员去开发很多硬编码去实现多个数据源的兼容,这种方式会导致代码十分冗余,且扩展起来非常麻烦,因为每增加一个数据源,就要相对应的复制一份对应的处理逻辑。这不仅影响了开发效率,对于代码可读性也极差。


技术实现要素:

3.有鉴于此,本发明的目的是为了克服现有技术中的不足,提供一种可以应用如金融科技或其他技术领域的多数据源的集成调度方法、装置、设备及存储介质,旨在解决当前的问题。
4.本发明提供如下技术方案:
5.第一方面,本公开实施例中提供了一种多数据源的集成调度方法,所述方法包括:
6.提取应用程序配置文件中数据源的配置信息,将所述数据源的配置信息保存至apollo管理平台;
7.利用第一注解读取所述apollo管理平台中的数据源的配置信息;
8.调用api接口将对应的数据源实例注入至spring容器;
9.通过所述api接口编写所述spring容器中的数据源的代码,并利用第二注解读取所述代码对应的数据源。
10.进一步地,所述提取应用程序配置文件中数据源的配置信息,将所述数据源的配置信息保存至apollo管理平台之前,还包括:
11.从数据库连接池中指定数据源进行注册,将注册后的数据源的配置信息保存至所述应用程序配置文件中。
12.进一步地,所述提取所述应用程序配置文件中数据源的配置信息,将所述数据源的配置信息保存至apollo管理平台之后,还包括:
13.将所述连接池的池化参数保存至apollo管理平台。
14.进一步地,所述调用api接口将对应的数据源实例注入至spring容器,包括:
15.调用spring框架的api接口,利用mybatis对所述spring框架的api接口进行统一封装;
16.通过统一封装后的api接口将所述数据源实例注入至所述spring容器。
17.进一步地,所述调用api接口将对应的数据源实例注入至spring容器之后,还包括:
18.通过统一封装后的api接口与所述连接池的池化参数管理所述连接池中的数据源。
19.进一步地,所述多数据源的集成调度方法还包括:
20.通过统一封装后的api接口,对各个数据源进行增加、删除、修改和查询中的一种或多种处理。
21.进一步地,所述第一注解通过单独开发并预先配置至springboot工程的启动文件中。
22.第二方面,本公开实施例中提供了一种多数据源的集成调度装置,所述装置包括:
23.保存模块,用于提取应用程序配置文件中数据源的配置信息,将所述数据源的配置信息保存至apollo管理平台;
24.第一读取模块,用于利用第一注解读取所述apollo管理平台中的数据源的配置信息;
25.注入模块,用于调用api接口将对应的数据源实例注入至spring容器;
26.第二读取模块,用于通过所述api接口编写所述spring容器中的数据源的代码,并利用第二注解读取所述代码对应的数据源。
27.第三方面,本公开实施例中提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现第一方面中所述多数据源的集成调度方法的步骤。
28.第四方面,本公开实施例中提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现第一方面中所述多数据源的集成调度方法的步骤。
29.本技术的实施例具有如下优点:
30.本技术实施例提供的多数据源的集成调度方法,通过提取应用程序配置文件中数据源的配置信息,将所述数据源的配置信息保存至apollo管理平台;利用第一注解读取所述apollo管理平台中的数据源的配置信息;调用api接口将对应的数据源实例注入至spring容器;通过所述api接口编写所述spring容器中的数据源的代码,并利用第二注解读取所述代码对应的数据源。本方法通过注解的方式操作数据源,简单方便,由使用者自行控制当前代码需要关联的数据源,只需要管理spring容器中的数据源实例,就可以指定当前代码需要使用的数据源,实现了数据源的完全配置化,通过剥离工程代码,实现完全解耦。
31.为使本发明的上述目的、特征和优点能更明显和易懂,下文特举较佳实施例,并配合所附附图,做详细说明如下。
附图说明
32.为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附
resource locator,统一资源定位符)地址、用户名和密码等。
46.进一步地,提取应用程序配置文件中数据源的配置信息,借助apollo(阿波罗)的配置化能力,将所述数据源的配置信息保存至apollo管理平台,然后再将所述连接池的池化参数保存至apollo管理平台。其中,所述连接池的池化参数包括最小连接数、最大连接数和初始化连接数等,实现和扩展dynamic-datasource和springboot预留的接口,提供并简化了对druid、hikaricp、beecp、dbcp2等连接池的快速集成。
47.可以理解的是,apollo是携程框架部门研发的分布式配置管理平台,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性,适用于微服务配置管理场景。
48.步骤s120,利用第一注解读取所述apollo管理平台中的数据源的配置信息。
49.具体地,通过单独开发并预先配置第一注解至springboot工程的启动文件中(如main启动类)。在本实施例中,所述第一注解为“@readdbconfigenable”注解,能够用于从apollo管理平台的sdk(software development kit,软件开发工具包)接口读取对应的数据源的配置信息。
50.现有技术中,默认是在项目启动阶段去读取application配置文件中的配置信息并实现数据源实例的注入,但是当配置信息被提取到apollo平台后则无法满足,因此,通过单独开发上述第一注解,能够更好的实现apollo管理平台中的数据源的配置信息的读取,简单方便,实现了数据源的完全配置化。
51.步骤s130,调用api接口将对应的数据源实例注入至spring容器。
52.可以理解的是,spring容器是spring框架的核心,是用来管理对象的。容器将创建对象,把它们连接在一起,配置它们,并管理他们的整个生命周期从创建到销毁。spring容器使用依赖注入(di)来管理组成一个应用程序的组件。
53.具体地,执行引擎接收到api接口调用请求,调用spring框架的api接口,利用mybatis对所述spring框架的api接口进行统一封装,通过统一封装后的api接口从数据库连接池里选取对应的数据源并将数据源实例注入至spring容器。
54.如图2所示,在一种可选的实施方式中,步骤130包括:
55.步骤s131,调用spring框架的api接口,利用mybatis对所述spring框架的api接口进行统一封装;
56.步骤s132,通过统一封装后的api接口将所述数据源实例注入至所述spring容器。
57.可以理解的是,不完全依赖mybatis的能力,而是基于mybatis开放的api接口重新进行统一封装,由mybatis实现多种数据库连接池的集成,天然的屏蔽了数据库连接池本身的差异,只需要针对不同的数据库连接池在工程内部引入对应的driver驱动jar即可,从而提供新的操作数据库连接池的方法,简化了对于mybatis的上手成本,简单方便,实现了数据源的完全配置化。
58.另外,还可以通过统一封装后的api接口与步骤110的连接池的池化参数管理连接池中的数据源,查看连接池的健康状况,对连接池中的数据源做各类操作,例如对各个数据源进行增加、删除、修改和查询中的一种或多种处理。因此,通过统一封装api接口,实现了代码风格的统一。通过管理连接池可以最大化的利用系统链接,降低系统开销,提高系统稳定性。
59.步骤s140,通过所述api接口编写所述spring容器中的数据源的代码,并利用第二注解读取所述代码对应的数据源。
60.具体地,这里将自定义第二注解,在本实施例中,所述第二注解为“@nds(name=
””
)”注解。通过统一封装后的api接口编写所述spring容器中的数据源的代码,并通过第二注解读取当前代码对应的数据源。可以理解,现有方案默认通过@ds(name=
””
)注解的方式来获取数据源实例,这里通过自定义@nds(name=
””
)”注解,不仅可以继承上述@ds注解,还可以在此基础上实现获取数据源实例等相关逻辑。
61.通过利用编码读取对应的数据源,简化了编码的复杂度,提高了代码的可读性,降低了硬编码的出错率,只需要简单的增加新数据源配置项,就能实现基于新数据源的开发对接。
62.本技术的实施例具有如下优点:
63.本技术实施例提供的多数据源的集成调度方法,通过提取应用程序配置文件中数据源的配置信息,将所述数据源的配置信息保存至apollo管理平台;利用第一注解读取所述apollo管理平台中的数据源的配置信息;调用api接口将对应的数据源实例注入至spring容器;通过所述api接口编写所述spring容器中的数据源的代码,并利用第二注解读取所述代码对应的数据源。本方法通过注解的方式操作数据源,简单方便,由使用者自行控制当前代码需要关联的数据源,只需要管理spring容器中的数据源实例,就可以指定当前代码需要使用的数据源,实现了数据源的完全配置化,通过剥离工程代码,实现完全解耦。
64.实施例2
65.如图3所示,为本技术实施例中的一种多数据源的集成调度装置200的结构示意图,其装置包括:
66.保存模块201,用于提取应用程序配置文件中数据源的配置信息,将所述数据源的配置信息保存至apollo管理平台;
67.第一读取模块202,用于利用第一注解读取所述apollo管理平台中的数据源的配置信息;
68.注入模块203,用于调用api接口将对应的数据源实例注入至spring容器;
69.第二读取模块204,用于通过所述api接口编写所述spring容器中的数据源的代码,并利用第二注解读取所述代码对应的数据源。
70.可选地,上述多数据源的集成调度装置还可以包括:
71.第一保存子模块,用于从数据库连接池中指定数据源进行注册,将注册后的数据源的配置信息保存至所述应用程序配置文件中。
72.可选地,上述多数据源的集成调度装置还可以包括:
73.第二保存子模块,用于将所述连接池的池化参数保存至apollo管理平台。
74.可选地,上述多数据源的集成调度装置还可以包括:
75.统一封装模块,用于调用spring框架的api接口,利用mybatis对所述spring框架的api接口进行统一封装;
76.注入子模块,用于通过统一封装后的api接口将所述数据源实例注入至所述spring容器。
77.可选地,上述多数据源的集成调度装置还可以包括:
divisionmultiple access,简称为wcdma)、4g网络、5g网络、蓝牙(bluetooth)、wi-fi等无线或有线网络。
89.需要指出的是,图4仅示出了具有部件310-330的计算机设备,但是应理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。
90.在本实施例中,存储于存储器310中的多数据源的集成调度方法还可以被分割为一个或者多个程序模块,并由一个或多个处理器(本实施例为处理器320)所执行,以完成本发明。
91.实施例4
92.本实施例还提供一种计算机可读存储介质,计算机可读存储介质其上存储有计算机程序,计算机程序被处理器执行时实现实施例中多数据源的集成调度方法的步骤。
93.本实施例中,计算机可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等。在一些实施例中,计算机可读存储介质可以是计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,计算机可读存储介质也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(smart media card,简称为smc),安全数字(secure digital,简称为sd)卡,闪存卡(flash card)等。当然,计算机可读存储介质还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,计算机可读存储介质通常用于存储安装于计算机设备的操作系统和各类应用软件。此外,计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的各类数据。
94.在这里示出和描述的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制,因此,示例性实施例的其他示例可以具有不同的值。
95.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
96.以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献