CN112230978A - 一种多数据源动态切换方法、电子设备及存储介质 - Google Patents

一种多数据源动态切换方法、电子设备及存储介质 Download PDF

Info

Publication number
CN112230978A
CN112230978A CN202011024578.2A CN202011024578A CN112230978A CN 112230978 A CN112230978 A CN 112230978A CN 202011024578 A CN202011024578 A CN 202011024578A CN 112230978 A CN112230978 A CN 112230978A
Authority
CN
China
Prior art keywords
data source
source information
data
target database
request
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
CN202011024578.2A
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.)
Shandong Inspur Genersoft Information Technology Co Ltd
Original Assignee
Shandong Inspur Genersoft Information Technology 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 Shandong Inspur Genersoft Information Technology Co Ltd filed Critical Shandong Inspur Genersoft Information Technology Co Ltd
Priority to CN202011024578.2A priority Critical patent/CN112230978A/zh
Publication of CN112230978A publication Critical patent/CN112230978A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种多数据源动态切换方法、电子设备及存储介质,旨在解决在应用中配置数据源文件不仅需要大量的工作,还需要服务器重启的问题,方法包括:响应于用户访问目标数据库的第一请求;确定集合中是否有与所述第一请求中携带的目标数据库的数据源信息对应的目标数据源;若否,则将所述目标数据库的数据源信息加载到所述集合中,生成目标数据源,使当前用户能够访问所述目标数据库。

Description

