CN107463663B - 一种轻量级多数据源访问方法 - Google Patents

一种轻量级多数据源访问方法 Download PDF

Info

Publication number
CN107463663B
CN107463663B CN201710646466.2A CN201710646466A CN107463663B CN 107463663 B CN107463663 B CN 107463663B CN 201710646466 A CN201710646466 A CN 201710646466A CN 107463663 B CN107463663 B CN 107463663B
Authority
CN
China
Prior art keywords
data source
thread
container
data
connection
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.)
Active
Application number
CN201710646466.2A
Other languages
English (en)
Other versions
CN107463663A (zh
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.)
Inspur Cloud Information Technology Co Ltd
Original Assignee
Inspur Cloud 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 Inspur Cloud Information Technology Co Ltd filed Critical Inspur Cloud Information Technology Co Ltd
Priority to CN201710646466.2A priority Critical patent/CN107463663B/zh
Publication of CN107463663A publication Critical patent/CN107463663A/zh
Application granted granted Critical
Publication of CN107463663B publication Critical patent/CN107463663B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/25Integrating or interfacing systems involving database management systems
    • G06F16/252Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种轻量级多数据源访问方法,属于数据源访问技术领域。本访问方法首先定义多线程安全的数据源池,保证多线程的安全,然后对多数据源进行管理,管理过程包括加载数据源、根据数据源标识获取数据源、关闭数据源,最后对数据源进行二次封装,新的数据源引入线程连接容器,线程连接容器保证每个线程获取各自的连接,再次保证多线程的安全。本访问方法适用于访问多个数据源、保证操作原子化、要求实现过程轻量级的场景,在不提高服务器处理的能力下,采用多线程机制加快查询速度,无需引入第三方软硬件资源,实现轻量级的多数据源访问控制,并且支持多数据源并发访问。

Description

