CN115344366B - 连接池对象的切换方法、装置、电子设备及可读存储介质 - Google Patents

连接池对象的切换方法、装置、电子设备及可读存储介质 Download PDF

Info

Publication number
CN115344366B
CN115344366B CN202210957018.5A CN202210957018A CN115344366B CN 115344366 B CN115344366 B CN 115344366B CN 202210957018 A CN202210957018 A CN 202210957018A CN 115344366 B CN115344366 B CN 115344366B
Authority
CN
China
Prior art keywords
connection pool
middleware
pool object
switching
initial
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
CN202210957018.5A
Other languages
English (en)
Other versions
CN115344366A (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.)
Zhongdian Jinxin Software Co Ltd
Original Assignee
Zhongdian Jinxin Software 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 Zhongdian Jinxin Software Co Ltd filed Critical Zhongdian Jinxin Software Co Ltd
Priority to CN202210957018.5A priority Critical patent/CN115344366B/zh
Publication of CN115344366A publication Critical patent/CN115344366A/zh
Application granted granted Critical
Publication of CN115344366B publication Critical patent/CN115344366B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • 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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Telephonic Communication Services (AREA)
  • Stored Programmes (AREA)

Abstract

本申请提供了一种连接池对象的切换方法、装置、电子设备及可读存储介质,响应中间件切换事件的触发指令,获取待切换中间件的配置详情信息;若根据配置详情信息确定出连接池中已创建用于调用待切换中间件的目标连接池对象,从将连接池中的目标连接池对象新增至初始连接池对象之后,以使应用服务通过目标连接池对象将服务请求链接至待切换中间件的SDK;并在初始连接池对象完成待处理线程后,将应用服务所使用的连接池对象从初始连接池对象切换为目标连接池对象。这样,能够在应用服务正常运转的情况下,完成应用服务所调用的中间件的切换,可以保证应用服务的连续性,以及提高中间件切换的及时性,避免出现切换延迟的情况。

Description