一种多数据源动态切换方法、电子设备及存储介质
技术领域
本发明涉及计算机软件技术领域,特别涉及一种多数据源动态切换方法、电子设备及存储介质。
背景技术
对于集团化企业,信息化系统一般采用分布式架构进行开发部署,如收粮企业、加工企业等。具体而言,集团总部部署一套独立的系统(web应用+数据库),每个下级单位部署一套独立的系统(web应用+数据库)。在这种部署模式下,若总部层级系统想要直接连接下级单位数据库进行数据处理、查询等操作,则需要总部系统支持多数据源模式。
现有技术中,通常是在总部web应用的配置文件中配置数据源,然后修改java文件,这种操作方式复杂,每添加一个数据源都要做重复的工作,另外还需要运维人员升级补丁,重启应用服务器,这不但增加了开发人员、运维人员的工作量,还会中断用户使用系统,易用性较差。
发明内容
本发明实施例旨在至少在一定程度上解决以下技术问题:
在应用中配置数据源文件不仅需要大量的工作,还需要服务器重启,给企业的日常运营带来了负担。
第一方面,本发明实施例提供了一种多数据源动态切换方法,包括:
响应于用户访问目标数据库的第一请求;
确定集合中是否有与所述第一请求中携带的目标数据库的数据源信息对应的目标数据源;
若否,则将所述目标数据库的数据源信息加载到所述集合中,生成目标数据源,使当前用户能够访问所述目标数据库。
在一个示例中,所述确定集合中是否有与所述第一请求中携带的目标数据库的数据源信息对应的目标数据源之后,还包括:
若是,则将当前的数据源切换为所述目标数据源,使当前用户能够访问所述目标数据库。
在一个示例中,还包括:
响应于用户创建数据源的第二请求;
根据所述第二请求中携带的数据库的数据源信息,将该数据源信息加载到所述集合中。
在一个示例中,将数据源信息加载到集合中包括:
将所述数据源信息配置为指定格式的数据;
将所述指定格式的数据加载到所述集合中。
在一个示例中,所述根据所述第一请求中携带的所述目标数据库的数据源信息,确定集合中是否有与所述目标数据库的数据源信息对应的目标数据源,包括:
确定所述第一请求中是否携带有数据源信息;
若携带有数据源信息,则确定该数据源信息是否在集合中。
在一个示例中,所述确定该数据源是否在集合中,包括:
将该数据源信息配置为指定格式的数据,以确定该数据源信息是否在集合中。
在一个示例中,所述数据源信息至少包括下列之一:目标数据库的IP、目标数据库的端口号、目标数据库的用户名以及目标数据库的密码。
在一个示例中,还包括:
响应于用户访问所述集合的第三请求;
根据所述第三请求中携带的用户指示,对所述集合中表示数据源信息的指定格式的数据进行数据处理,其中,所述数据处理至少包括下列之一:数据源信息的修改、数据源信息的删除、数据源信息的查询、数据源信息的启用、数据源信息的停用。
第二方面,本发明实施例提供了一种电子设备,包括:处理器,以及与所述处理器通信连接的存储器,其中,所述存储器存储有能被所述处理器执行的计算机指令,所述指令被所述处理器执行,以实现如上所述的多数据源动态切换方法。
第三方面,本发明实施例提供了一种非易失性计算机存储介质,存储有计算机指令,所述指令被处理器执行,以实现如上所述的多数据源动态切换方法。
有益效果:
本发明解决了项目应用中动态创建、切换数据源问题,项目上线后在无需改动代码的情况下实现数据源的动态创建及切换,极大的节省了后期运维工作量,提升系统的可扩展性。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为现有技术中的数据源切换方式示意图;
图2为本发明实施例提供的数据源切换方式示意图;
图3为本发明实施例提供的多数据源动态切换方法的流程示意图;
图4为本发明实施例提供的电子设备的框架结构示意图。
具体实施方式
为了更清楚的阐释本申请的整体构思,下面结合说明书附图以示例的方式进行详细说明。
现有技术中,web应用在添加数据源的时候,每添加一个数据源就要配置一次接口,过程重复,每次添加数据源都要重启应用服务器。
图1为现有技术中的数据源切换方式示意图,如图1所示,现有技术中,针对每一个数据源,都要针对性的创建一个session接口,从而实现数据库的访问。
图2为本发明实施例提供的数据源切换方式示意图,如图2所示,将数据源信息从前端web功能中进行设置,系统从后台获取后封装到基于Spring的集合(英文:MAP)中,用户发送请求时只需将访问的数据库相关信息传入,系统根据给定规则将本次访问切换至本数据源,从而达到了动态创建、切换数据源的目的,使系统更加灵活,扩展性更强,极大的节省工作量,提升工作效率。
图3为本发明实施例提供的多数据源动态切换方法的流程示意图,如图3所示,多数据源动态切换方法包括:
步骤101、响应于用户访问目标数据库的第一请求;
步骤102、确定集合中是否有与所述第一请求中携带的目标数据库的数据源信息对应的目标数据源;
本发明示例中的集合主要是指基于Spring的Map集合。
步骤103、若否,则将所述目标数据库的数据源信息加载到所述集合中,生成目标数据源,使当前用户能够访问所述目标数据库;
步骤104、若是,则将当前的数据源切换为所述目标数据源,使当前用户能够访问所述目标数据库。
本发明示例能够提高系统可扩展性,节省运维工作量,若有新的数据源需要添加,只需要在管理页面添加新的数据源信息即可,系统将自动进行处理和转换,极大降低了后期开发工作量,有效的提高了系统的可扩展性。
在本发明的一些具体的实施例中,基于Spring框架进行软件开发,通过将多个具有针对性功能的类文件封装在Spring容器中实现上述的方法。
在本发明的一些实施例中,还包括用户对数据源进行配置和管理的使用场景,在该使用场景中,主要包括以下步骤:
响应于用户创建数据源的第二请求;
根据所述第二请求中携带的数据库的数据源信息,将该数据源信息加载到集合中。
用户通过前端的Web页面或者应用程序界面,将需要访问的数据源信息发送给Spring容器,一般而言,数据源信息包括但不限于目标数据库的IP、目标数据库的端口号、目标数据库的用户名以及目标数据库的密码等信息。
在步骤103和用户对数据源进行配置和管理的使用场景中,将数据源信息加载到集合中包括:
通过Spring容器中的第一类文件,将数据源信息配置为指定格式的数据;
在一些示例中,指定格式的数据可以是xml格式的文件,也可以是基于不同的系统,采用YAML、JSON等格式的文件,本发明示例对此不作特别的限制。
通过Spring容器中的第二类文件,将所述指定格式的数据加载到集合中。
相应的,将数据加载到集合中以后,可以通过Spring容器中的第三类文件对数据源进行动态切换。
在一些示例中,步骤103中将所述目标数据库的数据源信息加载到所述集合中,生成目标数据源是通过上述三个类文件实现的。
在本发明的一些示例中,102确定集合中是否有与所述第一请求中携带的目标数据库的数据源信息对应的目标数据源的实现方式可以是:
确定第一请求中是否携带有数据源信息;
在一个示例中,第一请求可以理解为本次请求内容的封装,该封装可能内含数据源信息,也可能不含数据源信息。
若未携带有数据源信息,确定数据源信息为空,此时系统默认为默认数据源,默认数据源是指当前应用所对应的数据库,目标数据源是指可访问的下级数据库的数据源。
若携带有数据源信息,则确定该数据源信息是否在集合中。
具体而言,将该数据源信息配置为指定格式的数据,以确定该数据源信息是否在集合中。
在本发明实施例的一些方案中,还包括对集合中的数据源信息进行管理。主要包括:
响应于用户访问所述集合的第三请求;
根据所述第三请求中携带的用户指示,对所述集合中表示数据源信息的指定格式的数据进行数据处理,其中,所述数据处理至少包括下列之一:数据源信息的修改、数据源信息的删除、数据源信息的查询、数据源信息的启用、数据源信息的停用。
综上所述,本发明示例通过上述步骤,可在不需要修改代码和重启服务器的情况下,实现数据源的动态切换,提高系统的可扩展性。
基于同样的思路,本发明实施例还提供的上述方法对应的设备和非易失性计算机存储介质。
图3为本发明实施例提供的多数据源动态切换方法的流程示意图,如图3所示,电子设备包括:处理器,以及与所述处理器通信连接的存储器,其中,所述存储器存储有能被所述处理器执行的计算机指令,所述指令被所述处理器执行,以实现如上所述的方法。
本发明实施例还提供了一种非易失性计算机存储介质,存储有计算机指令,其特征在于,所述指令被处理器执行,以实现如上所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在申请中。