一种轻量级多数据源访问方法
技术领域
本发明涉及多数据源访问技术领域,具体地说是一种轻量级多数据源访问方法。
背景技术
社会的不断发展,企业进行越来越多的支撑系统建设,数据是企业、生产、经营、战略等,数据来源又包括财务数据、生产数据、销售数据、市场数据、人力资源数据等,各种各样的数据,数据是几乎所有的经营活动所依赖的,不可或缺的信息。如何将数据快速、有效的组织起来是企业数据管理重要环节,各类数据最终可能会存储于关系型数据库中,如何用将这些结构化的数据再次组织起来有很多种手段,而能访问这些关系型数据库是数据组织的前提条件,为了提高访问效率,实现多数据源并发访问,访问关系型数据库可以通过硬件或是第三方中间件,这就需要投入更多的资金进行设备维护和软件的升级,以及维护的人力成本,应用过于依赖第三方硬件或软件,也可能会导致企业无法根据自己的业务场景定制实现方式,通常情况下第三方硬件或软件也会占用大量的服务器资源。
另外,在许多业务场景下,企业为了节约技术成本,有些小型的工具组件项目只是需要实现多数据源访问,能够并发执行、操作原子化,能够轻量级的植入企业应用中,并且能够实现可定制化操作。
基于此,设计一种轻量级多数据源访问方法,该方法不采用第三方插件,具有运行高效、使用成本低的优点。
发明内容
本发明的技术任务是解决现有技术的不足,针对现有系统的应用情况、以及现有系统能够金丹方便和自行定制的特点,提供一种轻量级多数据源访问方法,该方法不采用第三方插件,具有运行高效、使用成本低的优点。
本发明解决其技术问题所采用的技术方案是:
一种轻量级多数据源访问方法,该方法首先定义多线程安全的数据源容器,然后对多数据源进行管理,最后对数据源进行二次封装,将二次封装后的数据源引入线程连接容器,且线程连接容器保证每个线程获取各自的连接。
所涉及数据源容器包括数据源容器对象、数据源容器属性信息、数据源容器开放接口、其他;
数据源容器对象是数据源容器的实例化对象,采用单例模式对外提供数据源实例化对象,保证用户获取的数据源容器是同一个;
数据源容器属性信息是在实例化多数据源,该实例中提供对数据源的加载需要用的配置文件路径参数的属性信息;
数据源容器开放接口包括:获取数据源接口,通过传参数动态配置数据源接口,实例化数据源,清除数据源接口。
所涉及对数据源进行二次封装旨在对数据源容器对象进行实例化,封装后新的数据源包括:线程连接容器、数据源属性、数据源接口、其他;
线程连接容器根据线程号存储每个线程的数据库连接;
数据源属性包括:获取数据源的用户名、密码、所使用的驱动,连接数据库URL连接的实例化数据源的属性参数;
数据源对外接口提供对数据源多线程连接的管理和对数据库事务的管理。
所涉及数据源多线程连接的管理内容包括加载线程连接、获取线程连接、清除线程连接;
所涉及数据库事务的管理内容包括事务开启、事务提交、事务关闭、事务回滚。
对多数据进行管理的过程包括:加载数据源、根据数据源标识获取数据源、关闭数据源。
所涉及加载数据源的实现过程包括:
1)开始;
2)读取数据源配置文件;
3)读取成功,即可将数据源加载到数据源容器;
4)结束。
所涉及根据数据源标识获取数据源的实现过程包括:
1)开始;
2)实例化多数据源容器;
3)设置当前数据源标识;
4)获取线程数据库连接;
5)判断该线程是否存在:
a)若存在,转至6);
b)若不存在,
b1)根据数据源标识获取数据源;
b2)获取线程数据库连接并放到线程连接容器中;
6)结束。
所涉及访问方法的具体实施步骤包括:
1)开始;
2)用户进行数据库操作:设置当前所需使用的数据源标识;
3)手动开始事务;
4)操作数据库:系统首先自动根据用户配置的数据源标识获取数据源,然后根据线程号获取当前线程的数据库连接;若当前线程的数据库连接还没有创建,则从数据源中获取数据库连接,获取成功后,将数据库连接设置成当前线程的连接;只有获取连接后,用户才可以对数据库进行访问;
5)提交事务,
a)提交成功,直接断开数据库连接;
b)提交失败,首先进行事务回滚,然后断开数据库连接;
6)结束。
所涉及数据源容器的数量为至少一个。
所涉及数据源容器对象包括至少一个新的数据源。
本发明的一种轻量级多数据源访问方法与现有技术相比所产生的有益效果是:
1)本发明的访问方法适用于访问多个数据源、保证操作原子化、要求实现过程轻量级的场景,在不提高服务器处理的能力下,采用多线程机制加快查询速度,无需引入第三方软硬件资源,实现轻量级的多数据源访问控制,并且支持多数据源并发访问,充分利用系统性能提高效率,方便使用,节约成本,实用性强;
2)本发明的访问方法可自行封装工具,修改方便,可维护性强,还可自行设置需要连接的数据源,操作简单。
附图说明
附图1是本发明中数据源容器连接框图;
附图2是本发明中加载数据源的实现流程图;
附图3是本发明中根据数据源标识获取数据源的实现流程图;
附图4是本发明访问方法的应用流程图。
具体实施方式
下面结合附图1-4,对本发明的一种轻量级多数据源访问方法作以下详细说明。
本发明提供一种轻量级多数据源访问方法,该方法首先定义多线程安全的数据源容器,然后对多数据源进行管理,最后对数据源进行二次封装,将二次封装后的数据源引入线程连接容器,且线程连接容器保证每个线程获取各自的连接。数据源容器又叫数据源池;线程连接容器又叫线程池。
结合附图1,所涉及数据源容器包括数据源容器对象、数据源容器属性信息、数据源容器开放接口、其他。其中:数据源容器对象是数据源容器的实例化对象,采用单例模式对外提供数据源实例化对象,保证用户获取的数据源容器是同一个;数据源容器属性信息是在实例化多数据源,该实例中提供对数据源的加载需要用的配置文件路径参数的属性信息;数据源容器开放接口包括:获取数据源接口,通过传参数动态配置数据源接口,实例化数据源,清除数据源接口。
所涉及对数据源进行二次封装旨在对数据源容器对象进行实例化,封装后新的数据源包括:线程连接容器、数据源属性、数据源接口、其他。其中:线程连接容器根据线程号存储每个线程的数据库连接;数据源属性包括:获取数据源的用户名、密码、所使用的驱动,连接数据库URL连接的实例化数据源的属性参数;数据源对外接口提供对数据源多线程连接的管理和对数据库事务的管理,所涉及数据源多线程连接的管理内容包括加载线程连接、获取线程连接、清除线程连接,所涉及数据库事务的管理内容包括事务开启、事务提交、事务关闭、事务回滚。
对多数据进行管理的过程包括:加载数据源、根据数据源标识获取数据源、关闭数据源。
结合附图2,所涉及加载数据源的实现过程包括:
1)开始;
2)读取数据源配置文件;
3)读取成功,即可将数据源加载到数据源容器;
4)结束。
结合附图3,所涉及根据数据源标识获取数据源的实现过程包括:
1)开始;
2)实例化多数据源容器;
3)设置当前数据源标识;
4)获取线程数据库连接;
5)判断该线程是否存在:
a)若存在,转至6);
b)若不存在,
b1)根据数据源标识获取数据源;
b2)获取线程数据库连接并放到线程连接容器中;
6)结束。
所涉及数据源容器的数量为至少一个。
所涉及数据源容器对象包括至少一个新的数据源。
根据上述叙述的内容,下面以云计算领域性能系统为例说明本发明的访问方法的具体应用。需要进行数据汇总的数据特点是都是历史性的数据,存储以后的数据值不发生变化,而且数据量非常的大,需要使用汇总工具进行数据汇总。利用本发明在汇总工具上,使得多数据源配置、切换简单化,支持多线程同时操作配置,大大降低汇总时间,用户可以手动控制事务,也可以走默认的事务控制,灵活性更好。
针对性能系统的数据汇总,结合附图4,所涉及访问方法的具体实施步骤包括:
1)开始;
2)用户进行数据库操作:设置当前所需使用的数据源标识;
3)手动开始事务;
4)操作数据库:系统首先自动根据用户配置的数据源标识获取数据源,然后根据线程号获取当前线程的数据库连接;若当前线程的数据库连接还没有创建,则从数据源中获取数据库连接,获取成功后,将数据库连接设置成当前线程的连接;只有获取连接后,用户才可以对数据库进行访问;
5)提交事务,
a)提交成功,直接断开数据库连接;
b)提交失败,首先进行事务回滚,然后断开数据库连接;
6)结束。
根据上面描述的实例,可以看出采用本发明后,在没有改变用户的操作行为下,系统的数据处理量大大增加,并且整个流程用户都可以参与控制,随着数据量量的不断增加,同样的硬件投资下,本发明加速的效果明显增加。
本发明的访问方法适用于针对系统中的数据汇总的一种简单、有效的实现方式,可以广泛应用于电信、银行、医疗、教育、财务等领域。
综上所述,上述具体实施方式仅是本发明的具体个案,本发明的专利保护范围包括但不限于上述具体实施方式,任何符合本发明的一种轻量级多数据源访问方法的权利要求书的且任何所述技术领域的普通技术人员对其所做的适当变化或替换,皆应落入本发明的专利保护范围。