连接池对象的切换方法、装置、电子设备及可读存储介质
技术领域
本申请涉及计算机技术领域,尤其是涉及一种连接池对象的切换方法、装置、电子设备及可读存储介质。
背景技术
随着分布式系统的不断发展,配置中心在分布式系统中得到了广泛的应用,配置中心可以用于对分布式系统所涉及的各种应用服务进行统一的设置与管理,例如,对应用服务的开启与关闭、应用服务所调用的中间件、应用服务所涉及的应用参数、实例参数以及应用服务对应的服务器的相关参数等方面进行统一的设置与管理。
分布式系统中集成有各种中间件,其中,常用的中间件包括缓存中间件、消息中间件、数据库等。在分布式系统提供应用服务的过程中,一旦出现涉及中间件切换的情况,为了不间断地提供应用服务,保持应用服务的持续性,通常无法及时地对中间件进行切换,需等待请求当前中间件提供的服务彻底处理完成之后,建立调用待切换中间件的连接池对象;因此,在切换中间件的过程中会出现切换延迟的情况。
发明内容
有鉴于此,本申请的目的在于提供一种连接池对象的切换方法、装置、电子设备及可读存储介质,能够在保持应用服务正常运转的情况下,完成应用服务所调用的中间件的切换,以此,既可以保证应用服务的连续性,又可以提高中间件切换的及时性,避免出现中间件切换延迟的现象。
本申请实施例提供了一种连接池对象的切换方法,所述切换方法包括:
响应于中间件切换事件的触发指令,获取待切换中间件的配置详情信息;
根据所述配置详情信息,确定连接池中是否已创建所述待切换中间件对应的目标连接池对象;其中,应用服务通过所述目标连接池对象调用所述待切换中间件;
若是,从所述连接池中确定出用于调用所述待切换中间件的目标连接池对象,并新增所述目标连接池对象至初始连接池对象之后,以使所述应用服务通过所述目标连接池对象将服务请求链接至所述待切换中间件的软件开发工具包SDK;
在所述初始连接池对象完成调用初始中间件的待处理线程后,将所述应用服务所使用的连接池对象从所述初始连接池对象切换为所述目标连接池对象。
在一种可能的实施方式中,在所述根据所述配置详情信息,确定连接池中是否已创建所述待切换中间件对应的目标连接池对象的步骤之后,所述切换方法还包括:
若否,根据所述配置详情信息,为所述应用服务创建用于调用所述待切换中间件的目标连接池对象至所述初始连接池对象之后,以使所述应用服务通过所述目标连接池对象将服务请求链接至所述待切换中间件的SDK。
在一种可能的实施方式中,所述在所述初始连接池对象完成调用初始中间件的待处理线程后,将所述应用服务所使用的连接池对象从所述初始连接池对象切换为所述目标连接池对象,包括:
设置定时线程实时监测所述初始连接池对象是否存在未完成待处理线程;
若否,确定所述初始连接池对象已完成调用初始中间件的待处理线程,将所述应用服务所使用的连接池对象从所述初始连接池对象切换为所述目标连接池对象,并关闭所述初始连接池对象;
若是,实时监测直至所述初始连接池对象完成调用初始中间件的待处理线程为止,确定所述初始连接池对象已完成待处理线程,将所述应用服务所使用的连接池对象从所述初始连接池对象切换为所述目标连接池对象,并关闭所述初始连接池对象。
在一种可能的实施方式中,所述响应于中间件切换事件的触发指令,获取待切换中间件的配置详情信息,包括:
响应于中间件切换事件的触发指令,利用配置中心的SDK从注册中心中获取配置详情信息,其中,所述配置详情信息由所述配置中心具有的管控平台下发。
在一种可能的实施方式中,所述响应于中间件切换事件的触发指令,包括:
响应于业务人员所下发的切换指令;和/或,
在监测到所述应用服务发生故障的情况下,生成中间件切换事件的触发指令。
在一种可能的实施方式中,所述配置详情信息包括:变更数据源信息、消息中间件信息、缓存中间件信息、应用服务信息、服务器信息以及连接池相关信息中的一种或多种。
本申请实施例还提供了一种连接池对象的切换装置,所述切换装置包括:
信息获取模块,用于响应于中间件切换事件的触发指令,获取待切换中间件的配置详情信息;
连接池对象确定模块,用于根据所述配置详情信息,确定连接池中是否已创建所述待切换中间件对应的目标连接池对象;其中,应用服务通过所述目标连接池对象调用所述待切换中间件;
连接池对象新增模块,用于若是,从所述连接池中确定出用于调用所述待切换中间件的目标连接池对象,并新增所述目标连接池对象至初始连接池对象之后,以使所述应用服务通过所述目标连接池对象将服务请求链接至所述待切换中间件的软件开发工具包SDK;
连接池对象切换模块,用于在所述初始连接池对象完成调用初始中间件的待处理线程后,将所述应用服务所使用的连接池对象从所述初始连接池对象切换为所述目标连接池对象。
在一种可能的实施方式中,所述切换装置还包括连接池对象创建模块,所述连接池对象创建模块用于:
若否,根据所述配置详情信息,为所述应用服务创建用于调用所述待切换中间件的目标连接池对象至所述初始连接池对象之后,以使所述应用服务通过所述目标连接池对象将服务请求链接至所述待切换中间件的SDK。
在一种可能的实施方式中,所述连接池对象切换模块在用于在所述初始连接池对象完成调用初始中间件的待处理线程后,将所述应用服务所使用的连接池对象从所述初始连接池对象切换为所述目标连接池对象时,所述连接池对象切换模块用于:
设置定时线程实时监测所述初始连接池对象是否存在未完成待处理线程;
若否,确定所述初始连接池对象已完成调用初始中间件的待处理线程,将所述应用服务所使用的连接池对象从所述初始连接池对象切换为所述目标连接池对象,并关闭所述初始连接池对象;
若是,实时监测直至所述初始连接池对象完成调用初始中间件的待处理线程为止,确定所述初始连接池对象已完成待处理线程,将所述应用服务所使用的连接池对象从所述初始连接池对象切换为所述目标连接池对象,并关闭所述初始连接池对象。
在一种可能的实施方式中,所述信息获取模块在用于响应于中间件切换事件的触发指令,获取待切换中间件的配置详情信息时,所述信息获取模块用于:
响应于中间件切换事件的触发指令,利用配置中心的SDK从注册中心中获取配置详情信息,其中,所述配置详情信息由所述配置中心具有的管控平台下发。
在一种可能的实施方式中,所述响应于中间件切换事件的触发指令,包括:
响应于业务人员所下发的切换指令;和/或,
在监测到所述应用服务发生故障的情况下,生成中间件切换事件的触发指令。
在一种可能的实施方式中,所述配置详情信息包括:变更数据源信息、消息中间件信息、缓存中间件信息、应用服务信息、服务器信息以及连接池相关信息中的一种或多种。
本申请实施例还提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如上述的连接池对象的切换方法的步骤。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如上述的连接池对象的切换方法的步骤。
本申请实施例提供的连接池对象的切换方法、装置、电子设备及可读存储介质,响应于中间件切换事件的触发指令,获取待切换中间件的配置详情信息;根据所述配置详情信息,确定连接池中是否已创建所述待切换中间件对应的目标连接池对象;若是,从所述连接池中确定出用于调用所述待切换中间件的目标连接池对象,并新增所述目标连接池对象至初始连接池对象之后,以使所述应用服务通过所述目标连接池对象将服务请求链接至所述待切换中间件的软件开发工具包SDK;在所述初始连接池对象完成调用初始中间件的待处理线程后,将所述应用服务所使用的连接池对象从所述初始连接池对象切换为所述目标连接池对象。这样,能够在保持应用服务正常运转的情况下,完成应用服务所调用的中间件的切换,以此,既可以保证应用服务的连续性,又可以提高中间件切换的及时性。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例所提供的一种连接池的切换方法的流程图;
图2为本申请实施例所提供的一种中间件切换过程示意图;
图3为本申请实施例所提供的一种连接池对象的切换装置的结构示意图之一;
图4为本申请实施例所提供的一种连接池对象的切换装置的结构示意图之二;
图5为本申请实施例所提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的每个其他实施例,都属于本申请保护的范围。
经研究发现,分布式系统中集成有各种中间件,其中,常用的中间件包括缓存中间件、消息中间件、数据库等。在分布式系统提供应用服务的过程中,一旦出现涉及中间件切换得情况,为了不间断地提供应用服务,保持应用服务的持续性,通常无法及时地对中间件进行切换,需等待请求当前中间件提供的服务彻底处理完成之后,建立调用待切换中间件的连接池对象;因此,在切换中间件的过程中会出现切换延迟的情况。
基于此,本申请实施例提供了一种连接池的切换方法,既可以保证应用服务的连续性,又可以及时地完成中间件的切换,避免出现中间件切换延迟的现象。
请参阅图1,图1为本申请实施例所提供的一种连接池的切换方法的流程图。如图1中所示,本申请实施例提供的连接池的切换方法,包括:
S101、响应于中间件切换事件的触发指令,获取待切换中间件的配置详情信息。
S102、根据所述配置详情信息,确定连接池中是否已创建所述待切换中间件对应的目标连接池对象。
S103、若是,从所述连接池中确定出用于调用所述待切换中间件的目标连接池对象,并新增所述目标连接池对象至初始连接池对象之后,以使所述应用服务通过所述目标连接池对象将服务请求链接至所述待切换中间件的软件开发工具包SDK。
S104、在所述初始连接池对象完成调用初始中间件的待处理线程后,将所述应用服务所使用的连接池对象从所述初始连接池对象切换为所述目标连接池对象。
本申请实施例所提供的一种连接池的切换方法,响应于中间件切换事件的触发指令,获取待切换中间件的配置详情信息;根据配置详情信息进一步地确认连接池中是否已创建用于调用待切换中间件的目标连接池对象;若是,从所述连接池中确定出用于调用所述待切换中间件的目标连接池对象,并新增目标连接池对象至初始连接池对象之后,以使应用服务通过目标连接池对象将服务请求链接至待切换中间件的软件开发工具包SDK;同时,对当前正在运行的初始连接池对象进行监测,以在初始连接池对象完成调用初始中间件的待处理线程后,将应用服务所使用的连接池对象从初始连接池对象切换为目标连接池对象。这样,能够在保持应用服务正常运转的情况下,完成应用服务所调用的中间件的切换,以此,既可以保证应用服务的连续性,又可以提高中间件切换的及时性,避免出现中间件切换延迟的情况。
配置中心在分布式系统中的使用较为广泛,可以用于对各种应用服务进行统一的设置与管理,例如,对应用服务的开启与关闭、应用服务所涉及的应用参数、实例参数以及应用服务对应的服务器的相关参数等方面进行统一的设置与管理。
中间件是一种独立的系统软件服务程序,分布式系统借助中间件在不同的技术之间实现资源的共享,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。
这里,中间件可以包括缓存中间件、消息中间件以及数据库中间件等,在用户使用应用服务的过程中,可随时地选择调用不同的中间件,示例性的,以银行环境中的应用服务为例,在银行系统中不同银行业务所涉及的应用服务需要调用的数据库并不相同,对于取款业务来说,在为用户办理取款业务时,需要查询该用户的存款信息,此时,则需要调用存款数据库(此时,中间件为存款数据库);而对于贷款业务来说,在为用户办理贷款业务时,需要查询该用户的征信信息,此时,则需要调用征信数据库(此时,中间件为征信数据库)。
应用服务需通过连接池对象来实现中间件的调用,而中间件与连接池对象之间具有一一对应的关系,即,应用服务需通过中间件所关联的连接池对象来调用该中间件;因此,在进行待切换中间件的切换时,首先,便需要根据待切换中间件的配置详情信息来确定该待切换中间件是否具有关联的连接池对象。
在步骤S101中,响应于业务人员对于中间件切换事件的触发指令,获取业务人员具有切换意愿的待切换中间的配置详情信息;其中,所述配置详情信息包括:变更数据源信息、消息中间件信息、缓存中间件信息、应用服务信息、服务器信息以及连接池相关信息中的一种或多种。
这里,由于,在后续方案中需要利用配置详情信息来确定待切换中间件是否预先设置有关联的目标连接池对象,因此,配置详情信息能够准确地表征出待切换中间件所关联的目标连接池对象的属性参数;具体的,配置详情信息可以包括目标连接池对象的名称、所位于的目录以及唯一标识等能够表明目标连接池对象的任意信息。
对于配置中心来说,配置中心具有相应的管控平台,业务人员在具有相应权限的情况下,能够在管控平台中完成对中间件、应用服务以及连接池的统一配置和管理,因此,实际上当存在中间件切换需求时,是通过管控平台来实现配置详情信息的下发的。
在一种实施方式中,步骤S101包括:响应于中间件切换事件的触发指令,利用配置中心的SDK从注册中心中获取配置详情信息,其中,所述配置详情信息由所述配置中心具有的管控平台下发。
这里,在分布式系统中配置中心的SDK与管控平台之间无法直接进行通信,配置中心的SDK与管控平台之间需要借助于注册中心完成信息的下发与接收;注册中心实际上起到了“中转站”的作用,即,管控平台在产生了配置详情信息后,将配置详情信息下发给注册中心;配置中心的SDK仅需从注册中心中获取配置详情信息即可。
该步骤中,当配置中心的SDK监听到中间件切换事件的触发指令时,配置中心的SDK与注册中心之间进行通信连接,从注册中心中获取管控平台所下发的关于待切换中间件的配置详情信息。
为了便于业务人员能够更加及时地生成中间件切换事件的触发指令,为业务人员设置了多种生成中间件切换事件的触发指令的触发方式,即,业务人员可以通过多种不同的触发方式来触发中间件切换事件的触发指令的生成;具体的,业务人员可以结合实际情况选择相应的触发方式;或者,可以根据业务人员的实际操作,来选择合适的触发方式;再或者,可以在适当的时机触发中间件切换事件的触发指令的生成;从而,提高中间件切换的便捷性。
示例性的,业务人员可以通过执行相应操作来触发中间件切换事件的触发指令的生成,例如,业务人员可通过触控中间件切换控件来触发中间件切换事件;或者,业务人员可以通过进入相关界面来触发中间件切换事件的触发指令的生成,例如,当业务人员打开与取款业务相关的界面时,则可以认为业务人员需要办理取款业务,此时,便可触发存款数据库切换事件的触发指令的生成。
在一种实施方式中,所述响应于中间件切换事件的触发指令,包括:响应于业务人员所下发的切换指令。
该步骤中,业务人员在具有切换中间件的切换需求时,可以通过下发切换指令的方式来触发中间件的切换;具体的,业务人员可以通过预先设置的中间件切换控件,来下发针对于中间件的切换指令,从而,触发中间件的切换。
和/或,在监测到所述应用服务发生故障的情况下,生成中间件切换事件的触发指令。
该步骤中,在监测到应用服务发生故障的情况下,可以通过切换中间件的方式来确定发生故障的环节,此时,便可以生成中间件切换事件的触发指令;例如,业务人员正在进行取款业务,此时,业务人员需调用的中间件为存款数据库,若业务人员未能成功调用存款数据库,则说明应用服务存在故障,但是,具体出现故障的环节不得而知,此时,通过切换中间件的方式来确定是当前所调用的中间件的问题,还是应用服务本身的问题;因此,可在监测到应用服务发生故障的情况下,生成中间件切换事件的触发指令。
在连接池中创建有多个连接池对象,每个连接池对象可被用于调用相关联的中间件,因此,若想实现对于待切换中间件的调用,还需确定连接池中是否存在调用待切换中间件所需的目标连接池对象。
在步骤S102中,根据获取到的待切换中间件的配置详情信息来确定连接池中是否已创建了待切换中间件对应的目标连接池对象,即,确定连接池中是否存在调用待切换中间件所需使用到的目标连接池对象。
具体的,可以根据配置详情信息所携带的连接池对象的标识信息来确定连接池中是否已创建了待切换中间件对应的目标连接池对象,若配置详情信息中携带有标识信息,则可以认为连接池中已创建了用于调用待切换中间件的目标连接池对象;相反的,若配置详情信息中未携带有标识信息,则可以认为连接池中未创建同于调用待切换中间件的目标连接池对象。
这里,目标连接池对象为应用服务调用待切换中间件所需使用的连接池对象,待切换中间件与目标连接池对象之间具有一一对应的关系;即,应用服务仅能够通过目标连接池对象来实现待切换中间件的调用。
在步骤S103中,若连接池中已创建了用于调用待切换中间件的目标连接池对象,则可以在应用服务已具有用于调用初始中间件所需的初始连接池对象的基础上,从连接池中确定出用于调用待切换中间件的目标连接池对象,并新增用于调用待切换中间件的目标连接池对象至初始连接池对象之后,以使得应用服务将业务人员针对于待切换中间件所提出的服务请求,通过目标连接池对象链接至待切换中间件的软件开发工具包(SoftwareDevelopment Kit,SDK),以实现对于待切换中间件相应功能的调用。
这里,由于,应用服务此时正在通过初始连接池对象调用初始中间件,业务人员针对于初始中间件所提出服务请求还未全部响应,所以,初始连接池对象中可能会存在未完成的待处理线程,若此时直接进行中间件的切换,会中断响应业务人员针对于初始中间件所提出的服务请求;所以,实际上在切换时并不能够直接将初始连接池对象切换为目标连接池对象,需等到初始连接池对象完成调用初始中间件的待处理线程后,才能够进行中间件的切换。
在步骤S104中,还需对初始连接池对象的待处理线程进行监测,在初始连接池对象完成调用初始中间件的待处理线程后,即,初始连接池对象已完成响应业务人员针对于初始中间件所提出的服务请求,将应用服务所使用的连接池对象从初始连接池对象切换为目标连接池对象,以完成对应用服务所调用的中间件的切换。
在一种实施方式中,步骤S104包括:
步骤1、设置定时线程实时监测所述初始连接池对象是否存在未完成待处理线程。
该步骤中,可通过设置定时线程,实现对于初始连接池对象是否存在未完成待处理线程的实时监测,以及时地实现中间件的切换;具体的,设置定时线程,按照预设时间间隔定时地监测初始连接池对象是否存在未完成的待处理线程。
步骤2、若否,确定所述初始连接池对象已完成调用初始中间件的待处理线程,将所述应用服务所使用的连接池对象从所述初始连接池对象切换为所述目标连接池对象,并关闭所述初始连接池对象。
该步骤中,若初始连接池对象已完成调用初始中间件的待处理线程,此时,便可以将应用服务所使用的初始连接池对象切换为目标连接池对象;同时,关闭初始连接池对象,以免初始连接池对象对目标连接池对象的调用过程造成干扰。
步骤3、若是,实时监测直至所述初始连接池对象完成调用初始中间件的待处理线程为止,确定所述初始连接池对象已完成待处理线程;将所述应用服务所使用的连接池对象从所述初始连接池对象切换为所述目标连接池对象,并关闭所述初始连接池对象。
该步骤中,若初始连接池对象未完成待处理线程,按照预设时间间隔持续对初始连接池对象进行监测,直至初始连接池对象完成全部调用初始中间件的待处理线程为止;此时,便可以将应用服务所使用的初始连接池对象切换为目标连接池对象;同时,关闭初始连接池对象,以免初始连接池对象对目标连接池对象的调用过程造成干扰。
在一种实施方式中,在所述根据所述配置详情信息,确定连接池中是否已创建所述待切换中间件对应的目标连接池对象的步骤之后,所述切换方法还包括:若否,根据所述配置详情信息,为所述应用服务创建用于调用所述待切换中间件的目标连接池对象至所述初始连接池对象之后,以使所述应用服务通过所述目标连接池对象将服务请求链接至所述待切换中间件的SDK。
该步骤中,若连接池中不存在用于调用待切换中间件的目标连接池对象,则需要根据待切换中间的配置详情信息,来创建一个用于调用待切换中间件的目标连接池对象至初始连接池对象之后,以使得应用服务将业务人员针对于待切换中间件所提出的服务请求,通过目标连接池对象链接至待切换中间件的软件开发工具包(Software DevelopmentKit,SDK),以实现对于待切换中间件相应功能的调用。
并在初始连接池对象完成待处理线程后,即,初始连接池对象已完成响应业务人员针对于初始中间件所提出的服务请求,将应用服务所使用的连接池对象从初始连接池对象切换为目标连接池对象,以完成对应用服务所调用的中间件的切换。
作为示例的,请参阅图2,图2为本申请实施例所提供的一种中间件切换过程示意图。如图2所示,步骤201:当业务人员存在中间件切换需求时,可通过配置中心中的管控平台生成待切换控件的配置详情参数;步骤202:管控平台在生成配置详情参数后,将配置详情参数下发至注册中心中;步骤203:配置中心的SDK响应于监听到中间件切换事件的触发,从注册中心中获取管控平台所下发的关于待切换中间件的配置详情参数;步骤204:根据配置详情参数,检查连接池中是否存在调用待切换中间件的目标连接池对象,若存在,同时执行步骤205和步骤207,否则,同时执行步骤206和步骤207;步骤205:为应用服务新增用于调用待切换中间件的目标连接池对象,以使应用服务通过目标连接池对象将服务请求链接至待切换中间件的SDK;步骤206:为应用服务创建用于调用待切换中间件的目标连接池对象,以使应用服务通过新建连接池对象将服务请求链接至待切换中间件的SDK;步骤207:设置定时线程实时监测初始连接池对象是否存在未完成待处理线程;若否,确定初始连接池对象已完成待处理线程,执行步骤209,若是,执行步骤208;步骤208:实时监测直至初始连接池对象完成全部待处理线程为止,确定初始连接池对象已完成待处理线程,执行步骤209;步骤209:切换至目标连接池对象;步骤210:关闭初始连接池对象。
本申请实施例提供的连接池的切换方法,响应于中间件切换事件的触发指令,获取待切换中间件的配置详情信息;根据所述配置详情信息,确定连接池中是否已创建所述待切换中间件对应的目标连接池对象;若是,从所述连接池中确定出用于调用所述待切换中间件的目标连接池对象,并新增所述目标连接池对象至初始连接池对象之后,以使所述应用服务通过所述目标连接池对象将服务请求链接至所述待切换中间件的SDK;在所述初始连接池对象完成调用初始中间件的待处理线程后,将所述应用服务所使用的连接池对象从所述初始连接池对象切换为所述目标连接池对象。这样,能够在保持应用服务正常运转的情况下,完成应用服务所调用的中间件的切换,以此,既可以保证应用服务的连续性,又可以提高中间件切换的及时性。
请参阅图3、图4,图3为本申请实施例所提供的一种连接池对象的切换装置的结构示意图之一,图4为本申请实施例所提供的一种连接池对象的切换装置的结构示意图之二。如图3中所示,所述切换装置300包括:
信息获取模块310,用于响应于中间件切换事件的触发指令,获取待切换中间件的配置详情信息;
连接池对象确定模块320,用于根据所述配置详情信息,确定连接池中是否已创建所述待切换中间件对应的目标连接池对象;其中,应用服务通过所述目标连接池对象调用所述待切换中间件;
连接池对象新增模块330,用于若是,从所述连接池中确定出用于调用所述待切换中间件的目标连接池对象,并新增所述目标连接池对象至初始连接池对象之后,以使所述应用服务通过所述目标连接池对象将服务请求链接至所述待切换中间件的软件开发工具包SDK;
连接池对象切换模块340,用于在所述初始连接池对象完成调用初始中间件的待处理线程后,将所述应用服务所使用的连接池对象从所述初始连接池对象切换为所述目标连接池对象。
进一步的,如图4所示,所述切换装置300还包括连接池对象创建模块350,所述连接池对象创建模块350用于:
若否,根据所述配置详情信息,为所述应用服务创建用于调用所述待切换中间件的目标连接池对象至所述初始连接池对象之后,以使所述应用服务通过所述目标连接池对象将服务请求链接至所述待切换中间件的SDK。
进一步的,所述连接池对象切换模块340在用于在所述初始连接池对象完成调用初始中间件的待处理线程后,将所述应用服务所使用的连接池对象从所述初始连接池对象切换为所述目标连接池对象时,所述连接池对象切换模块340用于:
设置定时线程实时监测所述初始连接池对象是否存在未完成待处理线程;
若否,确定所述初始连接池对象已完成调用初始中间件的待处理线程,将所述应用服务所使用的连接池对象从所述初始连接池对象切换为所述目标连接池对象,并关闭所述初始连接池对象;
若是,实时监测直至所述初始连接池对象完成调用初始中间件的待处理线程为止,确定所述初始连接池对象已完成待处理线程,将所述应用服务所使用的连接池对象从所述初始连接池对象切换为所述目标连接池对象,并关闭所述初始连接池对象。
进一步的,所述信息获取模块310在用于响应于中间件切换事件的触发指令,获取待切换中间件的配置详情信息时,所述信息获取模块310用于:
响应于中间件切换事件的触发指令,利用配置中心的SDK从注册中心中获取配置详情信息,其中,所述配置详情信息由所述配置中心具有的管控平台下发。
进一步的,所述响应于中间件切换事件的触发指令,包括:
响应于业务人员所下发的切换指令;和/或,
在监测到所述应用服务发生故障的情况下,生成中间件切换事件的触发指令。
进一步的,所述配置详情信息包括:变更数据源信息、消息中间件信息、缓存中间件信息、应用服务信息、服务器信息以及连接池相关信息中的一种或多种。
本申请实施例提供的连接池对象的切换装置,响应于中间件切换事件的触发指令,获取待切换中间件的配置详情信息;根据所述配置详情信息,确定连接池中是否已创建所述待切换中间件对应的目标连接池对象;若是,从所述连接池中确定出用于调用所述待切换中间件的目标连接池对象,并新增所述目标连接池对象至初始连接池对象之后,以使所述应用服务通过所述目标连接池对象将服务请求链接至所述待切换中间件的SDK;在所述初始连接池对象完成调用初始中间件的待处理线程后,将所述应用服务所使用的连接池对象从所述初始连接池对象切换为所述目标连接池对象。这样,能够在保持应用服务正常运转的情况下,完成应用服务所调用的中间件的切换,以此,既可以保证应用服务的连续性,又可以提高中间件切换的及时性。
请参阅图5,图5为本申请实施例所提供的一种电子设备的结构示意图。如图5中所示,所述电子设备500包括处理器510、存储器520和总线530。
所述存储器520存储有所述处理器510可执行的机器可读指令,当电子设备500运行时,所述处理器510与所述存储器520之间通过总线530通信,所述机器可读指令被所述处理器510执行时,可以执行如上述图1所示方法实施例中的连接池对象的切换方法的步骤,具体实现方式可参见方法实施例,在此不再赘述。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时可以执行如上述图1所示方法实施例中的连接池对象的切换方法的步骤,具体实现方式可参见方法实施例,在此不再赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

