[go: up one dir, main page]

CN116303649A - 一种多数据源管理方法、装置、设备和存储介质 - Google Patents

一种多数据源管理方法、装置、设备和存储介质 Download PDF

Info

Publication number
CN116303649A
CN116303649A CN202310285419.5A CN202310285419A CN116303649A CN 116303649 A CN116303649 A CN 116303649A CN 202310285419 A CN202310285419 A CN 202310285419A CN 116303649 A CN116303649 A CN 116303649A
Authority
CN
China
Prior art keywords
data source
target
method function
annotation
preset
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202310285419.5A
Other languages
English (en)
Inventor
张德雷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ping An Pay Electronic Payment Co.,Ltd.
Original Assignee
Pingan Payment Technology Service Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Pingan Payment Technology Service Co Ltd filed Critical Pingan Payment Technology Service Co Ltd
Priority to CN202310285419.5A priority Critical patent/CN116303649A/zh
Publication of CN116303649A publication Critical patent/CN116303649A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24573Query processing with adaptation to user needs using data annotations, e.g. user-defined metadata
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2471Distributed queries
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Library & Information Science (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请涉及计算机技术及数据处理技术领域,更为具体来说,本申请涉及一种多数据源管理方法、装置、设备和存储介质。所述方法包括:在接收到针对目标应用程序的执行指令时,拦截所述目标应用程序的目标方法函数;确定目标方法函数中的数据源提取对象;根据数据源提取对象结合目标方法函数所关联的预设注解查询出目标数据源,并基于业务需求对所述目标数据源中的数据进行目标处理;在接收到针对目标应用程序的切换指令时,根据所述切换指令继续执行所述拦截所述目标应用程序的目标方法函数的步骤。本申请解除了使用多数据源时的目录限制或者文件名称限制,对多数据源的管理更加简洁高效,且对多数据源能实现自如地动态切换。

Description

一种多数据源管理方法、装置、设备和存储介质
技术领域
本申请涉及计算机技术及数据处理技术领域,更为具体来说,本申请涉及一种多数据源管理方法、装置、设备和存储介质。
背景技术
数据是所有工程系统必需的,外部请求访问工程系统数据时,工程系统将数据加工后返回给外部。从某种程度上讲,工程系统就是数据加算法的结合体。
数据被存于数据库中,一般而言工程系统只使用一个数据库,但是针对比较大的系统或是比较复杂的系统,将存在多类型或多个数据库的使用,这样不得不将数据分散地存储在多个数据库即多数据源中。现有技术中会根据不同的业务需求对存储在多数据源中的数据进行相关处理,在进行相关处理时,一般会链接多个数据源,采用不同目录链接不同的数据源的方式,然而这样管理数据源的方法不够灵活,也不够高效,且处理数据库切换问题较为繁琐。
发明内容
基于上述技术问题,本发明提供了一种多数据源管理方法,在接收到针对目标应用程序的执行指令时,拦截所述目标应用程序的目标方法函数,并确定所述目标方法函数中的数据源提取对象,根据所述数据源提取对象结合所述目标方法函数所关联的预设注解查询出目标数据源。
本发明第一方面提供了一种多数据源管理方法,应用于微服务应用系统,所述方法包括:
在接收到针对目标应用程序的执行指令时,拦截所述目标应用程序的目标方法函数;
确定所述目标方法函数中的数据源提取对象;
根据所述数据源提取对象结合所述目标方法函数所关联的预设注解查询出目标数据源,并基于业务需求对所述目标数据源中的数据进行目标处理;
在接收到针对目标应用程序的切换指令时,根据所述切换指令继续执行所述拦截所述目标应用程序的目标方法函数的步骤。
在本发明的一些实施例中,所述确定所述目标方法函数中的数据源提取对象,包括:
从所述目标方法函数中获取所述目标方法函数对应的连接点信息;
对所述连接点信息进行解析并确定数据源提取对象。
在本发明的一些实施例中,所述根据所述数据源提取对象结合所述目标方法函数所关联的预设注解查询出目标数据源,包括:
建立预设名称的注解,并将所述预设名称的注解与所述目标方法函数关联;
将所述预设名称的注解通过Spring容器的面向切面编程实现所述目标方法函数的切面增强;
根据所述数据源提取对象,并结合所述预设名称的注解查询出目标数据源。
在本发明的一些实施例中,所述将所述预设名称的注解通过Spring容器的面向切面编程实现所述目标方法函数的切面增强,包括:
通过Spring容器的面向切面编程的附加配置文件存储所述预设名称的注解;
在所述预设名称的注解中存放键值对,其中,所述键值对表征所述数据源提取对象与所述目标数据源的映射关系及所述目标数据源的链接路径。
在本发明的一些实施例中,所述根据所述数据源提取对象,并结合所述预设名称的注解查询出目标数据源,包括:
根据所述数据源提取对象与所述目标数据源的映射关系查找与所述数据源提取对象对应的数据源ID;
根据所述目标数据源的链接路径、所述数据源ID和线程信息查询出所述数据源提取对象对应的数据源。
在本发明的一些实施例中,所述将所述预设名称的注解通过Spring容器的面向切面编程实现所述目标方法函数的切面增强之前,还包括织入前置通知以获取Spring容器的连接资源;所述将所述预设名称的注解通过Spring容器的面向切面编程实现所述目标方法函数的切面增强之后,还包括织入后置通知以释放Spring容器的连接资源。
在本发明的一些实施例中,所述查询出目标数据源之后还包括采用数据源链接模板的方式连接所述目标数据源,所述采用数据源链接模板的方式连接所述目标数据源包括:
定义预设数据源链接模板;
根据所述预设数据源链接模板建立与数据源的连接信息,所述连接信息中至少包括数据源ID、数据源名称、数据源账号密码和数据源所在路径;
根据所述数据源的连接信息获得欲连接数据源中的数据源提取对象。
本发明第二方面提供了一种多数据源管理装置,所述装置包括:
方法确定模块,被配置为在接收到针对目标应用程序的执行指令时,拦截所述目标应用程序的目标方法函数;
对象确定模块,被配置为确定所述目标方法函数中的数据源提取对象;
处理模块,被配置为根据所述数据源提取对象结合所述目标方法函数所关联的预设注解查询出目标数据源,并基于业务需求进行数据处理;
切换模块,被配置为在接收到针对目标应用程序的切换指令时,根据所述切换指令继续执行拦截所述目标应用程序的目标方法函数的步骤。
本发明第三方面提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行以下步骤:
在接收到针对目标应用程序的执行指令时,拦截所述目标应用程序的目标方法函数;
确定所述目标方法函数中的数据源提取对象;
根据所述数据源提取对象结合所述目标方法函数所关联的预设注解查询出目标数据源,并基于业务需求对所述目标数据源中的数据进行目标处理;
在接收到针对目标应用程序的切换指令时,根据所述切换指令继续执行所述拦截所述目标应用程序的目标方法函数的步骤。
本发明第四方面提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以下步骤:
在接收到针对目标应用程序的执行指令时,拦截所述目标应用程序的目标方法函数;
确定所述目标方法函数中的数据源提取对象;
根据所述数据源提取对象结合所述目标方法函数所关联的预设注解查询出目标数据源,并基于业务需求对所述目标数据源中的数据进行目标处理;
在接收到针对目标应用程序的切换指令时,根据所述切换指令继续执行所述拦截所述目标应用程序的目标方法函数的步骤。
本申请实施例中提供的技术方案,至少具有如下技术效果或优点:
本申请在接收到针对目标应用程序的执行指令时,拦截所述目标应用程序的目标方法函数,确定所述目标方法函数中的数据源提取对象,根据所述数据源提取对象结合所述目标方法函数所关联的预设注解查询出目标数据源,并基于业务需求对所述目标数据源中的数据进行目标处理,解决了现有技术中管理数据源的方法不够灵活高效且处理数据库切换问题较为繁琐的技术问题,使对数据源的管理灵活高效;本申请提出在接收到针对目标应用程序的切换指令时,根据所述切换指令继续执行确定并所述拦截所述目标应用程序的目标方法函数的步骤,能实现多数据源自如地动态切换,从而大大提升了多数据源的管理效率。不仅如此,现有技术中过于依赖采用不同目录链接不同的数据源的方式,而本申请所述方法能解除使用多数据源时对目录或者文件名称的限制,实现了更加简洁高效的多数据源管理。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本申请一示例性实施例中的多数据源管理方法步骤示意图;
图2示出了本申请一示例性实施例中的多数据源管理方法的效果示意图;
图3示出了本申请一示例性实施例中多数据源管理方法中动态切换数据源过程示意图;
图4示出了本申请一示例性实施例中的微服务应用系统结构示意图;
图5示出了本申请一示例性实施例所提供的一种计算机设备的结构示意图。
具体实施方式
以下,将参照附图来描述本申请的实施例。但是应该理解的是,这些描述只是示例性的,而并非要限制本申请的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本申请的概念。对于本领域技术人员来说显而易见的是,本申请可以无需一个或多个这些细节而得以实施。在其他的例子中,为了避免与本申请发生混淆,对于本领域公知的一些技术特征未进行描述。
应予以注意的是,这里所使用的术语仅是为了描述具体实施例,而非意图限制根据本申请的示例性实施例。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式。此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在所述特征、整体、步骤、操作、元件和/或组件,但不排除存在或附加一个或多个其他特征、整体、步骤、操作、元件、组件和/或它们的组合。
现在,将参照附图更详细地描述根据本申请的示例性实施例。然而,这些示例性实施例可以多种不同的形式来实施,并且不应当被解释为只限于这里所阐述的实施例。附图并非是按比例绘制的,其中为了清楚表达的目的,可能放大了某些细节,并且可能省略了某些细节。图中所示出的各种区域、层的形状以及它们之间的相对大小、位置关系仅是示例性的,实际中可能由于制造公差或技术限制而有所偏差,并且本领域技术人员根据实际所需可以另外设计具有不同形状、大小、相对位置的区域/层。
下面结合说明书附图1-附图5给出几个实施例来描述根据本申请的示例性实施方式。需要注意的是,下述应用场景仅是为了便于理解本申请的精神和原理而示出,本申请的实施方式在此方面不受任何限制。相反,本申请的实施方式可以应用于适用的任何场景。
数据是所有工程系统所必需的资源,外部请求访问工程系统的数据,工程系统将数据加工后返回给外部。从某种程度上而言工程系统就是数据加算法的结合体。数据会存于数据库中,一般来说工程系统只会使用一个数据库,但是针对比较大的系统,或者是比较复杂的系统,就会存在多类型或多个数据库的使用。比如较大型的工程系统,因为领域模型划分或者数据庞大,不得不将数据分散在多个数据库中。或者在比较复杂的工程系统,其内部可能链接到多个不同类型的数据库源,如Oracel类型的数据库,Mysql类型的数据库。这种复杂的大型的工程系统,在处理这种多类型的多个数据库时,会链接多个数据源,采用不同目录下链接(在不同目录中设置不同的数据源)不同数据源的方式。这种方式是原先工程系统支持的方式,不同的目录下面的sql.xml(数据库的数据执行方法)去链接不同的数据库,以目录作为标识,做到链接不同类型数据库和多个数据库。然而这样管理数据源的方法不够灵活,也不够高效,且处理数据库切换问题较为繁琐。
因此在本申请的一些实施例中,提供了一种多数据源管理方法,如图1所示,所述方法包括:
S1、在接收到针对目标应用程序的执行指令时,拦截所述目标应用程序的目标方法函数;
S2、确定所述目标方法函数中的数据源提取对象;
S3、根据所述数据源提取对象结合所述目标方法函数所关联的预设注解查询出目标数据源,并基于业务需求对所述目标数据源中的数据进行目标处理;
S4、在接收到针对目标应用程序的切换指令时,根据所述切换指令继续执行所述拦截所述目标应用程序的目标方法函数的步骤。
首先需要说明的是,微服务应用系统是部署有所述微服务应用的集群;所述集群,包括:N个节点,N为正整数;每个节点对应一台服务器或一台云主机。本质上属于一种微服务架构,其中单个应用程序由许多松散耦合且可独立部署的较小组件或服务组成。
在一种具体的实现方式中,确定所述目标方法函数中的数据源提取对象时,先从所述目标方法函数中获取所述目标方法函数对应的连接点信息,再对所述连接点信息进行解析并确定数据源提取对象。这里的数据源提取对象可以是数据表,也可以是数据表中的不同字段,具体以从函数中提取到的结果为准。
在本申请的一些实施方式中,根据数据源提取对象结合目标方法函数所关联的预设注解查询出目标数据源,包括:建立预设名称的注解,并将所述预设名称的注解与所述目标方法函数关联;将所述预设名称的注解通过Spring容器的面向切面编程实现所述目标方法函数的切面增强;根据所述数据源提取对象,并结合所述预设名称的注解查询出目标数据源。
在一种优选的实现方式中,将所述预设名称的注解通过Spring容器的面向切面编程实现所述目标方法函数的切面增强时,先通过Spring容器的面向切面编程的附加配置文件存储所述预设名称的注解,在所述预设名称的注解中存放键值对,其中,所述键值对表征所述数据源提取对象与所述目标数据源的映射关系及所述目标数据源的链接路径。例如:微服务应用系统引用switchdata.jar,并在指定的附加流程方法上添加注解DynamicSwitchDataSource,这里的DynamicSwitchDataSource就是以Spring的AOP即面向切面编程作为底层技术来配置的,DynamicSwitchDataSource存储键值对,即关键字Key和其对应的Value值。
需要说明的是,Spring容器是Spring框架的核心,是用来管理对象的。容器将创建对象,把它们连接在一起,配置它们,并由其通过IoC技术管理,串联他们的整个生命周期从创建到销毁。AOP(Aspect-Oriented Programming的简称),也就是面向切面编程的意思,它是一种编程思想,在Spring的官方文档中描述:面向切面编程(AOP)提供了另一种思考程序结构的方式来对面向对象编程(OOP)的进行补充和完善,面向对象编程(OOP)中关键的是对象,而面向切面编程(AOP)中关键的是切面。OOP针对的是业务处理过程中的实体的属性和行为,而不像AOP,其是面对业务处理过程中的某个步骤或阶段。AOP中切面可以实现关注点的模块化(即统一抽取,提高复用),例如跨越多种类型和对象的事务管理,这种关注点在AOP文献中通常被称为横切关注点。因此,上述将预设名称的注解通过Spring容器的面向切面编程实现目标应用中目标方法的切面增强,根本上是利用了AOP的动态代理功能,且以注解的方式让目标方法更有“特质”,以增强了其被执行性。
在本申请的一些实施例中,根据所述数据源提取对象,并结合所述预设名称的注解查询出目标数据源时,首先根据所述数据源提取对象与所述目标数据源的映射关系查找与所述数据源提取对象对应的数据源ID例如具体执行时,获取注解上的数据源的信息,可以通过“String dataSourceKey=annotationClass.dataSource()”的代码从远程config或redis中获取动态配置信息,获取真实的值。然后再根据所述目标数据源的链接路径、所述数据源ID和线程信息查询出所述数据源提取对象对应的数据源。例如,键值对中设置a.1=Master,b.2=Slave,c.3=Oracle,等等,数据源ID分别是1、2、3,目标数据对象分别是a、b、c。如图2所示,根据切面增强后的目标方法查找目标数据对象对应的不同的数据源,简单高效。上述的数据源指代数据库,如Oracle。
在本申请的一些实施例中,将预设名称的注解通过Spring容器的面向切面编程实现所述目标方法函数的切面增强之前,还包括织入前置通知以获取Spring容器的连接资源;所述将所述预设名称的注解通过Spring容器的面向切面编程实现所述目标方法函数的切面增强之后,还包括织入后置通知以释放Spring容器的连接资源。具体而言,@Before:前置通知,在方法执行之前执行,是做好铺垫工作即连接资源,@After:后置通知,在方法执行之后执行,即释放资源。
在本申请其它的一些实施例中,在查询出目标数据源之后还包括采用数据源链接模板的方式连接所述目标数据源,采用数据源链接模板的方式连接所述目标数据源时,先定义预设数据源链接模板,然后根据所述预设数据源链接模板建立与数据源的连接信息,其中,连接信息中至少包括数据源ID、数据源名称、数据源账号密码和数据源所在路径,根据数据源的连接信息获得欲连接数据源中的数据源提取对象。这里所谓的定义预设数据源链接模板,例如可采用代码:class.forName(“com.mysql.jdbc.Driver”),而建立与数据源的连接可采用代码conn DriverManger.getConnection建立,其参数包含数据源ID、数据源名称、数据源账号密码和数据源所在路径,即可以获取到运行时数据源JDBC URL地址。如图3所示,利用Spring容器的Aop(切面编程),针对要修改的方法(目标方法)进行切面增强,应用启动生成一个动态代理类,主要负责监控方法的数据源,从远程config或者redis配置中获取真实数据源信息,将数据源传递给spring的jdbc(数据库链接模板)去处理,以帮助spring去处理数据库相关的操作,当jdbc拿到切面编程获取的数据源信息然后再去链接该数据源,当发生数据库操作时就会去访问该数据源,从而达到动态切换数据源,优化多数据源使用方式的技术效果。
在具体实施时,基于业务需求对所述目标数据源中的数据进行目标处理,所述目标处理可以是增加新数据记录、删除已有的数据记录或修改数据的操作,具体地,根据实际的业务需求而定。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
在本申请示例性实施例中,还提供了一种多数据源管理装置,其执行各实施例中的所述多数据源管理方法,如图4所示,所述装置包括:
方法确定模块401,被配置为在接收到针对目标应用程序的执行指令时,拦截所述目标应用程序的目标方法函数;
对象确定模块402,被配置为确定所述目标方法函数中的数据源提取对象;
处理模块403,被配置为根据所述数据源提取对象结合所述目标方法函数所关联的预设注解查询出目标数据源,并基于业务需求进行数据处理;
切换模块404,被配置为在接收到针对目标应用程序的切换指令时,根据所述切换指令继续执行拦截所述目标应用程序的目标方法函数的步骤。
在本申请的一些实施方式中,处理模块403在实现根据数据源提取对象结合所述目标方法函数所关联的预设注解查询出目标数据源,并基于业务需求进行数据处理的功能时,具体执行以下步骤:建立预设名称的注解,并将所述预设名称的注解与所述目标方法函数关联;将所述预设名称的注解通过Spring容器的面向切面编程实现所述目标方法函数的切面增强;根据所述数据源提取对象,并结合所述预设名称的注解查询出目标数据源。
还需要强调的是,本申请实施例中提供的系统可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
下面请参考图5,其示出了本申请的一些实施方式所提供的一种计算机设备的示意图。如图5所示,所述计算机设备2包括:处理器200,存储器201,总线202和通信接口203,所述处理器200、通信接口203和存储器201通过总线202连接;所述存储器201中存储有可在所述处理器200上运行的计算机程序,所述处理器200运行所述计算机程序时执行本申请前述任一实施方式所提供的多数据源管理方法。
其中,存储器201可能包含高速随机存取存储器(RAM:Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口203(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网、广域网、本地网、城域网等。
总线202可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。其中,存储器201用于存储程序,所述处理器200在接收到执行指令后,执行所述程序,前述本申请实施例任一实施方式揭示的所述多数据源管理方法可以应用于处理器200中,或者由处理器200实现。
处理器200可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器200中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器200可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器201,处理器200读取存储器201中的信息,结合其硬件完成上述方法的步骤。
本申请实施方式还提供一种与前述实施方式所提供的多数据源管理方法对应的计算机可读存储介质,其上存储有计算机程序,所述计算机程序在被处理器运行时,会执行前述任意实施方式所提供的多数据源管理方法。
另外,所述计算机可读存储介质的例子还可以包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他光学、磁性存储介质,在此不再一一赘述。
本申请实施方式还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现前述任意实施方式所提供的多数据源管理方法的步骤,包括:在接收到针对目标应用程序的执行指令时,拦截所述目标应用程序的目标方法函数;确定所述目标方法函数中的数据源提取对象;根据所述数据源提取对象结合所述目标方法函数所关联的预设注解查询出目标数据源,并基于业务需求对所述目标数据源中的数据进行目标处理;在接收到针对目标应用程序的切换指令时,根据所述切换指令继续执行所述拦截所述目标应用程序的目标方法函数的步骤。
需要说明的是:在此提供的算法和显示不与任何特定计算机、虚拟装置或者其它设备有固有相关。各种通用装置也可以与基于在此的示教一起使用。根据上面的描述,构造这类装置所要求的结构是显而易见的。此外,本申请也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本申请的内容,并且上面对特定语言所做的描述是为了披露本申请的最佳实施方式。在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本申请的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
本申请的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本申请实施例的虚拟机的创建装置中的一些或者全部部件的一些或者全部功能。本申请还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序。实现本申请的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
以上所述,仅为本申请较佳的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (10)

1.一种多数据源管理方法,应用于微服务应用系统,其特征在于,所述方法包括:
在接收到针对目标应用程序的执行指令时,拦截所述目标应用程序的目标方法函数;
确定所述目标方法函数中的数据源提取对象;
根据所述数据源提取对象结合所述目标方法函数所关联的预设注解查询出目标数据源,并基于业务需求对所述目标数据源中的数据进行目标处理;
在接收到针对目标应用程序的切换指令时,根据所述切换指令继续执行所述拦截所述目标应用程序的目标方法函数的步骤。
2.根据权利要求1所述的多数据源管理方法,其特征在于,所述确定所述目标方法函数中的数据源提取对象,包括:
从所述目标方法函数中获取所述目标方法函数对应的连接点信息;
对所述连接点信息进行解析并确定数据源提取对象。
3.根据权利要求1所述的多数据源管理方法,其特征在于,所述根据所述数据源提取对象结合所述目标方法函数所关联的预设注解查询出目标数据源,包括:
建立预设名称的注解,并将所述预设名称的注解与所述目标方法函数关联;
将所述预设名称的注解通过Spring容器的面向切面编程实现所述目标方法函数的切面增强;
根据所述数据源提取对象,并结合所述预设名称的注解查询出目标数据源。
4.根据权利要求3所述的多数据源管理方法,其特征在于,所述将所述预设名称的注解通过Spring容器的面向切面编程实现所述目标方法函数的切面增强,包括:
通过Spring容器的面向切面编程的附加配置文件存储所述预设名称的注解;
在所述预设名称的注解中存放键值对,其中,所述键值对表征所述数据源提取对象与所述目标数据源的映射关系及所述目标数据源的链接路径。
5.根据权利要求4所述的多数据源管理方法,其特征在于,所述根据所述数据源提取对象,并结合所述预设名称的注解查询出目标数据源,包括:
根据所述数据源提取对象与所述目标数据源的映射关系查找与所述数据源提取对象对应的数据源ID;
根据所述目标数据源的链接路径、所述数据源ID和线程信息查询出所述数据源提取对象对应的数据源。
6.根据权利要求3所述的多数据源管理方法,其特征在于,所述将所述预设名称的注解通过Spring容器的面向切面编程实现所述目标方法函数的切面增强之前,还包括织入前置通知以获取Spring容器的连接资源;所述将所述预设名称的注解通过Spring容器的面向切面编程实现所述目标方法函数的切面增强之后,还包括织入后置通知以释放Spring容器的连接资源。
7.根据权利要求1所述的多数据源管理方法,其特征在于,所述查询出目标数据源之后还包括采用数据源链接模板的方式连接所述目标数据源,所述采用数据源链接模板的方式连接所述目标数据源包括:
定义预设数据源链接模板;
根据所述预设数据源链接模板建立与数据源的连接信息,所述连接信息中至少包括数据源ID、数据源名称、数据源账号密码和数据源所在路径;
根据所述数据源的连接信息获得欲连接数据源中的数据源提取对象。
8.一种多数据源管理装置,其特征在于,所述装置包括:
方法确定模块,被配置为在接收到针对目标应用程序的执行指令时,拦截所述目标应用程序的目标方法函数;
对象确定模块,被配置为确定所述目标方法函数中的数据源提取对象;
处理模块,被配置为根据所述数据源提取对象结合所述目标方法函数所关联的预设注解查询出目标数据源,并基于业务需求进行数据处理;
切换模块,被配置为在接收到针对目标应用程序的切换指令时,根据所述切换指令继续执行拦截所述目标应用程序的目标方法函数的步骤。
9.一种计算机设备,包括存储器和处理器,其特征在于,存储器中存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行如权利要求1-7任一所述方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1-7任一所述方法。
CN202310285419.5A 2023-03-15 2023-03-15 一种多数据源管理方法、装置、设备和存储介质 Pending CN116303649A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310285419.5A CN116303649A (zh) 2023-03-15 2023-03-15 一种多数据源管理方法、装置、设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310285419.5A CN116303649A (zh) 2023-03-15 2023-03-15 一种多数据源管理方法、装置、设备和存储介质

Publications (1)

Publication Number Publication Date
CN116303649A true CN116303649A (zh) 2023-06-23

Family

ID=86779446

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310285419.5A Pending CN116303649A (zh) 2023-03-15 2023-03-15 一种多数据源管理方法、装置、设备和存储介质

Country Status (1)

Country Link
CN (1) CN116303649A (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110765187A (zh) * 2018-07-09 2020-02-07 北京京东尚科信息技术有限公司 一种数据源路由管理方法和装置
CN111414391A (zh) * 2020-03-25 2020-07-14 平安资产管理有限责任公司 一种访问多数据源的方法及系统
CN114840598A (zh) * 2022-07-04 2022-08-02 好享家舒适智能家居股份有限公司 一种创建运行时数据源并自动切换的方法及系统
CN114840272A (zh) * 2022-07-04 2022-08-02 好享家舒适智能家居股份有限公司 一种多数据源动态规划及监测系统、方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110765187A (zh) * 2018-07-09 2020-02-07 北京京东尚科信息技术有限公司 一种数据源路由管理方法和装置
CN111414391A (zh) * 2020-03-25 2020-07-14 平安资产管理有限责任公司 一种访问多数据源的方法及系统
CN114840598A (zh) * 2022-07-04 2022-08-02 好享家舒适智能家居股份有限公司 一种创建运行时数据源并自动切换的方法及系统
CN114840272A (zh) * 2022-07-04 2022-08-02 好享家舒适智能家居股份有限公司 一种多数据源动态规划及监测系统、方法

Similar Documents

Publication Publication Date Title
TWI718375B (zh) 基於區塊鏈的資料處理方法及設備
US10853356B1 (en) Persistent metadata catalog
CN107430611B (zh) 过滤数据沿袭图
US10437564B1 (en) Object mapping and conversion system
WO2020232569A1 (zh) 一种数据库操作层表示方法及装置
CN115269632A (zh) 一种sql语句处理方法、装置、电子设备及存储介质
CN111949650A (zh) 一种多语言融合查询方法及多模数据库系统
US10783193B2 (en) Program, method, and system for execution of software services
JP2017515183A (ja) データ型に関連するデータプロファイリング操作の管理
CA3089289C (en) System and methods for loading objects from hash chains
CN108345691B (zh) 数据源通用处理框架构建方法、数据源处理方法及装置
US10782935B2 (en) Method and system to provide a generalized framework for dynamic creation of module analytic applications
US12141161B1 (en) Automated non-relational to relational database streaming
CN110866029A (zh) sql语句构建方法、装置、服务器及可读存储介质
US10019473B2 (en) Accessing an external table in parallel to execute a query
CN110046170A (zh) 基于多文件管理的语句执行方法、装置、设备和介质
US12455727B2 (en) System and method for a heterogenous software platform
CN114297204A (zh) 一种异构数据源的数据存储、检索方法及装置
CN112667598A (zh) 基于业务需求变化的数据模型快速构建系统
CN103778239A (zh) 一种多数据库数据管理方法及系统
CN119322802A (zh) 一种业务系统与第三方数据库的交互方法、装置、介质及系统
CN114138240A (zh) java对象生成方法、系统、计算机设备及可读存储介质
CN112347794A (zh) 数据翻译方法、装置、设备及计算机存储介质
CN104808970B (zh) 一种实现国际化软件的方法和系统
CN117573199B (zh) 一种模型差异对比分析方法、装置、设备及介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20250424

Address after: Unit 3509, 35th Floor, No. 1333 Lujiazui Ring Road, China (Shanghai) Pilot Free Trade Zone, Pudong New Area, Shanghai, 200120

Applicant after: Ping An Pay Electronic Payment Co.,Ltd.

Country or region after: China

Address before: Unit 2605, 26th Floor, Zhaobangji Financial Building, No. 319, Fuhua Road, Futian Street, Futian District, Shenzhen, Guangdong 518048

Applicant before: Pingan Payment Technology Service Co.,Ltd.

Country or region before: China

TA01 Transfer of patent application right