Claims (10)

1.一种多数据源动态切换方法,其特征在于,包括:
响应于用户访问目标数据库的第一请求;
确定集合中是否有与所述第一请求中携带的目标数据库的数据源信息对应的目标数据源;
若否,则将所述目标数据库的数据源信息加载到所述集合中,生成目标数据源,使当前用户能够访问所述目标数据库。
2.根据权利要求1所述的方法,其特征在于,所述确定集合中是否有与所述第一请求中携带的目标数据库的数据源信息对应的目标数据源之后,还包括:
若是,则将当前的数据源切换为所述目标数据源,使当前用户能够访问所述目标数据库。
3.根据权利要求1所述的方法,其特征在于,还包括:
响应于用户创建数据源的第二请求;
根据所述第二请求中携带的数据库的数据源信息,将该数据源信息加载到所述集合中。
4.根据权利要求1或3任一项所述的方法,其特征在于,将数据源信息加载到集合中包括:
将所述数据源信息配置为指定格式的数据;
将所述指定格式的数据加载到所述集合中。
5.根据权利要求1所述的方法,其特征在于,所述根据所述第一请求中携带的所述目标数据库的数据源信息,确定集合中是否有与所述目标数据库的数据源信息对应的目标数据源,包括:
确定所述第一请求中是否携带有数据源信息;
若携带有数据源信息,则确定该数据源信息是否在集合中。
6.根据权利要求5所述的方法,其特征在于,所述确定该数据源是否在集合中,包括:
将该数据源信息配置为指定格式的数据,以确定该数据源信息是否在集合中。
7.根据权利要求1所述的方法,其特征在于,所述数据源信息至少包括下列之一:目标数据库的IP、目标数据库的端口号、目标数据库的用户名以及目标数据库的密码。
8.根据权利要求1所述的方法,其特征在于,还包括:
响应于用户访问所述集合的第三请求;
根据所述第三请求中携带的用户指示,对所述集合中表示数据源信息的指定格式的数据进行数据处理,其中,所述数据处理至少包括下列之一:数据源信息的修改、数据源信息的删除、数据源信息的查询、数据源信息的启用、数据源信息的停用。
9.一种电子设备,其特征在于,包括:处理器,以及与所述处理器通信连接的存储器,其中,所述存储器存储有能被所述处理器执行的计算机指令,所述指令被所述处理器执行,以实现权利要求1-8任一项所述的方法。
10.一种非易失性计算机存储介质,存储有计算机指令,其特征在于,所述指令被处理器执行,以实现权利要求1-8任一项所述的方法。
CN202011024578.2A 2020-09-25 2020-09-25 一种多数据源动态切换方法、电子设备及存储介质 Pending CN112230978A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011024578.2A CN112230978A (zh) 2020-09-25 2020-09-25 一种多数据源动态切换方法、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011024578.2A CN112230978A (zh) 2020-09-25 2020-09-25 一种多数据源动态切换方法、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN112230978A true CN112230978A (zh) 2021-01-15

Family