Claims (9)

1.一种连接池对象的切换方法,其特征在于,所述切换方法包括:
响应于中间件切换事件的触发指令,利用配置中心的SDK从注册中心中获取待切换中间件的配置详情信息,其中,所述配置详情信息由所述配置中心具有的管控平台下发;
根据所述配置详情信息,确定连接池中是否已创建所述待切换中间件对应的目标连接池对象;其中,应用服务通过所述目标连接池对象调用所述待切换中间件;所述应用服务通过调用中间件完成用户请求的业务的办理;
若是,从所述连接池中确定出用于调用所述待切换中间件的目标连接池对象,并新增所述目标连接池对象至初始连接池对象之后,以使所述应用服务通过所述目标连接池对象将服务请求链接至所述待切换中间件的软件开发工具包SDK;
在所述初始连接池对象完成调用初始中间件的待处理线程后,在所述应用服务的使用过程中,将所述应用服务所使用的连接池对象从所述初始连接池对象切换为所述目标连接池对象。
2.根据权利要求1所述的切换方法,其特征在于,在所述根据所述配置详情信息,确定连接池中是否已创建所述待切换中间件对应的目标连接池对象的步骤之后,所述切换方法还包括:
若否,根据所述配置详情信息,为所述应用服务创建用于调用所述待切换中间件的目标连接池对象至所述初始连接池对象之后,以使所述应用服务通过所述目标连接池对象将服务请求链接至所述待切换中间件的SDK。
3.根据权利要求1所述的切换方法,其特征在于,所述在所述初始连接池对象完成调用初始中间件的待处理线程后,将所述应用服务所使用的连接池对象从所述初始连接池对象切换为所述目标连接池对象,包括:
设置定时线程实时监测所述初始连接池对象是否存在未完成待处理线程;
若否,确定所述初始连接池对象已完成调用初始中间件的待处理线程,将所述应用服务所使用的连接池对象从所述初始连接池对象切换为所述目标连接池对象,并关闭所述初始连接池对象;
若是,实时监测直至所述初始连接池对象完成调用初始中间件的待处理线程为止,确定所述初始连接池对象已完成待处理线程,将所述应用服务所使用的连接池对象从所述初始连接池对象切换为所述目标连接池对象,并关闭所述初始连接池对象。
4.根据权利要求1所述的切换方法,其特征在于,所述响应于中间件切换事件的触发指令,包括:
响应于业务人员所下发的切换指令;和/或,
在监测到所述应用服务发生故障的情况下,生成中间件切换事件的触发指令。
5.根据权利要求1所述的切换方法,其特征在于,所述配置详情信息包括:变更数据源信息、消息中间件信息、缓存中间件信息、应用服务信息、服务器信息以及连接池相关信息中的一种或多种。
6.一种连接池对象的切换装置,其特征在于,所述切换装置包括:
信息获取模块,用于响应于中间件切换事件的触发指令,利用配置中心的SDK从注册中心中获取待切换中间件的配置详情信息,其中,所述配置详情信息由所述配置中心具有的管控平台下发;
连接池对象确定模块,用于根据所述配置详情信息,确定连接池中是否已创建所述待切换中间件对应的目标连接池对象;其中,应用服务通过所述目标连接池对象调用所述待切换中间件;所述应用服务通过调用中间件完成用户请求的业务的办理;
连接池对象新增模块,用于若是,从所述连接池中确定出用于调用所述待切换中间件的目标连接池对象,并新增所述目标连接池对象至初始连接池对象之后,以使所述应用服务通过所述目标连接池对象将服务请求链接至所述待切换中间件的软件开发工具包SDK;
连接池对象切换模块,用于在所述初始连接池对象完成调用初始中间件的待处理线程后,在所述应用服务的使用过程中,将所述应用服务所使用的连接池对象从所述初始连接池对象切换为所述目标连接池对象。
7.根据权利要求6所述的切换装置,其特征在于,所述切换装置还包括连接池对象创建模块,所述连接池对象创建模块用于:
若否,根据所述配置详情信息,为所述应用服务创建用于调用所述待切换中间件的目标连接池对象至所述初始连接池对象之后,以使所述应用服务通过所述目标连接池对象将服务请求链接至所述待切换中间件的SDK。
8.一种电子设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过所述总线进行通信,所述机器可读指令被所述处理器运行时执行如权利要求1至5任一所述的连接池对象的切换方法的步骤。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求1至5任一所述的连接池对象的切换方法的步骤。
CN202210957018.5A 2022-08-10 2022-08-10 连接池对象的切换方法、装置、电子设备及可读存储介质 Active CN115344366B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210957018.5A CN115344366B (zh) 2022-08-10 2022-08-10 连接池对象的切换方法、装置、电子设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210957018.5A CN115344366B (zh) 2022-08-10 2022-08-10 连接池对象的切换方法、装置、电子设备及可读存储介质

