服务连接的建立方法、装置和存储介质及电子设备与流程

未命名 07-23 阅读:78 评论:0
1.本发明涉及计算机领域,具体而言,涉及一种服务连接的建立方法、装置和存储介质及电子设备。
背景技术
::2.云服务提供商提供了许多云服务,其中的云数据库服务,具有实例多,数据量大,对服务可用性要求高等特点。在正常运营的情况下,云数据库服务中的实例节点会进行重启、迁移、切换等变更处理,或者在异常运营的情况下,比如宕机等,会进行高可用的切换。这些情况下,都会导致用户服务与云数据库服务之间的连接断开,使得用户无法正常使用云数据库提供的服务。3.目前,用户服务与云数据库服务之间的连接方式一般有两种架构,一种是用户服务直接连接到云数据库服务提供的数据库节点,这种架构下,当发生上述情况,用户服务会感知到后端节点的不可用,当变更完成后,用户服务需要通过编辑代码等复杂的操作过程重新恢复连接,才能够继续使用云数据库提供的服务。另一种是用户服务通过中间件连接到云数据库服务提供的数据库节点,这种架构下,当发生上述情况,中间件会将变更(比如操作请求的错误信息)返回给用户服务,用户服务也会感知到后端节点的变化,需要通过编辑代码等复杂的操作过程恢复连接。4.也就是说,如果发生云数据库服务提供给用户服务的数据库节点变更的情况,那么都需要用户服务通过编写代码等复杂的操作过程来手动对服务连接进行恢复,才能继续正常使用云数据库服务,导致云数据库发生变更时对服务连接进行恢复的过程中的操作复杂度较高。5.针对上述的问题,目前尚未提出有效的解决方案。技术实现要素:6.本发明实施例提供了一种服务连接的建立方法、装置和存储介质及电子设备,以至少解决云数据库发生变更时对服务连接进行恢复的过程中的操作复杂度较高的技术问题。7.根据本发明实施例的一个方面,提供了一种服务连接的建立方法,包括:获取管控服务发送给中间服务的第一指示信息,其中,所述第一指示信息用于指示云数据库中的第一数据库节点为待发生变更的数据库节点,所述第一数据库节点用于通过所述第一数据库节点与所述中间服务之间建立的第一连接集合为用户服务提供数据服务,所述管控服务用于对所述第一数据库节点进行变更;响应所述第一指示信息,在所述中间服务上保持所述中间服务与所述用户服务之间的服务连接,并在所述中间服务上保存所述第一连接集合中所包括的服务连接的连接状态;在确定所述第一数据库节点已变更为所述云数据库中的第二数据库节点的情况下,根据所述连接状态在所述中间服务上建立所述中间服务与所述第二数据库节点之间的第二连接集合,其中,所述第二数据库节点用于通过所述第二连接集合代替所述第一数据库节点为所述用户服务提供数据服务。8.根据本发明实施例的另一方面,还提供了一种服务连接的建立装置,包括:第一获取模块,用于获取管控服务发送给中间服务的第一指示信息,其中,所述第一指示信息用于指示云数据库中的第一数据库节点为待发生变更的数据库节点,所述第一数据库节点用于通过所述第一数据库节点与所述中间服务之间建立的第一连接集合为用户服务提供数据服务,所述管控服务用于对所述第一数据库节点进行变更;处理模块,用于响应所述第一指示信息,在所述中间服务上保持所述中间服务与所述用户服务之间的服务连接,并在所述中间服务上保存所述第一连接集合中所包括的服务连接的连接状态;建立模块,用于在确定所述第一数据库节点已变更为所述云数据库中的第二数据库节点的情况下,根据所述连接状态在所述中间服务上建立所述中间服务与所述第二数据库节点之间的第二连接集合,其中,所述第二数据库节点用于通过所述第二连接集合代替所述第一数据库节点为所述用户服务提供数据服务。9.作为一种可选的方案,所述处理模块,包括:第一获取单元,用于从所述中间服务上建立的所述中间服务与所述云数据库所包括的数据库节点之间的服务连接中,获取所述第一连接集合;第二获取单元,用于获取所述第一连接集合中所包括的每个服务连接的目标连接状态;保存单元,用于在所述中间服务上保存具有对应关系的所述第一连接集合中所包括的服务连接与所述目标连接状态。10.作为一种可选的方案,所述第一获取单元,用于:从所述中间服务上建立的所述中间服务与所述云数据库所包括的数据库节点之间的服务连接中,查找为所述第一数据库节点所建立的服务连接作为候选服务连接;从所述候选服务连接中查找执行语句的执行状态为目标执行状态的候选服务连接,得到所述第一连接集合,其中,所述目标执行状态用于指示执行语句具有唯一的执行结果。11.作为一种可选的方案,所述第二获取单元,用于:从所述第一连接集合中所包括的每个服务连接的执行语句中查找连接级的变量;将查找到的具有对应关系的连接级的变量和变量值确定为所述每个服务连接对应的所述目标连接状态。12.作为一种可选的方案,所述第一建立模块,包括:建立单元,用于在所述中间服务上建立所述中间服务与所述第二数据库节点之间的第三服务连接,其中,所述第三服务连接中所包括的初始服务连接与所述第一连接集合中所包括的服务连接一一对应;配置单元,用于将所述第三服务连接中所包括的每个初始服务连接的连接状态配置为对应的所述第一连接集合中所包括的服务连接的连接状态,得到所述第二连接集合。13.作为一种可选的方案,所述装置还包括:第二获取模块,用于在所述根据所述连接状态在所述中间服务上建立所述中间服务与所述第二数据库节点之间的第二连接集合之前,获取所述管控服务发送给所述中间服务的第二指示信息,其中,所述第二指示信息用于指示所述第一数据库节点已变更为所述第二数据库节点;提取模块,用于从所述第二指示信息中提取所述第二数据库节点的节点信息,其中,所述节点信息用于在所述中间服务上建立与所述第二数据库节点之间的所述第二连接集合。14.作为一种可选的方案,所述装置还包括:发送模块,用于在所述中间服务上保存所述第一连接集合中所包括的服务连接的连接状态之后,向所述管控服务发送第三指示信息,其中,所述第三指示信息用于指示允许所述管控服务对所述第一数据库节点进行变更。15.作为一种可选的方案,所述装置还包括:第三获取模块,用于在所述获取管控服务发送给中间服务的第一指示信息之后,获取所述中间服务上接收到的目标操作请求,其中,所述目标操作请求用于请求对所述第一数据库节点执行目标操作;转发模块,用于根据所述目标操作的操作类型转发所述目标操作请求。16.作为一种可选的方案,所述转发模块,包括:第三获取单元,用于从所述目标操作请求中获取所指示的所述目标操作的操作类型为只读操作的第一操作请求;转发单元,用于将所述第一操作请求转发至所述第一数据库节点所对应的只读数据库节点。17.作为一种可选的方案,所述装置还包括:创建模块,用于在将所述第一操作请求转发至所述第一数据库节点所对应的只读数据库节点之前,创建所述第一数据库节点所对应的所述只读数据库节点;第四获取模块,用于从所述第一连接集合中获取连接类型为只读连接的服务连接,得到第三连接集合;第二建立模块,用于在所述中间服务上建立与所述只读数据库节点之间的所述第三连接集合。18.作为一种可选的方案,所述装置还包括:挂起模块,用于在所述从所述目标操作请求中获取所指示的所述目标操作的操作类型为只读类型的第一操作请求之后,将所述目标操作请求中除所述第一操作请求之外的第二操作请求在所述中间服务上挂起;转发模块,用于在所述根据所述连接状态在所述中间服务上建立与所述第二数据库节点之间的第二连接集合之后,将所述第二操作请求转发至所述第二数据库节点。19.根据本发明实施例的又一方面,还提供了一种计算机可读的存储介质,该计算机可读的存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述服务连接的建立方法。20.根据本技术实施例的又一个方面,提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行如以上服务连接的建立方法。21.根据本发明实施例的又一方面,还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,上述处理器通过计算机程序执行上述的服务连接的建立方法。22.在本发明实施例中,云数据库中的数据库节点通过其与中间服务之间建立的连接集合为相应的用户服务提供数据服务,云数据库中的管控服务的一个功能可以是用于对待变更的数据库节点进行变更,当某个数据库节点(比如上述第一数据库节点)为待发生变更的数据库节点时,管控服务发送指示信息(即上述第一指示信息)给中间服务来指示出待发生变更的数据库节点,当在中间服务上获取到上述指示信息时,一方面在中间服务上保持中间服务与待发生变更的数据库节点所服务的用户服务之间的服务连接,另一方面在中间服务上保存待发生变更的数据库节点与中间服务之间的连接集合(即上述第一连接集合)所包括的服务连接的连接状态,当确定了数据库节点的变更完成以及变更后的数据库节点(比如上述第二数据库节点)时,可以使用保存在中间服务上的变更前的服务连接原有的连接状态在中间服务上直接建立与变更后的数据库节点之间的连接集合(比如第二连接集合),从而通过在中间服务上对其与用户服务之间的服务连接的保持以及其与数据库节点之间的服务连接的连接状态转移的过程减少用户对服务连接的操作过程,进而通过在中间服务上对服务连接的处理来自动恢复为用户服务提供的数据服务,并能够保证服务连接能够恢复到原有的连接状态,用户服务可以在对服务连接的中断无感知的情况下直接使用恢复后的服务连接,从而实现了降低云数据库发生变更时对服务连接进行恢复的过程中的操作复杂度的技术效果,进而解决了云数据库发生变更时对服务连接进行恢复的过程中的操作复杂度较高的技术问题。附图说明23.此处所说明的附图用来提供对本发明的进一步理解,构成本技术的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:24.图1是根据本发明实施例的一种可选的服务连接的建立方法的应用环境的示意图;25.图2是根据本发明实施例的一种可选的服务连接的建立方法的流程的示意图;26.图3是根据本发明实施例的一种可选的服务连接的建立方法的示意图一;27.图4是根据本发明实施例的一种可选的服务连接的建立方法的示意图二;28.图5是根据本发明实施例的一种可选的服务连接的建立方法的示意图三;29.图6是根据本发明实施例的一种可选的服务连接的建立方法的示意图四;30.图7是根据本发明可选实施方式的一种可选的服务连接的建立方法的示意图一;31.图8是根据本发明可选实施方式的一种可选的服务连接的建立方法的示意图二;32.图9是根据本发明可选实施方式的一种可选的服务连接的建立方法的示意图三;33.图10是根据本发明实施例的一种可选的服务连接的建立方法的示意图五;34.图11是根据本发明可选实施方式的一种可选的服务连接的建立方法的示意图四;35.图12是根据本发明可选实施方式的一种可选的服务连接的建立方法的示意图五;36.图13是根据本发明实施例的一种可选的服务连接的建立方法的应用场景示意图一;37.图14是根据本发明实施例的一种可选的服务连接的建立方法的应用场景示意图二;38.图15是根据本发明实施例的一种可选的服务连接的建立装置的示意图;39.图16是根据本发明实施例的一种可选的电子设备的结构示意图;40.图17是根据本发明实施例的一种可选的计算机系统的结构示意图。具体实施方式41.为了使本
技术领域
:的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。42.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。43.首先,为方便理解本发明实施例,下面对本发明中所涉及的部分术语或名词进行解释说明:44.云技术(cloudtechnology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。45.云技术(cloudtechnology),基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。46.数据库(database),简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、查询、更新、删除等操作。所谓“数据库”是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。47.数据库管理系统(英语:databasemanagementsystem,简称dbms)是为管理数据库而设计的电脑软件系统,一般具有存储、截取、安全保障、备份等基础功能。数据库管理系统可以依据它所支持的数据库模型来作分类,例如关系式、xml(extensiblemarkuplanguage,即可扩展标记语言);或依据所支持的计算机类型来作分类,例如服务器群集、移动电话;或依据所用查询语言来作分类,例如sql(structuredquerylanguage,结构化查询语言)、xquery;或依据性能冲量重点来作分类,例如最大规模、最高运行速度;亦或其他的分类方式。不论使用哪种分类方式,一些dbms能够跨类别,例如,同时支持多种查询语言。48.云数据库,云厂商提供的数据库服务,拥有高性能、高可靠、高可用、高安全,并且拥有容灾、备份、恢复、监测、迁移等全方位功能。49.数据库服务切换,对于一主一从或者一主多从的数据库服务,当主节点发生宕机、网络不通等导致主节点不能够提供读写服务的情况下,将某个从节点提升为主节点对外提供服务,减少因为主节点不可用导致的服务不可用的时间。50.数据库迁移,对于云数据库服务,客户由于业务的扩张或收缩,需要进行实例的升降级,或者节点机器出现问题,需要将节点进行重启或者从原来的节点上迁移到别的机器上。51.数据库高可用,通过软件对数据库的集群进行管理,当集群主节点发生宕机、网络不可用等问题后,可以快速的进行切换,正常对外进行服务,减少服务不可用的时间,提高服务的可用性。52.服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn(contentdeliverynetwork,基于内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本技术在此不做限制。53.根据本发明实施例的一个方面,提供了一种服务连接的建立方法,可选地,作为一种可选的实施方式,上述服务连接的建立方法可以但不限于应用于如图1所示的环境中。其中,可以但不限于包括用户服务102,中间服务104、第一数据库节点106、第二数据库节点108及管控服务110,其中,第一数据库节点106通过其与中间服务104之间建立的第一连接集合为用户服务102提供数据服务。54.具体过程可如下步骤:步骤s102,管控服务110发送第一指示信息给中间服务104,该第一指示信息用于指示云数据库中的第一数据库节点106为待发生变更的数据库节点;步骤s104-s106,中间服务104保持其与用户服务102之间的服务连接,并保存第一连接集合中所包括的服务连接的连接状态;步骤s108,管控服务110对第一数据库节点106进行变更,第一数据库节点106变更为第二数据库节点108。步骤s110,中间服务104在确定第一数据库节点106已变更为第二数据库节点108的情况下,根据保存的连接状态建立其与第二数据库节点108之间的第二连接集合。第二数据库节点108通过第二连接集合代替第一数据库节点为用户服务102提供数据服务。55.可选地,作为一种可选的实施方式,如图2所示,服务连接的建立方法包括:56.s202,获取管控服务发送给中间服务的第一指示信息,其中,第一指示信息用于指示云数据库中的第一数据库节点为待发生变更的数据库节点,第一数据库节点用于通过第一数据库节点与中间服务之间建立的第一连接集合为用户服务提供数据服务,管控服务用于对第一数据库节点进行变更。57.云数据库通过数据库节点为用户服务提供数据服务,并通过管控服务对数据库节点进行管理和控制。数据库节点通过其与中间服务之间建立的连接集合为中间服务所连接的用户服务提供数据服务。本实施例中提供的服务连接的建立功能可以但不限于部署在中间服务上,也可以但不限于独立部署并对中间服务进行控制来实现服务连接的自动保存和重建的过程。58.需要说明的是,在本实施例中,以提供的服务连接的建立功能部署在中间服务上为例,由中间服务来实现服务连接的自动恢复。其他的部署方式下,服务连接的恢复过程与此类似,在此不再赘述。59.数据库节点与用户服务之间可以但不限于存在两种连接架构,一种连接架构如图3所示,用户服务起初是直接连接到后端云数据库服务的,在这种连接架构下,当数据库节点发生变更,会导致该数据库节点的连接断开,进而导致上层用户服务的不可用。比如:用户服务连接的数据库节点a发生了变更,将变更为数据库节点b,那么用户服务与数据库节点a之间会断开连接。用户服务会感知到数据库节点a的不可用,当变更完成后,需要由用户服务重新创建服务连接,重新连接到数据库节点b上,如果连接修改了变量或者字符集等,还需要恢复每个连接的状态,导致如果用户服务断开了与数据库节点的连接就会需要用户执行复杂的操作才能够重新得到服务,用户体验将会变差。通过本实施例提供的服务连接的建立过程,在这种连接架构下,可以在用户服务和后端数据库节点之间部署中间服务(比如中间件服务proxy),并在proxy上部署服务连接的建立模块,当再发生数据库节点a变更到数据库节点b为用户服务提供数据服务的情况时,可以但不限于由proxy来进行服务连接的自动恢复,从而减轻用户服务的操作压力。60.数据库节点与用户服务之间的另一种连接架构如图4所示,用户服务是通过中间服务(可以是中间件服务proxy)连接到后端云数据库服务的,在这种连接架构下,当数据库节点发生变更,也会导致用户服务与该数据库节点的连接断开,进而导致上层用户服务的不可用。比如:用户服务通过proxy连接的数据库节点a发生了变更,将变更为数据库节点b,那么proxy与数据库节点a之间会断开连接,用户服务与proxy之间也会断开连接。用户服务会感知到数据库节点a的不可用,当变更完成后,需要由用户服务重新创建与proxy之间的服务连接以及proxy与数据库节点b之间的服务连接,才能重新连接到数据库节点b上,如果连接修改了变量或者字符集等,也还需要恢复每个连接的状态,导致如果用户服务断开了与数据库节点的连接就会需要用户执行更加复杂的操作才能够重新得到服务,用户体验将会变得更差。通过本实施例提供的服务连接的建立过程,在这种连接架构下,可以在用户服务和后端数据库节点之间部署的中间服务proxy上部署服务连接的建立模块,当再发生数据库节点a变更到数据库节点b为用户服务提供数据服务的情况时,可以但不限于由proxy来进行服务连接的自动恢复,从而减轻用户服务的操作压力。61.在本实施例中,对数据库节点的变更可以但不限于包括以下种类的变更:数据库服务切换,数据库迁移,数据库高可用等等。62.管控服务的功能可以但不限于为对数据库集群和数据库节点等进行管理和控制,比如:云数据库集群和节点的重启、迁移以及高可用切换等过程均可以由管控服务来进行管理和控制。当有数据库节点待发生上述某种变更时,管控服务在控制变更过程之前会向中间服务发送指示信息来指示出待发生变更的数据库节点。在本实施例中,上述第一指示信息中可以但不限于携带了第一数据库节点的节点地址host来指示出待发生变更的该第一数据库节点。63.在本实施例中,数据库节点可以但不限于以云数据库中的实例节点来实现。当云数据库中的用于提供数据服务的实例节点发生切换,迁移,高可用等变更时,管控服务会将发生变更的实例节点指示给中间服务。64.s204,响应第一指示信息,在中间服务上保持中间服务与用户服务之间的服务连接,并在中间服务上保存第一连接集合中所包括的服务连接的连接状态。65.在本实施例中,当云数据库中的数据库节点发生切换,迁移,高可用等变更时,管控服务会将发生变更的数据库节点指示给中间服务。通过中间服务上对其与用户服务之间的服务连接,以及,其与数据库节点之间的连接集合的维护(包括服务连接的保持和服务连接的连接状态的保存等过程),来使得用户可以对于数据库节点的变更无需感知,也无需操作。或者也可以使得用户可以感知到数据库节点的变更,但无需对服务连接进行任何操作。比如:中间服务可以只是将数据库节点的变更通知给用户,使得用户能够及时获知数据库节点的运行状态。66.在中间服务上可以但不限于通过保持中间服务与用户服务之间的服务连接不断开并继续接收用户服务使用该服务连接发起的对第一数据库节点的操作请求来保持中间服务与用户服务之间的服务连接,在第一数据库节点发生变更的过程中,中间服务不断开其与用户服务之间的服务连接,用户服务一方面依然可以使用该服务连接发起对第一数据库节点的操作请求,另一方面不需要在数据库节点变更后对其与中间服务之间重新进行服务连接,从而避免了用户执行复杂的重连操作,减小了用户的压力,还能够实现对服务连接的快速恢复。67.由于后端数据库节点的服务重启、迁移或者高可用的变更,会导致服务连接环境的变化,从而导致数据库节点为用户服务提供数据服务的服务连接断开,造成用户服务感知到连接闪断的情况。在本实施例中,在后端数据库节点的服务重启、迁移或者高可用时,将原有的连接保存或者保持,再在后端数据库操作完成后,自动进行连接的恢复,从而完成从连接闪断到连接保持再到连接恢复的过程。68.由于用户业务的发展或者正常的云数据库运维需求,可能会需要对云数据库中提供数据服务的数据库节点进行一些变更,比如:数据库节点的迁移、切换、高可用等变更操作中都会导致用户服务对于后端数据库节点的不可用。为了解决这种问题,在本实施例中,提供了服务连接的建立功能,该功能也可以被称为防闪断连接保持功能,防闪断连接保持功能可以但不限于提供给云数据库服务的用户来进行功能的启用和不启用的控制。69.以云数据库mysql集群中数据库节点间的高可用切换为例,如图5所示,如果用户未使用防闪断连接保持功能,在云数据库后端发生了数据库节点的高可用切换后,用户需要等待后端数据库节点切换完成,再去重新创建连接并且恢复连接的状态。这种情况下,需要用户进行以下步骤:首先是连接重试,直至连接成功或者重试超次数限制。然后如果连接成功了,则需要用户重新设置连接名称设置变量(setnames)为latin1,才能使得重新连接后连接状态与就连接的连接状态(连接名称为latin1,即names=latin1)一致。70.在以上的重连过程中,很可能由于有些用户没有能够具有较高技术,用户可能没有在自己的程序里面进行重试,进而导致服务直接不可用。有些用户可能进行了连接重试,但是没有进行连接状态的恢复,可能会导致数据的异常,造成更大的事故。所以为了解决上面的问题,用户可以选择使用防闪断连接保持功能。71.用户使用防闪断连接保持功能后,后端云数据库mysql集群中数据库节点如果发生了高可用切换,中间服务proxy会进行感知,并且将连接状态保持,等后端的服务恢复,再去对新的节点创建连接,并且恢复连接状态。整个过程,用户可能只会感知到服务暂时的卡住,其他无任何感知,也不用做任何操作,大大降低了用户的使用成本,提高了服务的可用性。72.用户可以在云数据库提供的前端界面上对防闪断连接保持功能进行启用和不启用的控制。比如:云数据库提供的前端界面中可以但不限于有数据服务信息和设置的显示界面,如图6所示,在该显示界面上可以有是否启用防闪断功能的选项按钮,用户可以通过控制该按钮来自主选择是否需要启用上述的防闪断连接保持功能。如果用户将选项按钮点击或者拖拽到“是”的状态,则表明用户选择启用防闪断连接保持功能,此种状态下如果发生数据库节点变更的情况,用户将不会感知到服务连接的变化,而是由中间服务来处理连接的维护和恢复过程。如果用户将选项按钮点击或者拖拽到“否”的状态,则表明用户选择不启用防闪断连接保持功能,此种状态下如果发生数据库节点变更的情况,用户将会感知到服务连接的变化,并由用户自己来处理连接的恢复过程。73.中间服务对服务连接进行维护和恢复的过程中,一方面保持其与用户服务之间的服务连接来保证用户服务可以不感知到服务连接的中断。另一方面,中间服务可以对其与待变更的数据库节点之间的服务连接进行维护,不但保存服务连接还可以保存每个服务连接的连接状态,从而使得数据库节点变更后重建的服务连接能够恢复到原有的连接状态。74.作为一种可选的方案,在中间服务上保存第一连接集合中所包括的服务连接的连接状态,包括:75.s11,从中间服务上建立的中间服务与云数据库所包括的数据库节点之间的服务连接中,获取第一连接集合;76.s12,获取第一连接集合中所包括的每个服务连接的目标连接状态;77.s13,在中间服务上保存具有对应关系的第一连接集合中所包括的服务连接与目标连接状态。78.中间服务作为为用户服务和数据库节点间提供连接桥梁的中间件,其上可能同时建立并维护了与不同数据库节点间的服务连接集合,首先从中间服务上建立的全部服务连接中,获取其与待发生变更的第一数据库节点之间建立的第一连接集合。在获取的过程中可以但不限于依据第一数据库节点的节点标识来查找其对应的服务连接构成第一连接集合。或者,中间服务上的服务连接可以直接按照数据库节点与连接集合之间的对应关系来存储,依据第一数据库节点的节点标识可以直接从对应关系中查找到第一连接集合。79.在本实施例中,任何能够体现或者标识出服务连接的状态的信息均可以作为获取到的目标连接状态。比如:连接状态标识,连接执行语句中能够体现出连接状态的语句等等。80.在较少的情况下,也可能会出现某些服务连接的连接状态不稳定的情况。比如:会出现服务连接的执行语句的执行结果不确定的情况,可能会导致该服务连接的连接状态不稳定。对于这种情况,可以依据连接状态的稳定情况对中间服务上建立的与待发生变更的数据库节点之间的服务连接进行一定的筛选,从而保证连接状态稳定的服务连接能够得到自动的重建和状态的恢复。81.作为一种可选的方案,从中间服务上建立的中间服务与云数据库所包括的数据库节点之间的服务连接中,获取第一连接集合,包括:82.s21,从中间服务上建立的中间服务与云数据库所包括的数据库节点之间的服务连接中,查找为第一数据库节点所建立的服务连接作为候选服务连接;83.s22,从候选服务连接中查找执行语句的执行状态为目标执行状态的候选服务连接,得到第一连接集合,其中,目标执行状态用于指示执行语句具有唯一的执行结果。84.在获取第一连接集合的过程中,可以首先将中间服务上为待发生变更的第一数据库节点所建立的全部服务连接作为候选服务连接用来进行筛选。再根据连接状态的稳定性进行筛选。判断连接状态的稳定性的依据可以但不限于包括服务连接的执行语句的执行状态,将执行语句具有唯一的执行结果的执行状态作为目标执行状态,从候选服务连接中筛选出执行语句的执行状态为该目标执行状态的服务连接作为第一连接集合进行连接状态的维护和恢复。从而保证恢复的连接状态是稳定的。85.在服务连接的执行语句中,具有以下情况中的至少之一即可认为该执行语句的执行结果不唯一:86.情况一,执行语句中含有事务。87.情况二,执行语句中含有未删除的prepare语句。88.情况三,执行语句中包含锁,即执行了类似flushtablewithreadlock、locktable的语句。89.情况四,执行语句中含有临时表。90.情况五,执行语句在等待执行结果。91.除了具有上述情况的执行语句外,其他的服务连接均可以被确认为是连接状态稳定的服务连接,即执行语句的执行状态为目标执行状态的候选服务连接。92.对于上述连接状态不稳定的情况,可以通过给定超时时间来等待确认服务连接的连接状态是否能够从不稳定的状态变换为稳定的状态,从而尽可能多的自动对服务连接的状态进行恢复。比如:设置超时时间timeout来持续监测不稳定的服务连接的连接状态的变化,直至不稳定的服务连接的连接状态变为稳定或者达到超时时间。93.上述超时时间可以但不限于从接收到第一指示信息开始计时或者倒计时,或者也可以但不限于从检测到不稳定的服务连接时开始针对每个不稳定的服务连接分别进行超时时间的计时或者倒计时。在本实施例中,超时时间可以但不限于由管控服务通过第一指示信息发送给中间服务进行使用。即第一指示信息中可以但不限于携带了第一数据库节点的节点地址host,以及超时时间timeout(单位秒,简称s)。94.在一个可选的实施方式中,中间服务接收到管控服务发送的第一指示信息后开始对超时时间timeout进行倒计时,并对稳定的服务连接进行筛选,首先获取到候选服务连接,再对候选服务连接的执行语句的执行状态进行确认,对于执行语句的执行状态为上述目标执行状态的候选服务连接,直接进行保存。对于执行语句的执行状态不为上述目标执行状态的候选服务连接,如果timeout》0,则在timeout时间内,继续接收执行状态不为上述目标执行状态的候选服务连接的执行语句,直到执行状态变换为上述目标执行状态或者timeout超时。如果timeout=0或者超时,可以直接对执行状态不为上述目标执行状态的候选服务连接返回报错,并且断开这种服务连接。95.在本实施例中,对于执行语句的执行状态不为目标执行状态的候选服务连接,或者说连接状态不稳定的候选服务连接,可以但不限于向用户服务进行报错,来使用户服务能够自行重建这种服务连接。96.作为一种可选的方案,获取第一连接集合中所包括的每个服务连接的目标连接状态,包括:97.s31,从第一连接集合中所包括的每个服务连接的执行语句中查找连接级的变量;98.s32,将查找到的具有对应关系的连接级的变量和变量值确定为每个服务连接对应的目标连接状态。99.在本实施例中,可以但不限于将执行语句中的连接级的变量作为服务连接的目标连接状态进行保存。保存是可以但不限于保存具有对应关系的连接级的变量和变量值。100.执行语句中的连接级的变量可以但不限于包括系统级的连接变量和用户自定义的连接变量等等。101.s206,在确定第一数据库节点已变更为云数据库中的第二数据库节点的情况下,根据连接状态在中间服务上建立中间服务与第二数据库节点之间的第二连接集合,其中,第二数据库节点用于通过第二连接集合代替第一数据库节点为用户服务提供数据服务。102.在上述步骤s206提供的技术方案中,对于保存的连接状态,可以但不限于在确认变更完成后由中间服务进行自动的连接恢复。103.在云数据库中第一数据库节点已变更为第二数据库节点的消息可以但不限于由管控服务指示给中间服务,或者也可以但不限于由第二数据库节点指示给中间服务。104.根据连接状态在中间服务上建立的与第二数据库节点之间的第二连接集合不但能够使得用户服务可以使用第二数据库节点上提供的数据服务,还能够使得第二数据库节点可以通过连接状态与第一连接集合相同的第二连接集合代替第一数据库节点为用户服务提供数据服务。105.作为一种可选的方案,根据连接状态在中间服务上建立中间服务与第二数据库节点之间的第二连接集合,包括:106.s41,在中间服务上建立中间服务与第二数据库节点之间的第三服务连接,其中,第三服务连接中所包括的初始服务连接与第一连接集合中所包括的服务连接一一对应;107.s42,将第三服务连接中所包括的每个初始服务连接的连接状态配置为对应的第一连接集合中所包括的服务连接的连接状态,得到第二连接集合。108.在服务连接的恢复过程中,首先在中间服务上建立包括与第一连接集合中所包括的服务连接一一对应的初始服务连接的第三连接集合。再使用保存的各个服务连接的连接状态对各个初始服务连接的连接状态进行配置,从而得到与之前的服务连接状态相同的新的服务连接为用户提供相应的数据服务。109.通过本技术提供的实施例,云数据库中的数据库节点通过其与中间服务之间建立的连接集合为相应的用户服务提供数据服务,云数据库中的管控服务的一个功能可以是用于对待变更的数据库节点进行变更,当某个数据库节点(比如上述第一数据库节点)为待发生变更的数据库节点时,管控服务发送指示信息(即上述第一指示信息)给中间服务来指示出待发生变更的数据库节点,当在中间服务上获取到上述指示信息时,一方面在中间服务上保持中间服务与待发生变更的数据库节点所服务的用户服务之间的服务连接,另一方面在中间服务上保存待发生变更的数据库节点与中间服务之间的连接集合(即上述第一连接集合)所包括的服务连接的连接状态,当确定了数据库节点的变更完成以及变更后的数据库节点(比如上述第二数据库节点)时,可以使用保存在中间服务上的变更前的服务连接原有的连接状态在中间服务上直接建立与变更后的数据库节点之间的连接集合(比如第二连接集合),从而通过在中间服务上对其与用户服务之间的服务连接的保持以及其与数据库节点之间的服务连接的连接状态转移的过程减少用户对服务连接的操作过程,进而通过在中间服务上对服务连接的处理来自动恢复为用户服务提供的数据服务,并能够保证服务连接能够恢复到原有的连接状态,用户服务可以在对服务连接的中断无感知的情况下直接使用恢复后的服务连接,从而实现了降低云数据库发生变更时对服务连接进行恢复的过程中的操作复杂度的技术效果,进而解决了云数据库发生变更时对服务连接进行恢复的过程中的操作复杂度较高的技术问题。110.另一方面,用户服务与数据库节点之间的服务连接均通过中间服务上的处理进行恢复,用户服务端无需感知到服务连接的中断以及恢复的过程。从而使得用户使用服务的过程中不必再对于服务连接进行维护,服务连接中断后恢复的处理过程均由服务提供方来执行,能够降低用户对于数据库服务的使用难度,从而为用户提供更高效便捷的服务。111.作为一种可选的方案,在根据连接状态在中间服务上建立中间服务与第二数据库节点之间的第二连接集合之前,还包括:112.s51,获取管控服务发送给中间服务的第二指示信息,其中,第二指示信息用于指示第一数据库节点已变更为第二数据库节点;113.s52,从第二指示信息中提取第二数据库节点的节点信息,其中,节点信息用于在中间服务上建立与第二数据库节点之间的第二连接集合。114.在数据库节点变更完成后,可以但不限于由管控服务将变更后的第二数据库节点通过发送的第二指示信息通知给中间服务,中间服务可以从第二指示信息中提取出变更后的第二数据库节点的节点信息,从而根据该节点信息来完成后续在第二数据库节点上的服务连接的重建恢复过程。115.在本实施例中,上述第二数据库节点的节点信息可以但不限于包括第二数据库节点的节点地址等用于使得中间服务能够找到第二数据库节点的信息。116.在一个可选的实施方式中,提供了一个中间服务对于发生变更的服务连接进行建立的过程,如图7所示,在该可选的实施方式中进行服务连接建立的方法主要可以包括如下的步骤s701~步骤s705。117.用户服务通过中间服务与云数据库中当前为其提供数据服务的数据库节点a连接,用户服务与中间服务之间建立了服务连接,中间服务与数据库节点a之间建立了第一连接集合。当数据库节点a要变更到数据库节点b时,管控服务会发送第一指示信息来指示出数据库节点a待发生变更(s701)。中间服务响应该第一指示信息,一方面保持其与用户服务之间的服务连接,另一方面保存第一连接集合中所包括的服务连接的连接状态(s702)。当收到管控服务发送的第二指示信息(s703)时,从中提取出数据库节点b的节点信息(s704),依据该节点信息找到数据库节点b来建立第二连接集合(s705)。从而恢复用户服务与云数据库中后续为其提供数据服务的数据库节点b之间的服务连接。118.作为一种可选的方案,在中间服务上保存第一连接集合中所包括的服务连接的连接状态之后,还包括:119.s61,向管控服务发送第三指示信息,其中,第三指示信息用于指示允许管控服务对第一数据库节点进行变更。120.在中间服务对第一连接集合中所包括的服务连接的连接状态进行保存之后,中间服务可以但不限于通过向管控服务发送第三指示信息来通知管控服务第一数据库节点的服务连接已经保存,其可以开始对第一数据库节点进行变更了。管控服务接收到第三指示信息后再开始对第一数据库节点的变更控制,从而能够保证所保存的连接状态的准确性。121.在上述可选的实施方式中,如图8所示,在该可选的实施方式中进行服务连接建立的方法主要还可以包括如下的步骤s801~步骤s802。中间服务响应该第一指示信息,保存了第一连接集合中所包括的服务连接的连接状态后。向管控服务发送第三指示信息(s801)。管控服务接收到第三指示信息后开始对数据库节点进行变更(s802),完成了将数据库节点a变更为数据库节点b之后,管控服务向中间服务发送第二指示信息来指示出变更后的数据库节点b。122.作为一种可选的方案,在获取管控服务发送给中间服务的第一指示信息之后,还包括:123.s71,获取中间服务上接收到的目标操作请求,其中,目标操作请求用于请求对第一数据库节点执行目标操作;124.s72,根据目标操作的操作类型转发目标操作请求。125.在服务连接重新建立的过程中,用户服务与中间服务之间的服务连接一直保持着,用户服务可以但不限于继续向中间服务发送操作请求来请求为其提供数据服务的数据库节点继续为其执行相应的操作。126.如果中间服务接收到用户服务发送的目标操作请求,可以但不限于根据其所请求的目标操作的操作类型对目标操作请求进行相应的转发。127.在本实施例中,操作请求所请求的操作的操作类型可以但不限于有各种划分方式,比如:按照数据方向可以划分为读操作和写操作两类,读操作类型可以但不限于包括查询操作等等。写操作类型可以但不限于包括编辑,删除,修改等操作。按照数据库节点的变更情况可以划分为已变更连接的操作和未变更连接的操作。128.对于不同操作类型的目标操作可以但不限于根据当前服务连接建立的情况以及数据库节点的变更情况酌情进行转发。比如:只转发操作类型为读操作或者未变更连接的操作的目标操作请求。转发过程可以按照原有的转发策略执行。129.作为一种可选的方案,根据目标操作的操作类型转发目标操作请求,包括:130.s81,从目标操作请求中获取所指示的目标操作的操作类型为只读操作的第一操作请求;131.s82,将第一操作请求转发至第一数据库节点所对应的只读数据库节点。132.目标操作的操作类型还可以划分为只读操作和非只读操作,可以将所指示的目标操作的操作类型为只读操作的操作请求作为第一操作请求转发到第一数据库节点所对应的只读数据库节点上进行响应,从而在服务连接的重建以及数据库节点变更的过程中也能够及时响应用户的部分操作请求。133.在一个可选的实施方式中,提供了一种在服务连接重建的过程中继续响应用户服务的操作请求的过程,如图9所示,在该可选的实施方式中进行服务连接建立的方法主要可以包括如下的步骤s901~步骤s905。用户服务通过中间服务与云数据库中当前为其提供数据服务的数据库节点a连接,用户服务与中间服务之间建立了服务连接,中间服务与数据库节点a之间建立了第一连接集合。当数据库节点a要变更到数据库节点b时,管控服务会发送第一指示信息来指示出数据库节点a待发生变更(s901)。中间服务响应该第一指示信息,执行对服务连接的建立过程(s902)。在服务连接建立过程中,用户服务可以继续使用中间服务为其保持的服务连接向中间服务发送目标操作请求来请求数据库节点a为其执行相应的目标操作(s903)。中间服务从接收到的目标操作请求中筛选出所请求的目标操作的操作类型为只读操作的第一操作请求(s904),并将第一操作请求转发给数据库节点a对应的只读数据库节点来处理(s905),从而保证用户服务的部分操作请求能够得到及时的响应。134.在云数据库的架构中,还提供了只读数据库节点来及时响应用户服务发起的只读操作类型的操作请求。如图10所示,中间件proxy所连接的云数据库中的数据库节点包括主节点master,用于对外提供读写的数据服务。一个或者多个只读节点ro,用于对外提供只读的数据服务。从节点slave,其不对外提供服务,主要用于用户服务的高可用的切换。在本实施例中,对于proxy提供读写分离的功能,比如,当master节点在进行切换时,如果有操作请求发送过来,proxy可以根据路由规则,将操作请求路由发送到ro节点进行处理,那么该请求不会卡住,还是会继续提供服务。直到需要路由发送到master节点的操作请求,才可能会卡住请求,等待切换完成,再继续提供服务。135.作为一种可选的方案,在将第一操作请求转发至第一数据库节点所对应的只读数据库节点之前,还包括:136.s91,创建第一数据库节点所对应的只读数据库节点;137.s92,从第一连接集合中获取连接类型为只读连接的服务连接,得到第三连接集合;138.s93,在中间服务上建立与只读数据库节点之间的第三连接集合。139.上述第一数据库节点所对应的只读数据库节点可以但不限于是中间服务为第一数据库节点创建的,从而配合第一数据库节点变更过程中对于用户服务发起的目标操作请求的及时响应。140.在只读数据库节点上中间服务可以根据需求从其保存的第一连接集合中找到连接类型为只读连接的服务连接作为第三连接集合,并建立与只读数据库节点之间的第三连接集合,来保证只读类型的操作请求的转发。141.创建只读数据库节点的时机可以但不限于是在接收到第一指示信息时,或者也可以但不限于是在服务连接建立的过程中接收到只读操作的操作请求时。142.在上述可选的实施方式中,提供了一种在继续响应用户服务的操作请求时创建只读数据库节点的过程,如图11所示,在该可选的实施方式中进行服务连接建立的方法主要还可以包括如下的步骤s1101~步骤s1102。中间服务从接收到的目标操作请求中筛选出所请求的目标操作的操作类型为只读操作的第一操作请求,响应该第一操作请求为数据库节点a创建只读数据库节点(s1101),并建立与只读数据库节点间的第三连接集合(s1102)。然后将第一操作请求转发给数据库节点a对应的只读数据库节点来处理,从而保证用户服务的部分操作请求能够得到及时的响应。143.作为一种可选的方案,上述服务连接的建立方法还包括:144.s1001,在从目标操作请求中获取所指示的目标操作的操作类型为只读类型的第一操作请求之后,将目标操作请求中除第一操作请求之外的第二操作请求在中间服务上挂起;145.s1002,在根据连接状态在中间服务上建立与第二数据库节点之间的第二连接集合之后,将第二操作请求转发至第二数据库节点。146.对于目标操作请求中除第一操作请求之外的操作类型属于非只读操作的第二操作请求,可以暂时在中间服务上挂起,在第二连接集合建立之后,再将第二操作请求转发至第二数据库节点进行处理。147.在上述可选的实施方式中,如图12所示,在该可选的实施方式中进行服务连接建立的方法主要还可以包括如下的步骤s1201~步骤s1202。用户服务通过中间服务与云数据库中当前为其提供数据服务的数据库节点a连接,用户服务与中间服务之间建立了服务连接,中间服务与数据库节点a之间建立了第一连接集合。当数据库节点a要变更到数据库节点b时,管控服务会发送第一指示信息来指示出数据库节点a待发生变更(s901)。中间服务响应该第一指示信息,执行对服务连接的建立过程(s902)。在服务连接建立过程中,用户服务可以继续使用中间服务为其保持的服务连接向中间服务发送目标操作请求来请求数据库节点a为其执行相应的目标操作(s903)。中间服务从接收到的目标操作请求中筛选出所请求的目标操作的操作类型为只读操作的第一操作请求(s904),并挂起第二操作请求(s1201)。将获取到的第一操作请求转发给数据库节点a对应的只读数据库节点来处理(s905),从而保证用户服务的部分操作请求能够得到及时的响应。再在服务连接建立完成后将挂起的第二操作请求转发至数据库节点b进行处理(s1202)。148.图13示意性地示出了本技术实施例中服务连接的建立方法在一应用场景中的原理示意图。如图13所示,在该应用场景中进行服务连接建立的方法主要可以包括如下的步骤s1301~步骤s1306。在该应用场景中,云数据库通过mysql集群中的实例节点为用户服务提供数据服务,并通过管控服务对mysql集群进行管理和控制。中间件proxy用于通过其与用户服务之间的服务连接以及其与mysql集群之间的服务连接来实现用户服务到mysql集群的服务连接。s1301,当mysql集群中有节点需要切换时,管控服务将节点需要切换的信息通知给proxy,并在信息中携带设置的超时时间(timeout)以及切换节点(即上述第一数据库节点)的信息(节点地址host)。s1302,proxy保持与用户服务之间的服务连接,并开始对与切换节点之间的服务连接进行处理。处理过程包括:判断服务连接是否符合迁移条件(即服务连接是否稳定)。对于符合条件的连接会将服务连接的执行语句中用于指示连接状态的信息保留在proxy(即得到第一连接集合)。对于不符合条件的服务连接,判断timeout是否超时,如果timeout》0,则在规定时间内,继续接受不符合条件的服务连接的执行语句,直到满足条件后将其添加到第一连接集合中,或者直到timeout时间超时。如果timeout=0或者时间超时,直接将不符合条件的服务连接判定为无法迁移的连接,并向用户服务返回报错。149.s1303,proxy处理完成后会将处理完成的信息通知给管控服务。s1304,管控模块开始进行节点的切换等操作。s1305,切换完成后,管控模块告知proxy切换完成,并且传入切换到的节点(即上述第二数据库节点)。s1306,proxy根据管控模块的通知与切换到的节点进行服务连接的重建,并且恢复重建连接的状态。之后就能够恢复用户服务,用户服务可以正常的连接使用mysql集群。150.对于连接切换条件的判断,服务连接的执行语句中包括以下状态时可以判定服务连接不符合条件:含有事务;含有未删除的prepare语句;包含锁,即执行了类似flushtablewithreadlock、locktable语句;含有临时表;等待执行结果等等。151.在本应用场景中,还提供了一种在master节点切换过程中处理操作请求的过程,如图14所示,在该应用场景中进行服务连接建立的方法主要可以包括如下的步骤s1401~步骤s1406。上述mysql集群中会将用户服务的原master切换到新master。s1401,管控服务通知proxy开始切换。s1402,proxy保持与用户服务之间的服务连接,并开始对与切换节点之间的服务连接进行处理。s1403,proxy处理完成后会将处理完成的信息通知给管控服务。s1404,管控模块首先探测原master状态,如果所有连接空闲idle,则开始切换。s1405,在切换过程中,中间服务收到了用户服务发送的sql请求。s1406,将其中的只读类型的ro请求转发给原master对应的只读数据库节点(ro)进行处理。152.s1407,原master切换完成后,管控模块将新master提升为主节点。s1408,在proxy上设置新master。s1409,proxy根据管控模块的通知进行服务连接的重建,并且恢复重建连接的状态。153.需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。154.根据本发明实施例的另一个方面,还提供了一种用于实施上述服务连接的建立方法的服务连接的建立装置。如图15所示,该装置包括:155.第一获取模块1502,用于获取管控服务发送给中间服务的第一指示信息,其中,第一指示信息用于指示云数据库中的第一数据库节点为待发生变更的数据库节点,第一数据库节点用于通过第一数据库节点与中间服务之间建立的第一连接集合为用户服务提供数据服务,管控服务用于对第一数据库节点进行变更;156.处理模块1504,用于响应第一指示信息,在中间服务上保持中间服务与用户服务之间的服务连接,并在中间服务上保存第一连接集合中所包括的服务连接的连接状态;157.第一建立模块1506,用于在确定第一数据库节点已变更为云数据库中的第二数据库节点的情况下,根据连接状态在中间服务上建立中间服务与第二数据库节点之间的第二连接集合,其中,第二数据库节点用于通过第二连接集合代替第一数据库节点为用户服务提供数据服务。158.通过本技术提供的实施例,云数据库中的数据库节点通过其与中间服务之间建立的连接集合为相应的用户服务提供数据服务,云数据库中的管控服务的一个功能可以是用于对待变更的数据库节点进行变更,当某个数据库节点(比如上述第一数据库节点)为待发生变更的数据库节点时,管控服务发送指示信息(即上述第一指示信息)给中间服务来指示出待发生变更的数据库节点,当在中间服务上获取到上述指示信息时,处理模块一方面在中间服务上保持中间服务与待发生变更的数据库节点所服务的用户服务之间的服务连接,另一方面在中间服务上保存待发生变更的数据库节点与中间服务之间的连接集合(即上述第一连接集合)所包括的服务连接的连接状态,当确定了数据库节点的变更完成以及变更后的数据库节点(比如上述第二数据库节点)时,建立模块可以使用保存在中间服务上的变更前的服务连接原有的连接状态在中间服务上直接建立与变更后的数据库节点之间的连接集合(比如第二连接集合),从而通过在中间服务上对与用户服务之间的服务连接的保持以及与数据库节点之间的服务连接的连接状态转移的过程减少用户对服务连接的操作过程,进而通过在中间服务上对服务连接的处理来自动恢复为用户服务提供的数据服务,并能够保证服务连接能够恢复到原有的连接状态,用户服务可以在对服务连接的中断无感知的情况下直接使用恢复后的服务连接,从而实现了降低云数据库发生变更时对服务连接进行恢复的过程中的操作复杂度的技术效果,进而解决了云数据库发生变更时对服务连接进行恢复的过程中的操作复杂度较高的技术问题。159.另一方面,用户服务与数据库节点之间的服务连接均通过中间服务上的处理进行恢复,用户服务端无需感知到服务连接的中断以及恢复的过程。从而使得用户使用服务的过程中不必再对于服务连接进行维护,服务连接中断后恢复的处理过程均由服务提供方来执行,能够降低用户对于数据库服务的使用难度,从而为用户提供更高效便捷的服务。160.作为一种可选的方案,如图15所示,上述处理模块1504,包括:161.第一获取单元1504-1,用于从中间服务上建立的中间服务与云数据库所包括的数据库节点之间的服务连接中,获取第一连接集合;162.第二获取单元1504-2,用于获取第一连接集合中所包括的每个服务连接的目标连接状态;163.保存单元1504-3,用于在中间服务上保存具有对应关系的第一连接集合中所包括的服务连接与目标连接状态。164.作为一种可选的方案,第一获取单元,用于:165.从中间服务上建立的中间服务与云数据库所包括的数据库节点之间的服务连接中,查找为第一数据库节点所建立的服务连接作为候选服务连接;166.从候选服务连接中查找执行语句的执行状态为目标执行状态的候选服务连接,得到第一连接集合,其中,目标执行状态用于指示执行语句具有唯一的执行结果。167.作为一种可选的方案,第二获取单元,用于:168.从第一连接集合中所包括的每个服务连接的执行语句中查找连接级的变量;169.将查找到的具有对应关系的连接级的变量和变量值确定为每个服务连接对应的目标连接状态。170.作为一种可选的方案,如图15所示,上述第一建立模块1506,包括:171.建立单元1506-1,用于在中间服务上建立中间服务与第二数据库节点之间的第三服务连接,其中,第三服务连接中所包括的初始服务连接与第一连接集合中所包括的服务连接一一对应;172.配置单元1506-2,用于将第三服务连接中所包括的每个初始服务连接的连接状态配置为对应的第一连接集合中所包括的服务连接的连接状态,得到第二连接集合。173.作为一种可选的方案,如图15所示,上述装置还包括:174.第二获取模块1508,用于在根据连接状态在中间服务上建立中间服务与第二数据库节点之间的第二连接集合之前,获取管控服务发送给中间服务的第二指示信息,其中,第二指示信息用于指示第一数据库节点已变更为第二数据库节点;175.提取模块1510,用于从第二指示信息中提取第二数据库节点的节点信息,其中,节点信息用于在中间服务上建立与第二数据库节点之间的第二连接集合。176.作为一种可选的方案,如图15所示,上述装置还包括:177.发送模块1512,用于在中间服务上保存第一连接集合中所包括的服务连接的连接状态之后,向管控服务发送第三指示信息,其中,第三指示信息用于指示允许管控服务对第一数据库节点进行变更。178.作为一种可选的方案,如图15所示,上述装置还包括:179.第三获取模块1514,用于在获取管控服务发送给中间服务的第一指示信息之后,获取中间服务上接收到的目标操作请求,其中,目标操作请求用于请求对第一数据库节点执行目标操作;180.转发模块1516,用于根据目标操作的操作类型转发目标操作请求。181.作为一种可选的方案,如图15所示,上述转发模块1516,包括:182.第三获取单元1516-1,用于从目标操作请求中获取所指示的目标操作的操作类型为只读操作的第一操作请求;183.转发单元1516-2,用于将第一操作请求转发至第一数据库节点所对应的只读数据库节点。184.作为一种可选的方案,如图15所示,上述装置还包括:185.创建模块1518,用于在将第一操作请求转发至第一数据库节点所对应的只读数据库节点之前,创建第一数据库节点所对应的只读数据库节点;186.第四获取模块1520,用于从第一连接集合中获取连接类型为只读连接的服务连接,得到第三连接集合;187.第二建立模块1522,用于在中间服务上建立与只读数据库节点之间的第三连接集合。188.作为一种可选的方案,如图15所示,上述装置还包括:189.挂起模块1524,用于在从目标操作请求中获取所指示的目标操作的操作类型为只读类型的第一操作请求之后,将目标操作请求中除第一操作请求之外的第二操作请求在中间服务上挂起;190.转发模块1526,用于在根据连接状态在中间服务上建立与第二数据库节点之间的第二连接集合之后,将第二操作请求转发至第二数据库节点。191.具体实施例可以参考上述服务连接的建立方法中所示示例,本示例中在此不再赘述。192.根据本发明实施例的又一个方面,还提供了一种用于实施上述服务连接的建立方法的电子设备,如图16所示,该电子设备包括存储器1602和处理器1604,该存储器1602中存储有计算机程序,该处理器1604被设置为通过计算机程序执行上述任一项方法实施例中的步骤。193.可选地,在本实施例中,上述电子设备可以位于计算机网络的多个网络设备中的至少一个网络设备。194.可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:195.s1,获取管控服务发送给中间服务的第一指示信息,其中,第一指示信息用于指示云数据库中的第一数据库节点为待发生变更的数据库节点,第一数据库节点用于通过第一数据库节点与中间服务之间建立的第一连接集合为用户服务提供数据服务,管控服务用于对第一数据库节点进行变更;196.s2,响应第一指示信息,在中间服务上保持中间服务与用户服务之间的服务连接,并在中间服务上保存第一连接集合中所包括的服务连接的连接状态;197.s3,在确定第一数据库节点已变更为云数据库中的第二数据库节点的情况下,根据连接状态在中间服务上建立中间服务与第二数据库节点之间的第二连接集合,其中,第二数据库节点用于通过第二连接集合代替第一数据库节点为用户服务提供数据服务。198.可选地,本领域普通技术人员可以理解,图16所示的结构仅为示意,电子设备也可以是智能手机(如android手机、ios手机等)、平板电脑、掌上电脑以及移动互联网设备(mobileinternetdevices,mid)、pad等终端设备。图16其并不对上述电子设备的结构造成限定。例如,电子设备还可包括比图16中所示更多或者更少的组件(如网络接口等),或者具有与图16所示不同的配置。199.其中,存储器1602可用于存储软件程序以及模块,如本发明实施例中的服务连接的建立方法和装置对应的程序指令/模块,处理器1604通过运行存储在存储器1602内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的服务连接的建立方法。存储器1602可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1602可进一步包括相对于处理器1604远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。其中,存储器1602具体可以但不限于用于存储误触控信号、触控位置以及侦测区域等信息。作为一种示例,如图16所示,上述存储器1602中可以但不限于包括上述服务连接的建立装置中的第一获取模块1502,处理模块1504和建立模块1506。此外,还可以包括但不限于上述服务连接的建立装置中的其他模块单元,本示例中不再赘述。200.可选地,上述的传输装置1606用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置1606包括一个网络适配器(networkinterfacecontroller,nic),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置1606为射频(radiofrequency,rf)模块,其用于通过无线方式与互联网进行通讯。201.此外,上述电子设备还包括:显示器1608,用于显示上述第一指示信息,连接状态,第二连接集合等等;和连接总线1610,用于连接上述电子设备中的各个模块部件。202.在其他实施例中,上述终端设备或者服务器可以是一个分布式系统中的一个节点,其中,该分布式系统可以为区块链系统,该区块链系统可以是由该多个节点通过网络通信的形式连接形成的分布式系统。其中,节点之间可以组成点对点(peertopeer,简称p2p)网络,任意形式的计算设备,比如服务器、终端等电子设备都可以通过加入该点对点网络而成为该区块链系统中的一个节点。203.图17示意性地示出了用于实现本技术实施例的电子设备的计算机系统结构框图。204.需要说明的是,图17示出的电子设备的计算机系统1700仅是一个示例,不应对本技术实施例的功能和使用范围带来任何限制。205.如图17所示,计算机系统1700包括中央处理器1701(centralprocessingunit,cpu),其可以根据存储在只读存储器1702(read-onlymemory,rom)中的程序或者从存储部分1708加载到随机访问存储器1703(randomaccessmemory,ram)中的程序而执行各种适当的动作和处理。在随机访问存储器1703中,还存储有系统操作所需的各种程序和数据。中央处理器1701、在只读存储器1702以及随机访问存储器1703通过总线1704彼此相连。输入/输出接口1705(input/output接口,即i/o接口)也连接至总线1704。206.以下部件连接至输入/输出接口1705:包括键盘、鼠标等的输入部分1706;包括诸如阴极射线管(cathoderaytube,crt)、液晶显示器(liquidcrystaldisplay,lcd)等以及扬声器等的输出部分1707;包括硬盘等的存储部分1708;以及包括诸如局域网卡、调制解调器等的网络接口卡的通信部分1709。通信部分1709经由诸如因特网的网络执行通信处理。驱动器1710也根据需要连接至输入/输出接口1705。可拆卸介质1711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1710上,以便于从其上读出的计算机程序根据需要被安装入存储部分1708。207.特别地,根据本技术的实施例,各个方法流程图中所描述的过程可以被实现为计算机软件程序。例如,本技术的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1709从网络上被下载和安装,和/或从可拆卸介质1711被安装。在该计算机程序被中央处理器1701执行时,执行本技术的系统中限定的各种功能。208.根据本技术的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述服务连接的建立方法,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。209.可选地,在本实施例中,上述计算机可读的存储介质可以被设置为存储用于执行以下步骤的计算机程序:210.s1,获取管控服务发送给中间服务的第一指示信息,其中,第一指示信息用于指示云数据库中的第一数据库节点为待发生变更的数据库节点,第一数据库节点用于通过第一数据库节点与中间服务之间建立的第一连接集合为用户服务提供数据服务,管控服务用于对第一数据库节点进行变更;211.s2,响应第一指示信息,在中间服务上保持中间服务与用户服务之间的服务连接,并在中间服务上保存第一连接集合中所包括的服务连接的连接状态;212.s3,在确定第一数据库节点已变更为云数据库中的第二数据库节点的情况下,根据连接状态在中间服务上建立中间服务与第二数据库节点之间的第二连接集合,其中,第二数据库节点用于通过第二连接集合代替第一数据库节点为用户服务提供数据服务。213.可选地,在本实施例中,本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(read-onlymemory,rom)、随机存取器(randomaccessmemory,ram)、磁盘或光盘等。214.上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。215.上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。216.在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。217.在本技术所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。218.作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。219.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。220.以上仅是本发明的优选实施方式,应当指出,对于本
技术领域
:的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。当前第1页12当前第1页12
技术特征:
1.一种服务连接的建立方法,其特征在于,包括:获取管控服务发送给中间服务的第一指示信息,其中,所述第一指示信息用于指示云数据库中的第一数据库节点为待发生变更的数据库节点,所述第一数据库节点用于通过所述第一数据库节点与所述中间服务之间建立的第一连接集合为用户服务提供数据服务,所述管控服务用于对所述第一数据库节点进行变更;响应所述第一指示信息,在所述中间服务上保持所述中间服务与所述用户服务之间的服务连接,并在所述中间服务上保存所述第一连接集合中所包括的服务连接的连接状态;在确定所述第一数据库节点已变更为所述云数据库中的第二数据库节点的情况下,根据所述连接状态在所述中间服务上建立所述中间服务与所述第二数据库节点之间的第二连接集合,其中,所述第二数据库节点用于通过所述第二连接集合代替所述第一数据库节点为所述用户服务提供数据服务。2.根据权利要求1所述的方法,其特征在于,所述在所述中间服务上保存所述第一连接集合中所包括的服务连接的连接状态,包括:从所述中间服务上建立的所述中间服务与所述云数据库所包括的数据库节点之间的服务连接中,获取所述第一连接集合;获取所述第一连接集合中所包括的每个服务连接的目标连接状态;在所述中间服务上保存具有对应关系的所述第一连接集合中所包括的服务连接与所述目标连接状态。3.根据权利要求2所述的方法,其特征在于,所述从所述中间服务上建立的所述中间服务与所述云数据库所包括的数据库节点之间的服务连接中,获取所述第一连接集合,包括:从所述中间服务上建立的所述中间服务与所述云数据库所包括的数据库节点之间的服务连接中,查找为所述第一数据库节点所建立的服务连接作为候选服务连接;从所述候选服务连接中查找执行语句的执行状态为目标执行状态的候选服务连接,得到所述第一连接集合,其中,所述目标执行状态用于指示执行语句具有唯一的执行结果。4.根据权利要求2所述的方法,其特征在于,所述获取所述第一连接集合中所包括的每个服务连接的目标连接状态,包括:从所述第一连接集合中所包括的每个服务连接的执行语句中查找连接级的变量;将查找到的具有对应关系的连接级的变量和变量值确定为所述每个服务连接对应的所述目标连接状态。5.根据权利要求1所述的方法,其特征在于,所述根据所述连接状态在所述中间服务上建立所述中间服务与所述第二数据库节点之间的第二连接集合,包括:在所述中间服务上建立所述中间服务与所述第二数据库节点之间的第三服务连接,其中,所述第三服务连接中所包括的初始服务连接与所述第一连接集合中所包括的服务连接一一对应;将所述第三服务连接中所包括的每个初始服务连接的连接状态配置为对应的所述第一连接集合中所包括的服务连接的连接状态,得到所述第二连接集合。6.根据权利要求1所述的方法,其特征在于,在所述根据所述连接状态在所述中间服务上建立所述中间服务与所述第二数据库节点之间的第二连接集合之前,所述方法还包括:获取所述管控服务发送给所述中间服务的第二指示信息,其中,所述第二指示信息用于指示所述第一数据库节点已变更为所述第二数据库节点;
从所述第二指示信息中提取所述第二数据库节点的节点信息,其中,所述节点信息用于在所述中间服务上建立与所述第二数据库节点之间的所述第二连接集合。7.根据权利要求1所述的方法,其特征在于,在所述中间服务上保存所述第一连接集合中所包括的服务连接的连接状态之后,所述方法还包括:向所述管控服务发送第三指示信息,其中,所述第三指示信息用于指示允许所述管控服务对所述第一数据库节点进行变更。8.根据权利要求1所述的方法,其特征在于,在所述获取管控服务发送给中间服务的第一指示信息之后,所述方法还包括:获取所述中间服务上接收到的目标操作请求,其中,所述目标操作请求用于请求对所述第一数据库节点执行目标操作;根据所述目标操作的操作类型转发所述目标操作请求。9.根据权利要求8所述的方法,其特征在于,所述根据所述目标操作的操作类型转发所述目标操作请求,包括:从所述目标操作请求中获取所指示的所述目标操作的操作类型为只读操作的第一操作请求;将所述第一操作请求转发至所述第一数据库节点所对应的只读数据库节点。10.根据权利要求9所述的方法,其特征在于,在将所述第一操作请求转发至所述第一数据库节点所对应的只读数据库节点之前,所述方法还包括:创建所述第一数据库节点所对应的所述只读数据库节点;从所述第一连接集合中获取连接类型为只读连接的服务连接,得到第三连接集合;在所述中间服务上建立与所述只读数据库节点之间的所述第三连接集合。11.根据权利要求9所述的方法,其特征在于,在所述从所述目标操作请求中获取所指示的所述目标操作的操作类型为只读类型的第一操作请求之后,所述方法还包括:将所述目标操作请求中除所述第一操作请求之外的第二操作请求在所述中间服务上挂起;在所述根据所述连接状态在所述中间服务上建立与所述第二数据库节点之间的第二连接集合之后,所述方法还包括:将所述第二操作请求转发至所述第二数据库节点。12.一种服务连接的建立装置,其特征在于,包括:第一获取模块,用于获取管控服务发送给中间服务的第一指示信息,其中,所述第一指示信息用于指示云数据库中的第一数据库节点为待发生变更的数据库节点,所述第一数据库节点用于通过所述第一数据库节点与所述中间服务之间建立的第一连接集合为用户服务提供数据服务,所述管控服务用于对所述第一数据库节点进行变更;处理模块,用于响应所述第一指示信息,在所述中间服务上保持所述中间服务与所述用户服务之间的服务连接,并在所述中间服务上保存所述第一连接集合中所包括的服务连接的连接状态;第一建立模块,用于在确定所述第一数据库节点已变更为所述云数据库中的第二数据库节点的情况下,根据所述连接状态在所述中间服务上建立所述中间服务与所述第二数据库节点之间的第二连接集合,其中,所述第二数据库节点用于通过所述第二连接集合代替所述第一数据库节点为所述用户服务提供数据服务。13.一种计算机可读的存储介质,其特征在于,所述计算机可读的存储介质包括存储的
程序,其中,所述程序运行时执行上述权利要求1至11任一项中所述的方法。14.一种计算机程序产品,包括计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现权利要求1至11任一项中所述方法的步骤。15.一种电子设备,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行所述权利要求1至11任一项中所述的方法。

技术总结
本发明公开了一种服务连接的建立方法、装置和存储介质及电子设备,可以但不限于应用于云数据库发生切换,迁移,重启等变更情况的场景中。其中,该方法包括:获取管控服务发送给中间服务的第一指示信息;响应第一指示信息,在中间服务上保持中间服务与用户服务之间的服务连接,并在中间服务上保存第一连接集合中所包括的服务连接的连接状态;在确定第一数据库节点已变更为云数据库中的第二数据库节点的情况下,根据连接状态在中间服务上建立中间服务与第二数据库节点之间的第二连接集合。本发明解决了云数据库发生变更时对服务连接进行恢复的过程中的操作复杂度较高的技术问题。恢复的过程中的操作复杂度较高的技术问题。恢复的过程中的操作复杂度较高的技术问题。


技术研发人员:张飞年 杨杰
受保护的技术使用者:腾讯科技(深圳)有限公司
技术研发日:2022.01.07
技术公布日:2023/7/21
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