Claims (8)

1.一种轻量级多数据源访问方法,其特征在于,该方法首先定义多线程安全的数据源容器,然后对多数据源进行管理,最后对数据源进行二次封装,将二次封装后的数据源引入线程连接容器,且线程连接容器保证每个线程获取各自的连接;
所述数据源容器包括数据源容器对象、数据源容器属性信息、数据源容器开放接口、其他;所述数据源容器对象是数据源容器的实例化对象,采用单例模式对外提供数据源实例化对象,保证用户获取的数据源容器是同一个;所述数据源容器属性信息是在实例化多数据源,该实例中提供对数据源的加载需要用的配置文件路径参数的属性信息;所述数据源容器开放接口包括:获取数据源接口,通过传参数动态配置数据源接口,实例化数据源,清除数据源接口;
对数据源进行二次封装旨在对数据源容器对象进行实例化,封装后新的数据源包括:线程连接容器、数据源属性、数据源接口、其他;所述线程连接容器根据线程号存储每个线程的数据库连接;所述数据源属性包括:获取数据源的用户名、密码、所使用的驱动,连接数据库URL连接的实例化数据源的属性参数;所述数据源对外接口提供对数据源多线程连接的管理和对数据库事务的管理。
2.根据权利要求1所述的一种轻量级多数据源访问方法,其特征在于, 所述数据源多线程连接的管理内容包括加载线程连接、获取线程连接、清除线程连接;
所述数据库事务的管理内容包括事务开启、事务提交、事务关闭、事务回滚。
3.根据权利要求1所述的一种轻量级多数据源访问方法,其特征在于, 对多数据进行管理的过程包括:加载数据源、根据数据源标识获取数据源、关闭数据源。
4.根据权利要求3所述的一种轻量级多数据源访问方法,其特征在于,所述加载数据源的实现过程包括:
1)开始;
2)读取数据源配置文件;
3)读取成功,即可将数据源加载到数据源容器;
4)结束。
5.根据权利要求4所述的一种轻量级多数据源访问方法,其特征在于,所述根据数据源标识获取数据源的实现过程包括:
1)开始;
2)实例化多数据源容器;
3)设置当前数据源标识;
4)获取线程数据库连接;
5)判断该线程是否存在:
a)若存在,转至6);
b)若不存在,
b1)根据数据源标识获取数据源;
b2)获取线程数据库连接并放到线程连接容器中;
6)结束。
6.根据权利要求4所述的一种轻量级多数据源访问方法,其特征在于,所述访问方法的具体实施步骤包括:
1)开始;
2)用户进行数据库操作:设置当前所需使用的数据源标识;
3)手动开始事务;
4)操作数据库:系统首先自动根据用户配置的数据源标识获取数据源,然后根据线程号获取当前线程的数据库连接;若当前线程的数据库连接还没有创建,则从数据源中获取数据库连接,获取成功后,将数据库连接设置成当前线程的连接;只有获取连接后,用户才可以对数据库进行访问;
5)提交事务,
a)提交成功,直接断开数据库连接;
b)提交失败,首先进行事务回滚,然后断开数据库连接;
6)结束。
7.根据权利要求1-6中任一项所述的一种轻量级多数据源访问方法,其特征在于,所述数据源容器的数量为至少一个。
8.根据权利要求1-6中任一项所述的一种轻量级多数据源访问方法,其特征在于,所述数据源容器对象包括至少一个新的数据源。
CN201710646466.2A 2017-08-01 2017-08-01 一种轻量级多数据源访问方法 Active CN107463663B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710646466.2A CN107463663B (zh) 2017-08-01 2017-08-01 一种轻量级多数据源访问方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710646466.2A CN107463663B (zh) 2017-08-01 2017-08-01 一种轻量级多数据源访问方法

