CN114254032A - 分布式共享连接的资产静态数据采集方法及系统 - Google Patents
分布式共享连接的资产静态数据采集方法及系统 Download PDFInfo
- Publication number
- CN114254032A CN114254032A CN202210174272.8A CN202210174272A CN114254032A CN 114254032 A CN114254032 A CN 114254032A CN 202210174272 A CN202210174272 A CN 202210174272A CN 114254032 A CN114254032 A CN 114254032A
- Authority
- CN
- China
- Prior art keywords
- connection
- pool
- data source
- reusable
- idle
- 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.)
- Granted
Links
- 230000003068 static effect Effects 0.000 title claims abstract description 59
- 238000000034 method Methods 0.000 title claims abstract description 40
- 239000000523 sample Substances 0.000 claims abstract description 80
- 230000006378 damage Effects 0.000 claims description 11
- 238000013480 data collection Methods 0.000 claims description 11
- 238000012423 maintenance Methods 0.000 abstract description 2
- 238000007726 management method Methods 0.000 description 13
- 238000004891 communication Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 230000008030 elimination Effects 0.000 description 5
- 238000003379 elimination reaction Methods 0.000 description 5
- 238000011084 recovery Methods 0.000 description 5
- 238000011161 development Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5011—Pool
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了分布式共享连接的资产静态数据采集方法及系统,该方法包括步骤:S100:分布式部署的探针节点通过连接池客户端向连接池中间件发送连接申请;S200:连接池中间件接收连接申请,获取目标数据源的连接路由信息;S300:连接池中间件根据连接路由信息,将可复用空闲连接或建立的新连接通过连接池客户端分配给探针节点;S400:探针节点获取分配的连接,通过连接池客户端向连接池中间件发送命令原语;S500:连接池中间件接收命令原语并进行静态数据采集。本发明可高效复用闲置连接,且能从数据源实例维度对总连接数进行合理控制;同时,还可实现对外部数据源接入的统一管理,可降低运营维护成本。
Description
技术领域
本发明涉及IT业务支撑领域,具体涉及分布式共享连接的资产静态数据采集方法及系统。
背景技术
当前在信息技术领域,随着计算机和网络技术持续高速发展,企业数字化转型如火如荼,信息系统使用日益广泛,社会经济开始全面数据化,数据已成为企业最重要的核心资产之一。但在实际环境中,企业数据资产往往会爆炸式增长,规模庞大而复杂,分散而不集中,很难有效地对数据进行利用,也就无法通过数据为企业带来更高价值。此外,随着网络安全法、数据安全法等法规的出台,明确了数据所有者应当对敏感、重要数据,尤其是涉及到个人信息安全的数据采取安全防护手段,因此数据治理和安全合规建设亦势在必行。
数据库作为企业静态数据存储的主要载体,其中可能存放有大量的敏感或重要信息,为了进行数据治理和合规建设,须对数据库资产中的静态数据进行梳理和识别定位,并对敏感或重要数据进行分级分类。
数据资产测绘系统,即是这样一款数据识别定位、分级分类的辅助企业进行数据运营治理的管理系统。在系统运行实践中,需要通过探针节点访问外部系统的数据源,对其中存储的企业静态数据进行采集和分析。通常的,这些数据源中往往存放有大量的重要业务数据,承载着众多业务系统的运行。因此,在采集静态数据的过程中,必须保证不会对外部系统的数据源造成负担,影响客户业务的正常使用。
系统和数据源的交互,依赖于双方之间建立安全且快速有效的访问连接。而对访问连接进行合理有效地控制,有助于保持数据源的稳定负载和运行效率。为了降低静态数据采集操作对外部数据源的影响,需要从多方面实现。不仅需要限制探针节点对外部数据源的同时最大连接数量,还应当控制探针不会频繁建立和销毁连接。在上述前提下,为了尽可能提高采集效率,高效利用每个建立的访问连接也是十分必要的。
目前,在数据库的连接数量控制上,一方面可以在数据库实例级别通过配置限制整个实例的最大访问连接数,或者在访问用户级别限制该用户的最大访问连接数,避免因局部用户不受限的大量数据连接导致数据库实例资源被消耗殆尽,影响到其他用户的正常业务访问操作。另一方面,应用客户端在使用驱动程序访问数据库时,访问驱动往往会通过建立数据访问连接池来进行数据通信。
但目前系统探针节点当前直接访问外部数据源的方式,具有一些弊端,不仅体现在访问连接数控制方面,也体现在网络策略管理方面。
从实例级别限制最大访问连接数量,虽然可以保证资产数据源的连接消耗,但可能存在单个应用客户端挤占其它应用连接资源,导致其它应用业务功能无法正常运行。从用户级别限制最大连接数量,一定程度上能够避免不受控制的连接申请。但是,不是所有的资产数据源都可以细粒度的限制到具体用户上。此外,和前述限制实例最大连接数量方法一样,这两种方法都需要修改资产数据源的配置,一来无法实时生效,二来客户的资产数据源可能有成百上千个,逐个配置的可操作性太低。
传统的数据库连接池,往往只能在应用进程内部有效,无法做到跨应用共享连接,即使在连接池中存在闲置的数据库连接,这些连接也无法被其它需要的应用程序使用,造成资源的浪费。
另一方面,传统连接池一般通过连接字符串来对连接进行分组。一个资产数据源的实例中,可能存在多个数据库或多个用户。使用传统连接池,针对一个资产数据源的连接,一旦连接串不同,如指定了不同的数据库,或使用了不同的账号,或变更了其它的参数,那么其建立的数据库连接就会被划分到不同的连接池中,无法从资产数据源实例的维度上对连接资源进行控制,不能评估出底层数据库真正的连接数量。
此外,随着接入的外部数据源不断增多,网络策略管理就越复杂。每增加一个外部数据源,就需要开通该数据源到所有探针节点的网络通信策略;而如果增加探针节点,亦需如此开通到所有外部数据源的网络通信策略。如此,由于缺少统一的数据通信出入口,导致网络策略管理过于复杂。
发明内容
为了解决背景技术中提出的技术问题,本发明提供了分布式共享连接的资产静态数据采集方法及系统。
本发明通过引入分布式连接池中间件,使得探针节点在对外部数据源进行数据采集时,可以高效复用闲置连接,且能从数据源实例维度对总连接数进行合理控制。同时,连接池中间件作为探针节点访问外部数据源的代理组件,可以实现对外部数据源接入的统一管理,降低了运营维护成本。
本发明提供的分布式共享连接的资产静态数据采集方法,包括步骤:
S100:分布式部署的探针节点通过连接池客户端向连接池中间件发送携带目标数据源连接配置信息的连接申请;
S200:连接池中间件接收连接申请,从目标数据源连接配置信息获取目标数据源的连接路由信息;
S300:连接池中间件根据连接路由信息,在其内部的多层级数据源连接池中查找目标数据源的可复用空闲连接,当存在可复用空闲连接,将可复用空闲连接通过连接池客户端分配给探针节点;当不存在可复用空闲连接,则建立新连接并通过连接池客户端分配给探针节点;
S400:探针节点获取分配的连接,通过连接池客户端向连接池中间件发送静态数据采集的命令原语;
S500:连接池中间件解析命令原语并在目标数据源中进行静态数据采集,采集的静态数据返回给探针节点;同时将该分配的连接作为空闲连接放回多层级数据源连接池。
在一些具体实施方式中,步骤S300进一步包括:
S310:连接池中间件根据连接路由信息,在其内部的多层级数据源连接池中查找与连接路由信息匹配的二级子池,判断是否存在可复用空闲连接;若存在,执行子步骤S320;否则,执行子步骤S330;
S320:将可复用空闲连接分配给探针节点,执行步骤S400;
S330:判断目标数据源所属一级父池是否已满,若未满,执行子步骤S340;否则,执行子步骤S350;
S340:与目标数据源建立新连接并分配给探针节点,之后执行步骤S400;
S350:判断与目标数据源属于同一数据源实例的一级父池中其它二级子池是否存在不可复用空闲连接;若存在,执行子步骤S360;否则,执行子步骤S370;
S360:销毁一个不可复用空闲连接,之后执行子步骤S340;
S370:连接申请加入请求等待队列,在等待未超时时,一旦有已分配连接被释放并回收,则判断该被回收连接是否可复用,若可复用,将其分配给探针节点;否则,执行步骤S360;
S380:在等待超时,仍未有已分配连接被释放并回收,则本次连接申请失败。
在一些具体实施方式中,子步骤S360中所述销毁的具体实施为:
当与目标数据源属于同一数据源实例的一级父池存在多个不可复用空闲连接,销毁闲置时间最长的一个不可复用空闲连接。
在一些具体实施方式中,子步骤S360中所述销毁的具体实施为:
当与目标数据源属于同一数据源实例的一级父池存在多个不可复用空闲连接,选择数据源连接数量大于1的二级子池中的一个不可复用空闲连接进行销毁。
在一些具体实施方式中,上述资产静态数据采集方法中,根据等待时长将请求等待队列动态划分为不同调度优先权等级,对各调度优先权等级内的连接申请,按照先来先服务原则进行调度。
本发明提供的分布式共享连接的资产静态数据采集系统,包括分布式部署的探针节点、连接池客户端和连接池中间件;
所述探针节点用来通过连接池客户端向连接池中间件发送携带目标数据源连接配置信息的连接申请;用来获取分配的连接,通过连接池客户端向连接池中间件发送静态数据采集的命令原语;
所述连接池中间件用来接收连接申请,从目标数据源连接配置信息获取目标数据源的连接路由信息;用来根据连接路由信息,在其内部的多层级数据源连接池中查找目标数据源的可复用空闲连接,当存在可复用空闲连接,将可复用空闲连接通过连接池客户端分配给探针节点;当不存在可复用空闲连接,则建立新连接并通过连接池客户端分配给探针节点;用来件解析命令原语并在目标数据源中进行静态数据采集,采集的静态数据返回给探针节点;同时将该分配的连接作为空闲连接放回多层级数据源连接池。
在一些具体实施方式中,连接池中间件给探针节点分配连接,进一步包括:
连接池中间件从其内部的多层级数据源连接池中查找与连接路由信息匹配的二级子池,当该二级子池中存在可复用空闲连接,则分配给探针节点;
当该二级子池中不存在可复用空闲连接且目标数据源所属一级父池未满,则建立新连接并分配给探针节点;
当该二级子池中不存在可复用空闲连接且目标数据源所属一级父池已满,且与目标数据源属于同一数据源实例的一级父池中其它二级子池存在不可复用空闲连接,销毁一个不可复用空闲连接,再建立新连接并分配给探针节点;
当该二级子池中不存在可复用空闲连接且目标数据源所属一级父池已满,且与目标数据源属于同一数据源实例的一级父池中其它二级子池也存在不可复用空闲连接,将连接申请加入请求等待队列;
在等待中,一旦有已分配连接被回收,且该被回收连接为可复用,将其分配给探针节点;当该被回收连接为不可复用,销毁该被回收连接,再建立新连接并分配给探针节点;
当等待超时,仍未有已分配连接被并回收,则本次连接申请失败。
在一些具体实施方式中,销毁连接的具体实施为:
当与目标数据源属于同一数据源实例的一级父池存在多个不可复用空闲连接,销毁闲置时间最长的一个不可复用空闲连接。
在一些具体实施方式中,销毁连接的具体实施为:
当与目标数据源属于同一数据源实例的一级父池存在多个不可复用空闲连接,选择数据源连接数量大于1的二级子池中的一个不可复用空闲连接进行销毁。
在一些具体实施方式中,资产静态数据采集系统中,根据等待时长将请求等待队列动态划分为不同调度优先权等级,对各调度优先权等级内的连接申请,按照先来先服务原则进行调度。
与现有技术相比,本发明具有如下特点和有益效果:
(1)和现有静态数据采集技术相比,本发明支持在分布式部署数据探针节点的情况下共享空闲的数据源连接,允许跨集群节点复用连接,提高了数据源连接的总体利用率,减少了连接建立、销毁的频率,降低了外部数据源的负担。
(2)本发明使用连接池中间件统一管理物理数据源连接,支持从数据源实例维度限制物理连接的同时最大连接数量,保持对资产数据源的连接负载可控;同时连接池中间件统一了连接出入口,降低了探针数据采集的网络策略管理复杂度。
(3)本发明公开的连接池中间件,结合空闲连接淘汰算法和等待请求调度算法,可提高连接池中数据源连接的复用效率和连接获取的请求效率,进而提高了数据采集的整体性能。
附图说明
图1 为具体实施方式中连接池的架构示意图;
图2为具体实施方式中静态数据采集的流程图。
具体实施方式
下面将结合附图对本发明的原理和具体实施方式进行详细描述。显然,所描述的具体实施方式只用于解释而非限定本发明保护范围,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他具体实施方式,都属于本发明保护的范围。
参见图1,所示为本具体实施方式所采用的连接池架构,连接池包括连接池客户端和连接池中间件。连接池客户端包括用户访问接口模块和数据通信接口模块,其原理与开发语言、平台无关,但具体实现可能与开发语言、平台相关。
用户访问接口模块是连接池客户端调用方的直接交互接口,不仅提供外部系统的资产数据源连接的获取和释放方法,还封装有资产数据源的基础数据访问操作方法,如执行数据查询、数据修改等。资产数据源连接的获取和释放,仅在逻辑层面上表示探针节点获取和释放了一个数据源连接,而非真正执行数据源连接的建立和销毁操作。真正的数据源连接管理是由连接池中间件执行,此过程对探针节点透明。
数据通信接口模块负责通过远程过程调用(RPC)与连接池中间件交互。RPC框架优选使用gRPC,gRPC使用HTTP/2协议,原生支持TLS安全通信,且支持单向、双向流式通信,数据传输性能相较于WebAPI有较大提高,同时相较其他RPC框架,其通过protobuf定义RPC接口,保留了较强的通用性和扩展性。
连接池中间件包括通信解析模块、线程处理模块和连接管理模块。通信解析模块解析来自连接池客户端的远程过程调用请求(RPC请求),负责和连接池客户端通信,接收连接池客户端发出的请求,并基于连接池客户端请求解析命令原语,并执行后续的命令调用处理流程。和连接池客户端一致,RPC框架优选使用gRPC。
线程处理模块支撑连接池中间件内部的多线程调度,主要负责通过线程同步机制处理多线程环境下的共享数据争用。连接池中间件不限制访问客户端的数量,可能存在多个客户端同时向连接池中间件发起请求,故连接池中间件应原生支持多线程访问。线程处理模块通过读写锁、同步事件、信号量等线程同步机制处理多线程环境下的共享数据争用和事件通知,如复数客户端同时请求获取某资产数据源的连接,线程处理模块将保证连接池中该资产的连接数量计算和连接分发正确无误。
连接管理模块是连接池中间件的核心模块,其主体为一个多层级数据源连接池,负责物理数据源连接的全生命周期管理,包括数据源的连接调度、连接回收、定时销毁等过程。
上述多层级数据源连接池,其内部包括维护资产数据源实例级别连接数量的一级父池,以及存放真实物理数据源连接的二级子池。一级父池依据资产数据源的类型、IP地址、端口信息从资产实例级别对连接进行分组;二级子池除以上信息外,还会根据库名、用户名等影响连接是否可复用的其他配置信息对数据连接做二次分组。
二级子池在建立和销毁物理数据源连接时,不会启用ADO.NET或JDBC等数据源访问驱动程序自身的连接池功能,确保数据源连接完全由连接池中间件控制,即连接池中间件建立连接时仅新创建一个物理连接,销毁连接时关闭该物理连接。
连接池中间件不限制其所能管理的资产数据源类型,不论是关系数据库如Oracle、MySQL、PostgreSQL等,缓存数据库如Redis,大数据组件如Hive、HBase,亦或是文件系统如FTP、SFTP。只要该数据源符合规范,提供有且仅有一个数据源连接的创建接口和销毁接口,并可区分数据源连接的复用规则,即可接入连接池中间件,由连接池中间件统一管理。
连接池中间件可以有效控制建立的物理数据源连接数量。接入外部系统访问的是连接池中间件,再由连接池中间件建立真正的物理数据源连接,故可以在连接池中间件中统一管理数据源连接,达到限制分布式系统访问数据源连接数量和复用空闲连接的目的。
连接池中间件将接入系统和真正的物理数据源解耦,可以减少连接池中间件接入方的数据源访问复杂度,通过连接池中间件,使用一套封装客户端接口,即可完成对所有支持类型资产数据源的访问。
为避免在数据采集过程中对资产数据源造成较大负担,影响其外部业务的正常运行,同时兼顾采集效率,本发明静态数据采集方法及系统中引入上述连接池中间件,通过连接池中间件统一管理数据源连接,在限制资产最大连接数的同时,高效复用现有空闲连接。
本发明中探针节点分布式部署,即每个探针节点通过连接池客户端注册和接入某指定连接池中间件实例,并通过连接池客户端的用户访问接口模块从连接池中间件获取可访问数据源连接。被探针节点获取的数据源连接仅是连接池中间件中真正物理数据源连接的逻辑封装,其本身是作为通信代理角色存在的,并未直接与数据源之间进行通信。
本发明探针节点使用逻辑连接,向连接池中间件发送数据查询的命令原语,连接池中间件解析命令原语,通过对应的真正物理连接访问目标外部数据源,采集所需静态数据,并将目标数据返回给探针节点。
参见图2,本具体实施方式中的静态数据采集方法基于上述连接池框架实现,主要包括如下具体步骤:
S100:探针节点通过连接池客户端向连接池中间件发送携带目标数据源连接配置信息的连接申请;其中探针节点分布式部署。
本发明中连接配置信息至少包括连接路由信息、认证信息、控制信息,连接路由信息一般包括目标数据源的类型、IP、端口、库名、用户名等;认证信息一般为可对连接池客户端进行认证的信息,例如认证密码或密钥配置文件等;控制信息一般包括连接超时时间、命令执行超时时间等。
本发明中连接池客户端的用户访问接口模块,其用来将探针节点发送的连接申请进行封装,之后再由数据通信接口模块发送给连接池中间件。
S200:连接池中间件接收连接申请,从目标数据源连接配置信息获取目标数据源的连接路由信息。
S300:连接池中间件根据连接路由信息,在其内部的多层级数据源连接池中查找目标数据源的可复用空闲连接,当存在可复用空闲连接,将可复用空闲连接通过连接池客户端分配给探针节点;当不存在可复用空闲连接,则建立新连接并通过连接池客户端分配给探针节点。
为保证满足限制资产同时最大连接数和高效采集的目标,连接池中间件基于下述规则为探针节点分配数据源连接:
连接池中间件从其内部的多层级数据源连接池中查找与连接路由信息匹配的二级子池,当该二级子池中存在可复用空闲连接,则分配给探针节点;
当该二级子池中不存在可复用空闲连接且目标数据源所属一级父池未满,则建立新连接并分配给探针节点;
当该二级子池中不存在可复用空闲连接且目标数据源所属一级父池已满,且与目标数据源属于同一数据源实例的一级父池中其它二级子池存在不可复用空闲连接,销毁一个不可复用空闲连接,再建立新连接并分配给探针节点;
当该二级子池中不存在可复用空闲连接且目标数据源所属一级父池已满,且与目标数据源属于同一数据源实例的一级父池中其它二级子池也存在不可复用空闲连接,将连接申请加入请求等待队列;
在等待中,一旦有已分配连接被回收,且该被回收连接为可复用,将其分配给探针节点;当该被回收连接为不可复用,销毁该该被回收连接,再建立新连接并分配给探针节点;
当等待超时,仍未有已分配连接被并回收,则本次连接申请失败。
具体实施时,按如下分配逻辑执行连接的分配,当然下述分配逻辑仅为一种具体实施方式:
S310:连接池中间件根据连接路由信息,从内部维护的多层级数据源连接池中查找与连接路由信息匹配的二级子池,判断是否存在可复用空闲连接;若存在,则执行子步骤S320;否则,执行子步骤S330。
本发明中,连接路由信息完全一致的数据源连接为可复用连接,以及连接路由信息部分相同但不影响底层物理数据源连接的数据源连接也为可复用连接。
S320:将该可复用空闲连接通过连接池客户端分配给探针节点,结束本步骤,之后执行步骤S400;连接池客户端用来给可复用空闲连接进行逻辑封装并发送给探针节点。
S330:判断目标数据源所属一级父池是否已满,即判断一级父池的当前连接总数是否已达连接数量上限;若未达到,则执行子步骤S340;否则,执行子步骤S350;
S340:连接池中间件执行与目标数据源建立新连接的操作,并通过连接池客户端分配该新连接给探针节点,结束本步骤,之后执行步骤S400。
S350:判断与目标数据源属于同一数据源实例的一级父池中其它二级子池中是否存在不可复用空闲连接;若存在,则执行子步骤S360;否则,执行子步骤S370。
S360:连接池中间件淘汰并销毁其中一个空闲连接,而后执行子步骤S340。
当已达连接池的物理连接数量上限,表明当前一级父池已满。连接池中间件判断该一级父池中无法直接复用连接的二级子池中是否有空闲连接。若一级父池的二级子池存在空闲连接,连接池中间件则根据淘汰算法选择一个空闲连接,将其销毁并新建立一个新的数据源连接,并将该新连接通过连接池客户端分配给探针节点。
当存在多个不可复用空闲连接时,对于选择哪个不可复用空闲连接进行淘汰销毁并不做限制,可以采用随机法,也可以自行设计淘汰算法。考虑到尽量提高连接池中空闲连接的利用率,本具体实施方式中优选采用均分原则或最近最少使用原则对不可复用空闲连接进行淘汰。
S370:当一级父池中其它二级子池中也不存在可复用空闲连接,表明其他二级子池也满,此时无可分配连接,将该连接申请加入等待队列。在等待未超时时,一旦有已分配连接被连接池客户端释放并回收,则判断该被回收连接是否可复用,若可复用,执行步骤S320;否则,执行步骤S360。
S380:在等待已超时,仍未有已分配连接被连接池客户端释放并回收,则连接池中间件通过连接池客户端向探针节点发送超时异常,本次连接请求失败,执行S100重新发送连接请求。
S400:探针节点获取分配的连接,通过连接池客户端向连接池中间件发送静态数据采集的命令原语。在连接池客户端,先包装命令原语,再发送给连接池中间件。
S500:连接池中间件解析命令原语并在目标数据源中进行静态数据采集,采集的静态数据返回给探针节点;同时将该分配的连接作为空闲连接放回多层级数据源连接池。
本具体实施方式中,本步骤进一步包括:
S510:连接池中间件解析命令原语获得分配的连接,基于分配的连接在对应的目标数据源中进行静态数据采集;
S520:连接池中间件将采集的静态数据发送给连接池客户端,连接池客户端对静态数据包装后发送给探针节点;
S530:探针节点接收并存储静态数据,向连接池客户端发送释放该分配的连接指令;
S540:连接池客户端释放该分配的连接,连接池中间件收回该分配的连接,并将该收回连接作为空闲连接重新放回多层级数据源连接池。
在本发明中,连接池中间件会记录连接池内每个空闲连接的回收时间。理论上讲,回收时间越早、闲置时间越长的连接被再次使用的可能性越小,因此在淘汰销毁时,应优先销毁此类空闲连接,此为基于最近最少使用原则的淘汰方法。
同时,在短时间内若有资产数据源实例存在多个不可复用空闲连接,在该实例一级父池中划分出多个二级子池,则应尽可能在淘汰和销毁空闲连接时保持每个二级子池存在至少一个数据源连接,避免频繁出现此类销毁重建情况,以提高空闲连接的复用效率。此为基于均分原则的淘汰方法,具体实施时,可采取如下方法:筛选出数据源连接数量大于1的二级子池,将这些二级子池中一个不可复用空闲连接进行销毁,此时,可采用随机法、基于最近最少使用原则的淘汰法或其他淘汰算法来淘汰并销毁不可复用空闲连接。
作为一种优选方案,连接池中间件为每个资产数据源实例创建相应的请求等待队列,在处理请求等待队列时,连接池中间件引入了动态优先权,使请求的优先级随等待时间的增加而逐渐提高。连接池内置4个等级的调度优先权,包括“正常”、“高于正常”、“优先”、“实时”,自然地,由此划分出4个等待队列,每个请求等待队列内部则按FCFS(先来先服务)方法进行调度。
被释放回连接池的连接将会依据等待请求的优先权,被分发给优先权最高、等待时间最长的请求。在不显式指定的情况下,请求默认加入“正常”级别的等待队列,随着等待时间的增加,请求会逐级提升到“高于正常”和“优先”等待队列。“实时”等待队列仅支持显式指定,处于该优先级的请求总是优先响应。此外,等待队列设置有超时机制,一直等待时间超时,则该请求将被自动从等待队列中移除,并向请求客户端抛出超时异常。
连接池客户端使用完数据源连接后,释放申请的数据源连接,该数据源连接被连接池中间件回收。连接池中间件判断该资产数据源实例是否存在正在等待的连接申请,若存在等待请求,表明该实例已不存在空闲连接,为满足最大效率分发,被释放回收的数据源连接不会放回二级子池,而是直接进行连接分配;若不存在等待请求,则作为空闲连接重新放回连接池等待复用。
连接池中间件具备空闲连接自动销毁能力。通过配置空闲回收时间,当一个数据源连接作为空闲连接被连接池中间件回收后,其不会一直等待复用,而是定期判断是否已达到空闲回收时间,若是,则该数据源连接将从连接池中销毁。
本发明的分布式共享连接的资产静态数据采集系统,包括分布式部署的探针节点、连接池客户端和连接池中间件;所述探针节点用来通过连接池客户端向连接池中间件发送携带目标数据源连接配置信息的连接申请;用来获取分配的连接,通过连接池客户端向连接池中间件发送静态数据采集的命令原语。所述连接池中间件用来接收连接申请,从目标数据源连接配置信息获取目标数据源的连接路由信息;用来根据连接路由信息,在其内部的多层级数据源连接池中查找目标数据源的可复用空闲连接,当存在可复用空闲连接,将可复用空闲连接通过连接池客户端分配给探针节点;当不存在可复用空闲连接,则建立新连接并通过连接池客户端分配给探针节点;用来件解析命令原语并在目标数据源中进行静态数据采集,采集的静态数据返回给探针节点;同时将该分配的连接作为空闲连接放回多层级数据源连接池。
该资产静态数据采集系统为与上述资产静态数据采集方法对应的系统,其原理及具体实施过程同上述资产静态数据采集方法,在此不再赘述。
本领域普通技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,包括如下步骤:(方法的步骤),所述的存储介质,如:ROM/RAM、磁碟、光盘等。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.分布式共享连接的资产静态数据采集方法,其特征是,包括步骤:
S100:分布式部署的探针节点通过连接池客户端向连接池中间件发送携带目标数据源连接配置信息的连接申请;
S200:连接池中间件接收连接申请,从目标数据源连接配置信息获取目标数据源的连接路由信息;
S300:连接池中间件根据连接路由信息,在其内部的多层级数据源连接池中查找目标数据源的可复用空闲连接,当存在可复用空闲连接,将可复用空闲连接通过连接池客户端分配给探针节点;当不存在可复用空闲连接,则建立新连接并通过连接池客户端分配给探针节点;
S400:探针节点获取分配的连接,通过连接池客户端向连接池中间件发送静态数据采集的命令原语;
S500:连接池中间件解析命令原语并在目标数据源中进行静态数据采集,采集的静态数据返回给探针节点;同时将该分配的连接作为空闲连接放回多层级数据源连接池。
2.如权利要求1所述的分布式共享连接的资产静态数据采集方法,其特征是:
步骤S300进一步包括:
S310:连接池中间件根据连接路由信息,在其内部的多层级数据源连接池中查找与连接路由信息匹配的二级子池,判断是否存在可复用空闲连接;若存在,执行子步骤S320;否则,执行子步骤S330;
S320:将可复用空闲连接分配给探针节点,执行步骤S400;
S330:判断目标数据源所属一级父池是否已满,若未满,执行子步骤S340;否则,执行子步骤S350;
S340:与目标数据源建立新连接并分配给探针节点,之后执行步骤S400;
S350:判断与目标数据源属于同一数据源实例的一级父池中其它二级子池是否存在不可复用空闲连接;若存在,执行子步骤S360;否则,执行子步骤S370;
S360:销毁一个不可复用空闲连接,之后执行子步骤S340;
S370:连接申请加入请求等待队列,在等待未超时时,一旦有已分配连接被释放并回收,则判断该被回收连接是否可复用,若可复用,将其分配给探针节点;否则,执行步骤S360;
S380:在等待超时,仍未有已分配连接被释放并回收,则本次连接申请失败。
3.如权利要求2所述的分布式共享连接的资产静态数据采集方法,其特征是:
子步骤S360中,所述销毁具体为:
当与目标数据源属于同一数据源实例的一级父池存在多个不可复用空闲连接,销毁闲置时间最长的一个不可复用空闲连接。
4.如权利要求2所述的分布式共享连接的资产静态数据采集方法,其特征是:
子步骤S360中,所述销毁具体为:
当与目标数据源属于同一数据源实例的一级父池存在多个不可复用空闲连接,选择数据源连接数量大于1的二级子池中的一个不可复用空闲连接进行销毁。
5.如权利要求2所述的分布式共享连接的资产静态数据采集方法,其特征是:
根据等待时长将请求等待队列动态划分为不同调度优先权等级,对各调度优先权等级内的连接申请,按照先来先服务原则进行调度。
6.分布式共享连接的资产静态数据采集系统,其特征是:
包括分布式部署的探针节点、连接池客户端和连接池中间件;
所述探针节点用来通过连接池客户端向连接池中间件发送携带目标数据源连接配置信息的连接申请;用来获取分配的连接,通过连接池客户端向连接池中间件发送静态数据采集的命令原语;
所述连接池中间件用来接收连接申请,从目标数据源连接配置信息获取目标数据源的连接路由信息;用来根据连接路由信息,在其内部的多层级数据源连接池中查找目标数据源的可复用空闲连接,当存在可复用空闲连接,将可复用空闲连接通过连接池客户端分配给探针节点;当不存在可复用空闲连接,则建立新连接并通过连接池客户端分配给探针节点;用来件解析命令原语并在目标数据源中进行静态数据采集,采集的静态数据返回给探针节点;同时将该分配的连接作为空闲连接放回多层级数据源连接池。
7.如权利要求6所述的分布式共享连接的资产静态数据采集系统,其特征是:
所述连接池中间件给探针节点分配连接,进一步包括:
连接池中间件从其内部的多层级数据源连接池中查找与连接路由信息匹配的二级子池,当该二级子池中存在可复用空闲连接,则分配给探针节点;
当该二级子池中不存在可复用空闲连接且目标数据源所属一级父池未满,则建立新连接并分配给探针节点;
当该二级子池中不存在可复用空闲连接且目标数据源所属一级父池已满,且与目标数据源属于同一数据源实例的一级父池中其它二级子池存在不可复用空闲连接,销毁一个不可复用空闲连接,再建立新连接并分配给探针节点;
当该二级子池中不存在可复用空闲连接且目标数据源所属一级父池已满,且与目标数据源属于同一数据源实例的一级父池中其它二级子池也存在不可复用空闲连接,将连接申请加入请求等待队列;
在等待中,一旦有已分配连接被回收,且该被回收连接为可复用,将其分配给探针节点;当该被回收连接为不可复用,销毁该被回收连接,再建立新连接并分配给探针节点;
当等待超时,仍未有已分配连接被并回收,则本次连接申请失败。
8.如权利要求7所述的分布式共享连接的资产静态数据采集系统,其特征是:
所述销毁具体为:
当与目标数据源属于同一数据源实例的一级父池存在多个不可复用空闲连接,销毁闲置时间最长的一个不可复用空闲连接。
9.如权利要求7所述的分布式共享连接的资产静态数据采集系统,其特征是:
所述销毁具体为:
当与目标数据源属于同一数据源实例的一级父池存在多个不可复用空闲连接,选择数据源连接数量大于1的二级子池中的一个不可复用空闲连接进行销毁。
10.如权利要求7所述的分布式共享连接的资产静态数据采集系统,其特征是:
根据等待时长将请求等待队列动态划分为不同调度优先权等级,对各调度优先权等级内的连接申请,按照先来先服务原则进行调度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210174272.8A CN114254032B (zh) | 2022-02-25 | 2022-02-25 | 分布式共享连接的资产静态数据采集方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210174272.8A CN114254032B (zh) | 2022-02-25 | 2022-02-25 | 分布式共享连接的资产静态数据采集方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114254032A true CN114254032A (zh) | 2022-03-29 |
CN114254032B CN114254032B (zh) | 2022-05-06 |
Family
ID=80797007
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210174272.8A Active CN114254032B (zh) | 2022-02-25 | 2022-02-25 | 分布式共享连接的资产静态数据采集方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114254032B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114422575A (zh) * | 2022-03-30 | 2022-04-29 | 北京奥星贝斯科技有限公司 | 处理网络请求的方法和装置 |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040088413A1 (en) * | 2002-11-04 | 2004-05-06 | Bhogi Sankara R. | Dynamically configurable resource pool |
CN103155524A (zh) * | 2010-08-05 | 2013-06-12 | 思杰系统有限公司 | 用于在多核系统中的多个核之间共享iip地址的系统和方法 |
CN103886534A (zh) * | 2014-04-07 | 2014-06-25 | 广州市天攀网络科技有限公司 | 一种基于城市服务行业聚合和发展以及应用的服务平台 |
CN104484452A (zh) * | 2014-12-25 | 2015-04-01 | 广东电子工业研究院有限公司 | 一种多元异构关系型数据库连接复用及统一管控方法 |
US9083760B1 (en) * | 2010-08-09 | 2015-07-14 | F5 Networks, Inc. | Dynamic cloning and reservation of detached idle connections |
CN104809247A (zh) * | 2015-05-18 | 2015-07-29 | 北京京东尚科信息技术有限公司 | 数据库连接的分配和回收方法 |
CN106503087A (zh) * | 2016-10-12 | 2017-03-15 | 郑州云海信息技术有限公司 | 一种用于分布式数据访问的数据库中间件 |
CN106815112A (zh) * | 2015-11-27 | 2017-06-09 | 大唐软件技术股份有限公司 | 一种基于深度包检测的海量数据监控系统及方法 |
CN107864056A (zh) * | 2017-11-04 | 2018-03-30 | 公安部第三研究所 | 一种分布式事件采集探针、分布式事件高速采集系统及方法 |
CN109783322A (zh) * | 2018-11-22 | 2019-05-21 | 远光软件股份有限公司 | 一种企业信息系统运行状态的监控分析系统及其方法 |
CN111552934A (zh) * | 2020-04-13 | 2020-08-18 | 中国银联股份有限公司 | 数据库访问方法以及装置 |
CN111581234A (zh) * | 2020-05-09 | 2020-08-25 | 中国银行股份有限公司 | Rac多节点数据库查询方法、装置及系统 |
CN111786896A (zh) * | 2020-06-15 | 2020-10-16 | 中国工商银行股份有限公司 | 一种无侵入限流方法及装置 |
CN112597371A (zh) * | 2020-12-25 | 2021-04-02 | 牧原食品股份有限公司 | 一种基于消息中间件的数据采集系统、方法及装置 |
-
2022
- 2022-02-25 CN CN202210174272.8A patent/CN114254032B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040088413A1 (en) * | 2002-11-04 | 2004-05-06 | Bhogi Sankara R. | Dynamically configurable resource pool |
CN103155524A (zh) * | 2010-08-05 | 2013-06-12 | 思杰系统有限公司 | 用于在多核系统中的多个核之间共享iip地址的系统和方法 |
US9083760B1 (en) * | 2010-08-09 | 2015-07-14 | F5 Networks, Inc. | Dynamic cloning and reservation of detached idle connections |
CN103886534A (zh) * | 2014-04-07 | 2014-06-25 | 广州市天攀网络科技有限公司 | 一种基于城市服务行业聚合和发展以及应用的服务平台 |
CN104484452A (zh) * | 2014-12-25 | 2015-04-01 | 广东电子工业研究院有限公司 | 一种多元异构关系型数据库连接复用及统一管控方法 |
CN104809247A (zh) * | 2015-05-18 | 2015-07-29 | 北京京东尚科信息技术有限公司 | 数据库连接的分配和回收方法 |
CN106815112A (zh) * | 2015-11-27 | 2017-06-09 | 大唐软件技术股份有限公司 | 一种基于深度包检测的海量数据监控系统及方法 |
CN106503087A (zh) * | 2016-10-12 | 2017-03-15 | 郑州云海信息技术有限公司 | 一种用于分布式数据访问的数据库中间件 |
CN107864056A (zh) * | 2017-11-04 | 2018-03-30 | 公安部第三研究所 | 一种分布式事件采集探针、分布式事件高速采集系统及方法 |
CN109783322A (zh) * | 2018-11-22 | 2019-05-21 | 远光软件股份有限公司 | 一种企业信息系统运行状态的监控分析系统及其方法 |
CN111552934A (zh) * | 2020-04-13 | 2020-08-18 | 中国银联股份有限公司 | 数据库访问方法以及装置 |
CN111581234A (zh) * | 2020-05-09 | 2020-08-25 | 中国银行股份有限公司 | Rac多节点数据库查询方法、装置及系统 |
CN111786896A (zh) * | 2020-06-15 | 2020-10-16 | 中国工商银行股份有限公司 | 一种无侵入限流方法及装置 |
CN112597371A (zh) * | 2020-12-25 | 2021-04-02 | 牧原食品股份有限公司 | 一种基于消息中间件的数据采集系统、方法及装置 |
Non-Patent Citations (2)
Title |
---|
FEI LIU: "A Method of Design and Optimization of Database Connection Pool", 《INTELLIGENT HUMAN-MACHINE SYSTEMS AND CYBERNETICS》 * |
孙莹 等: "应用服务器中数据库管理服务模型的构造", 《计算机工程》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114422575A (zh) * | 2022-03-30 | 2022-04-29 | 北京奥星贝斯科技有限公司 | 处理网络请求的方法和装置 |
CN114422575B (zh) * | 2022-03-30 | 2022-07-08 | 北京奥星贝斯科技有限公司 | 处理网络请求的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN114254032B (zh) | 2022-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3799390B1 (en) | Preemptive scheduling based resource sharing use method, system and | |
CN105049268B (zh) | 分布式计算资源分配系统和任务处理方法 | |
US7810098B2 (en) | Allocating resources across multiple nodes in a hierarchical data processing system according to a decentralized policy | |
CN110351384B (zh) | 大数据平台资源管理方法、装置、设备及可读存储介质 | |
US8141130B2 (en) | Automated dissemination of enterprise policy for runtime customization of resource arbitration | |
CN111752965B (zh) | 一种基于微服务的实时数据库数据交互方法和系统 | |
CN112527489B (zh) | 一种任务调度方法、装置、设备及计算机可读存储介质 | |
JPH08286962A (ja) | 処理システム及びオブジェクト活動化をスケジュールする方法 | |
CN109445802A (zh) | 基于容器的私有化Paas平台及其发布应用的方法 | |
JPH1165863A (ja) | 共有資源管理方法 | |
CN109445944A (zh) | 一种基于dpdk的网络数据采集处理系统及其方法 | |
CN106201754A (zh) | 任务信息分析方法及装置 | |
GB2320594A (en) | Dispatching client method calls to parallel execution threads within a server | |
CN111913784B (zh) | 任务调度方法及装置、网元、存储介质 | |
CN114254032B (zh) | 分布式共享连接的资产静态数据采集方法及系统 | |
CN107967175A (zh) | 一种基于多目标优化的资源调度系统及方法 | |
CN109743192A (zh) | 一种容器集群配置管理方法及装置 | |
LU503247B1 (en) | Distributed task scheduling gateway scheduling method based on rate limiting | |
CN1963763A (zh) | 网格环境下动态在线式任务调度系统及其调度方法 | |
CN111240819A (zh) | 一种调度任务的发布系统及方法 | |
WO2024164630A1 (zh) | 基于微内核操作系统的安全监控方法、装置、设备及芯片 | |
JPH09511858A (ja) | Osiエージェントにおける要求の並列実行 | |
Vijayalakshmi et al. | Investigations on job scheduling algorithms in cloud computing | |
CN112583929B (zh) | 基于机载嵌入式实时操作系统的服务管理方法 | |
CN112291320A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right |
Denomination of invention: A method and system for collecting static data of assets through distributed shared connections Granted publication date: 20220506 Pledgee: Bank of Chengdu science and technology branch of Limited by Share Ltd. Pledgor: CHENGDU SIWEI CENTURY TECHNOLOGY Co.,Ltd. Registration number: Y2024980010109 |
|
PE01 | Entry into force of the registration of the contract for pledge of patent right |