ID=74107870

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011024578.2A Pending CN112230978A (zh) 2020-09-25 2020-09-25 一种多数据源动态切换方法、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN112230978A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113468380A (zh) * 2021-06-30 2021-10-01 杭州玳数科技有限公司 数据导出方法
CN116483905A (zh) * 2023-04-21 2023-07-25 浪潮智慧科技有限公司 一种动态添加多数据源的方法、设备及介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101295304A (zh) * 2007-04-29 2008-10-29 阿里巴巴集团控股有限公司 自动切换数据源的方法、装置及一种数据源切换器
CN101408899A (zh) * 2008-11-21 2009-04-15 北京中企开源信息技术有限公司 一种网站多数据源切换方法和装置
CN104503751A (zh) * 2014-12-16 2015-04-08 深圳中兴网信科技有限公司 基于soa的数据源切换方法和基于soa的数据源切换系统
CN105938490A (zh) * 2016-04-14 2016-09-14 北京思特奇信息技术股份有限公司 一种web应用系统连接数据源智能切换方法及系统
CN106815027A (zh) * 2017-01-22 2017-06-09 山东鲁能软件技术有限公司 一种用于电网多维业务复合计算的高弹性计算平台
CN107800780A (zh) * 2017-10-10 2018-03-13 深圳乐信软件技术有限公司 数据服务方法、装置、存储介质和计算机设备
CN109325066A (zh) * 2018-08-02 2019-02-12 平安科技(深圳)有限公司 一种数据库切换方法及终端设备
CN109614426A (zh) * 2018-10-26 2019-04-12 深圳壹账通智能科技有限公司 多数据库间的切换方法、装置及电子设备

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101295304A (zh) * 2007-04-29 2008-10-29 阿里巴巴集团控股有限公司 自动切换数据源的方法、装置及一种数据源切换器
CN101408899A (zh) * 2008-11-21 2009-04-15 北京中企开源信息技术有限公司 一种网站多数据源切换方法和装置
CN104503751A (zh) * 2014-12-16 2015-04-08 深圳中兴网信科技有限公司 基于soa的数据源切换方法和基于soa的数据源切换系统
CN105938490A (zh) * 2016-04-14 2016-09-14 北京思特奇信息技术股份有限公司 一种web应用系统连接数据源智能切换方法及系统
CN106815027A (zh) * 2017-01-22 2017-06-09 山东鲁能软件技术有限公司 一种用于电网多维业务复合计算的高弹性计算平台
CN107800780A (zh) * 2017-10-10 2018-03-13 深圳乐信软件技术有限公司 数据服务方法、装置、存储介质和计算机设备
CN109325066A (zh) * 2018-08-02 2019-02-12 平安科技(深圳)有限公司 一种数据库切换方法及终端设备
CN109614426A (zh) * 2018-10-26 2019-04-12 深圳壹账通智能科技有限公司 多数据库间的切换方法、装置及电子设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
王军等: "铁路运输信息集成平台数据服务管理系统设计与实现", 《铁路信息技术》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113468380A (zh) * 2021-06-30 2021-10-01 杭州玳数科技有限公司 数据导出方法
CN116483905A (zh) * 2023-04-21 2023-07-25 浪潮智慧科技有限公司 一种动态添加多数据源的方法、设备及介质

Similar Documents

Publication Publication Date Title
CN112099918B (zh) 容器化环境中的集群的实时迁移
US11829742B2 (en) Container-based server environments
US20210064442A1 (en) Implementing An Application Manifest In A Node-Specific Manner Using An Intent-Based Orchestrator
RU2421785C2 (ru) Автоматизированное управление драйверами устройств
US8069224B2 (en) Method, equipment and system for resource acquisition
US8239505B2 (en) Progressively implementing declarative models in distributed systems
US8032588B2 (en) System and method for hosting one or more versions of a service using a service proxy
US11249788B2 (en) Cloud management platform, and virtual machine management method and system
US20150067167A1 (en) Hot pluggable extensions for access management system
CN109614167B (zh) 一种管理插件的方法和系统
JP2013511766A (ja) クラスタベースのjavaアプリケーションシステムのコードをロードおよび更新する装置および方法
US8745342B2 (en) Computer system for controlling backups using wide area network
CN108073423B (zh) 一种加速器加载方法、系统和加速器加载装置
CN105701257A (zh) 数据处理方法和装置
US20220413937A1 (en) Node management method, device and apparatus, storage medium, and system
CN109522043B (zh) 一种配置数据的管理方法、装置及存储介质
CN112230978A (zh) 一种多数据源动态切换方法、电子设备及存储介质
CN112769706B (zh) 组件化路由方法及系统
JP6418419B2 (ja) ハードディスクがアプリケーションコードを実行するための方法および装置
CN116661943A (zh) Kubernetes系统平台下Pod数据卷动态挂载方法及装置
CN116155978A (zh) 多注册中心适配方法、装置、电子设备及存储介质
CN110798358A (zh) 分布式服务标识方法、装置、计算机可读介质及电子设备
US11604669B2 (en) Single use execution environment for on-demand code execution
CN114116030A (zh) 操作系统的运行方法、装置、电子设备、存储介质
CN115729693A (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20210115

RJ01 Rejection of invention patent application after publication