Publications (2)

Publication Number Publication Date
CN107463663A CN107463663A (zh) 2017-12-12
CN107463663B true CN107463663B (zh) 2020-04-28

Family

ID=60547912

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710646466.2A Active CN107463663B (zh) 2017-08-01 2017-08-01 一种轻量级多数据源访问方法

Country Status (1)

Country Link
CN (1) CN107463663B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108345505B (zh) * 2018-02-02 2022-08-30 珠海金山网络游戏科技有限公司 一种多线程资源管理方法和系统
CN113806813A (zh) * 2021-08-27 2021-12-17 上海得帆信息技术有限公司 一种多数据源的数据隔离切换方法和系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103618802A (zh) * 2013-12-12 2014-03-05 中山爱科数字科技股份有限公司 一种健康信息服务集成系统及方法
CN106874461A (zh) * 2017-02-14 2017-06-20 北京慧正通软科技有限公司 一种工作流引擎支持多数据源配置安全访问系统及方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014014944A2 (en) * 2012-07-16 2014-01-23 Sony Corporation Managing multi-threaded operations in a multimedia authoring environment

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103618802A (zh) * 2013-12-12 2014-03-05 中山爱科数字科技股份有限公司 一种健康信息服务集成系统及方法
CN106874461A (zh) * 2017-02-14 2017-06-20 北京慧正通软科技有限公司 一种工作流引擎支持多数据源配置安全访问系统及方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
企业级应用松耦合数据同步集成关键技术研究;彭永勇等;《信息与电脑(理论版)》;20170323;第56-60页 *