Publications (2)

Publication Number Publication Date
CN115344366A CN115344366A (zh) 2022-11-15
CN115344366B true CN115344366B (zh) 2023-10-31

Family

ID=83952473

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210957018.5A Active CN115344366B (zh) 2022-08-10 2022-08-10 连接池对象的切换方法、装置、电子设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN115344366B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012037163A1 (en) * 2010-09-15 2012-03-22 Oracle International Corporation System and method for connecting an application server with a clustered database
US9098565B1 (en) * 2009-10-08 2015-08-04 Cellco Partnership In-house elegant JDBC connection pooling solution for message broker
CN107045509A (zh) * 2016-02-05 2017-08-15 北京京东尚科信息技术有限公司 一种用于切换数据库连接的系统、设备和方法
CN109474456A (zh) * 2018-09-26 2019-03-15 中国平安人寿保险股份有限公司 配置数据处理方法、装置、计算机设备和存储介质
CN109471896A (zh) * 2018-11-01 2019-03-15 数贸科技(北京)有限公司 数据源信息动态变更方法及装置
CN110086658A (zh) * 2019-04-11 2019-08-02 平安科技(深圳)有限公司 接口切换方法、装置及计算机可读存储介质
CN114422565A (zh) * 2020-10-13 2022-04-29 腾讯科技(深圳)有限公司 一种基于连接池的网络连接管理方法以及相关装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9098565B1 (en) * 2009-10-08 2015-08-04 Cellco Partnership In-house elegant JDBC connection pooling solution for message broker
WO2012037163A1 (en) * 2010-09-15 2012-03-22 Oracle International Corporation System and method for connecting an application server with a clustered database
CN107045509A (zh) * 2016-02-05 2017-08-15 北京京东尚科信息技术有限公司 一种用于切换数据库连接的系统、设备和方法
CN109474456A (zh) * 2018-09-26 2019-03-15 中国平安人寿保险股份有限公司 配置数据处理方法、装置、计算机设备和存储介质
CN109471896A (zh) * 2018-11-01 2019-03-15 数贸科技(北京)有限公司 数据源信息动态变更方法及装置
CN110086658A (zh) * 2019-04-11 2019-08-02 平安科技(深圳)有限公司 接口切换方法、装置及计算机可读存储介质
CN114422565A (zh) * 2020-10-13 2022-04-29 腾讯科技(深圳)有限公司 一种基于连接池的网络连接管理方法以及相关装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
乔扬 ; .基于OCI连接池的TCP/IP轻量级中间件服务器的实现.信息化研究.2009,35(05),全文. *
欧阳君 ; 赵霁 ; .对JDBC连接性能的分析.信息技术.2006,2016(04),全文. *

Also Published As

Publication number Publication date
CN115344366A (zh) 2022-11-15

Similar Documents

Publication Publication Date Title
CN113169952B (zh) 一种基于区块链技术的容器云管理系统
CN106789362B (zh) 一种设备管理方法及网管系统
CN103201724B (zh) 在高可用性虚拟机环境中提供高可用性应用程序
US8051152B2 (en) Isolated application server
CN109656742B (zh) 一种节点异常处理方法、装置及存储介质
CN110765024A (zh) 模拟测试方法、装置、电子设备和计算机可读存储介质
CN106911648B (zh) 一种环境隔离方法及设备
US11687507B2 (en) Termination of database sessions for planned failover
CN113064744A (zh) 任务处理方法、装置、计算机可读介质及电子设备
CN109408232A (zh) 一种基于交易流程的组件化总线调用执行系统
CN109361542A (zh) 客户端的故障处理方法、装置、系统、终端和服务器
CN106789308A (zh) 一种微服务架构可自动伸缩的gis服务装置及其控制方法
CN106375102A (zh) 一种服务注册方法、使用方法及相关装置
JP4517923B2 (ja) オブジェクト救済システム及び方法
CN111464589A (zh) 智能合约处理方法、计算机设备及存储介质
CN111538585A (zh) 一种基于node.js的服务器进程调度方法、系统和装置
CN112598529B (zh) 数据处理方法及装置、计算机可读存储介质、电子设备
CN115344366B (zh) 连接池对象的切换方法、装置、电子设备及可读存储介质
KR100915533B1 (ko) 미복귀 대기 리소스 이용량 결정 방법, 장치 및 컴퓨터 판독 가능한 기록 매체
US20220206836A1 (en) Method and Apparatus for Processing Virtual Machine Migration, Method and Apparatus for Generating Virtual Machine Migration Strategy, Device and Storage Medium
CA2095311A1 (en) Conversation management routine for co-operative processing applications
CN115499322A (zh) 拟态设备集群的管理系统、方法和电子设备
CN115827265A (zh) 事务处理方法、装置、设备和存储介质
CN115766441A (zh) 服务实例发布方法、装置、电子设备及可读存储介质
CN114331445A (zh) 用于海量用户接入的api接口、方法、存储介质及电子设备

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