Also Published As

Publication number Publication date
CN107463663A (zh) 2017-12-12

Similar Documents

Publication Publication Date Title
CN108536761B (zh) 报表数据查询方法及服务器
US7900190B2 (en) Business object templates
CN107526645B (zh) 一种通信优化方法及系统
CN110245089A (zh) 压力测试方法、装置、设备及计算机可读存储介质
US12014248B2 (en) Machine learning performance and workload management
US20200356607A1 (en) Case leaf nodes pointing to business objects or document types
US11212175B2 (en) Configuration management for cloud storage system and method
CN107463663B (zh) 一种轻量级多数据源访问方法
CN105847332A (zh) 桌面虚拟化方法、客户端设备和服务端设备
EP2453368B1 (en) Custom web services data link layer
CN109639598A (zh) 基于微服务的请求处理方法、服务器、存储介质及装置
US10089085B2 (en) Versioning for configurations of reusable artifacts
US10768974B2 (en) Specifying an order of a plurality of resources in a transaction according to distance
US20110082845A1 (en) Dynamic rule creation and caching
CN106484826A (zh) 一种操作数据库的方法及装置
CN116302708A (zh) 基于负载均衡的数据备份方法、装置、设备及存储介质
CN107515866A (zh) 一种数据操作方法、装置和系统
WO2018223678A1 (zh) 一种数据处理方法及处理装置
CN116703258B (zh) 一种分析建模方法
US9411555B2 (en) Systems and methods for creating context sensitive graph topologies based on multidimensional context information
CN107220044A (zh) 基于元模型驱动业务对象的方法和装置
US9286330B2 (en) Migration of data objects
CN105893039A (zh) 一种利用编写实体类特性从而实现简单数据库的通用方法
CN110457345A (zh) 数据库读取方法、装置及计算机可读存储介质
WO2015192796A1 (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: 20200330

Address after: 250100 No. 1036 Tidal Road, Jinan High-tech Zone, Shandong Province, S01 Building, Tidal Science Park

Applicant after: Tidal Cloud Information Technology Co.,Ltd.

Address before: 250100 Ji'nan science and technology zone, Shandong high tide Road, No. 1036 wave of science and Technology Park, building S06

Applicant before: SHANDONG INSPUR CLOUD SERVICE INFORMATION TECHNOLOGY Co.,Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder

Address after: 250100 No. 1036 Tidal Road, Jinan High-tech Zone, Shandong Province, S01 Building, Tidal Science Park

Patentee after: Inspur cloud Information Technology Co., Ltd

Address before: 250100 No. 1036 Tidal Road, Jinan High-tech Zone, Shandong Province, S01 Building, Tidal Science Park

Patentee before: Tidal Cloud Information Technology Co.,Ltd.

CP01 Change in the name or title of a patent holder