信息更新方法、装置、存储介质和电子设备与流程

文档序号:24305405发布日期:2021-03-17 00:58阅读:69来源:国知局
信息更新方法、装置、存储介质和电子设备与流程

本发明涉及计算机技术领域,具体涉及一种信息更新方法、装置、存储介质和电子设备。



背景技术:

随着计算机技术的高速发展,数据的规模及数据访问量也在不断增长。为了承接日益增长的数据访问量,越来越多的技术人员选择通过部署数据库集群的方式来分担单一数据库的访问压力。在一些情况中,为了使得不同的服务均可以正常地访问数据库集群,数据库集群被搭建在容器环境中,数据库集群中的每个节点为一个容器。但在容器环境中,数据库集群的节点数量和节点标识会经常性地发生变化,而节点数量和节点标识的变化会导致接入数据库集群的服务与数据库集群无法正常连接。



技术实现要素:

有鉴于此,本发明实施例的目的在于提供一种信息更新方法、装置、存储介质和电子设备,用于以较低成本获取并更新数据库集群中节点数量和节点标识的变化情况,从而降低数据库集群无法正常连接的可能。

根据本发明实施例的第一方面,提供一种信息更新方法,所述方法包括:

获取多个数据库集群中各节点的节点信息,所述节点信息包括集群标签和节点标识,所述集群标签用于表征所述节点所属于的数据库集群;

响应于所述节点信息满足预定条件,根据所述集群标签和所述节点标识更新至少一个接入层连接池的配置信息。

优选地,所述获取多个数据库集群中各节点的节点信息包括:

通过观察者服务订阅预定控制管理器,所述预定控制管理器用于控制管理所述多个数据库集群;

获取上报至所述预定控制管理器的各所述节点信息。

优选地,所述响应于所述节点信息满足预定条件,根据所述集群标签和所述节点标识更新至少一个接入层连接池的配置信息包括:

根据所述节点标识获取对应节点的历史节点信息;

响应于所述历史节点信息与所述节点信息不匹配,根据所述集群标签和所述节点标识更新至少一个接入层连接池的配置信息。

优选地,所述响应于所述节点信息满足预定条件,根据所述集群标签和所述节点标识更新至少一个接入层连接池的配置信息包括:

根据所述集群标签确定所述节点对应的目标数据库集群;

获取所述目标数据库集群的历史节点数量信息;

根据节点信息确定所述目标数据库集群对应的当前节点数量信息;

响应于所述历史节点数量信息与所述当前节点数量信息不匹配,根据所述集群标签和所述节点标识更新至少一个接入层连接池的配置信息。

优选地,所述根据所述集群标签和所述节点标识更新至少一个接入层连接池的配置信息包括:

根据所述集群标签确定所述节点对应的目标数据库集群;

根据所述节点标识,将目标连接池中的所述配置信息替换为对应的所述节点信息,所述目标连接池为所述目标数据库集群对应的连接池。

优选地,所述数据库集群为容器化的redis集群,各节点对应于一个容器。

根据本发明实施例的第二方面,提供一种信息更新装置,所述装置包括:

信息获取单元,用于获取多个数据库集群中各节点的节点信息,所述节点信息包括集群标签和节点标识,所述集群标签用于表征所述节点所属于的数据库集群;

信息更新单元,用于响应于所述节点信息满足预定条件,根据所述集群标签和所述节点标识更新至少一个接入层连接池的配置信息。

根据本发明实施例的第三方面,提供一种计算机可读存储介质,其上存储计算机程序指令,其中,所述计算机程序指令在被处理器执行时实现如第一方面中任一项所述的方法。

根据本发明实施例的第四方面,提供一种电子设备,包括存储器和处理器,其中,所述存储器用于存储一条或多条计算机程序指令,其中,所述一条或多条计算机程序指令被所述处理器执行以实现如第一方面中任一项所述的方法。

本发明实施例获取多个数据库集群中各节点对应的、包括用于表征节点所属于的数据库集群的集群标签以及节点标识的节点信息,并在节点信息满足预定条件时,根据集群标签和节点标识更新至少一个接入层连接池的配置信息。本发明实施例可以以较低成本获取并更新数据库集群中节点数量和节点标识的变化情况,从而降低数据库集群无法正常连接的可能。

附图说明

通过以下参照附图对本发明实施例的描述,本发明的上述以及其它目的、特征和优点将更为清楚,在附图中:

图1是本发明第一实施例的信息更新方法的流程图;

图2是本发明第一实施例的信息更新方法的示意图;

图3是本发明第二实施例的信息更新装置的示意图;

图4是本发明第三实施例的电子设备的示意图。

具体实施方式

以下基于实施例对本发明进行描述,但是本发明并不仅仅限于这些实施例。在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本发明。为了避免混淆本发明的实质,公知的方法、过程、流程、元件和电路并没有详细叙述。

此外,本领域普通技术人员应当理解,在此提供的附图都是为了说明的目的,并且附图不一定是按比例绘制的。

除非上下文明确要求,否则在说明书的“包括”、“包含”等类似词语应当解释为包含的含义而不是排他或穷举的含义;也就是说,是“包括但不限于”的含义。

在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。

为了承接日益增长的数据访问量,越来越多的技术人员选择通过部署数据库集群的方式来分担单一数据库的访问压力。数据库集群中具有多个数据库,因此对数据的存储能力也显著强于单一数据库的存储能力。在一些情况中,为了增强数据库集群的可访问能力,使得不同类型的服务均可以访问同一数据库集群,在本实施例中,数据库集群被搭建在具有较强兼容能力的环境中。具体地,本实施例的数据库集群可以为容器化的redis集群,集群中的每个节点为一个redis容器。

容器化的redis集群是指被部署在redis服务器内部的容器环境内的redis集群,是分布式数据库系统的一种。在容器化的redis集群中,每个redis容器均基于redis镜像生成。redis镜像是一种文件存储形式,与压缩包类似,镜像是将一系列文件按照一定的格式制作成的单一文件。对于容器化的redis集群,各redis镜像均基于数据文件集合(例如,key-value(也即,键值对)列表集合)中的多个数据文件得到。容器技术本身具有较好的隔离性,使得容器内部的镜像在被修改时不会对原始镜像产生影响。并且容器在运行过程中无需加载操作系统的完整副本,因此可以降低对存储资源的占用。

redis容器的运行只需要基于下载的redis镜像。但redis镜像变化、容器故障重启等原因会导致容器化的redis集群内的容器数量和容器标识发生改变。但在现有技术中,容器化的redis集群的配置文件通常需要依靠人工的方式手动更新。容器化的redis集群的连接池基于配置文件确定,而客户端服务在接入容器化的redis集群时需要从连接池中请求连接,因此容器数量和容器标识的变化会导致服务请求失败、连接超时等情况,对容器化的redis集群正常使用产生负面影响。

图1是本发明第一实施例的信息更新方法的流程图。如图1所示,本实施例的方法包括如下步骤:

步骤s100,获取多个数据库集群中各节点的节点信息。

在本实施例中,可以通过预定控制管理器管理和控制多个容器化的redis集群,并基于观察者(watcher)服务订阅该控制管理器,从而,在容器化的redis集群中的各redis容器向预定控制管理器上报自身的节点信息时,观察者服务也可以获取到各redis容器上报的节点信息,并将上报的节点信息同步给消息订阅方。在本实施例中,预定控制管理器可以控制各redis容器自动上报节点信息,同时watcher服务也可以自动获取到各redis容器上报的节点信息,从而达到自动获取多个数据库集群中各节点的节点信息的目的,无需通过人工的方式获取。

在本实施例中,预定控制管理器可以为各种现有的容器控制管理器,例如为portainer。预定控制管理器用于维护容器环境的稳定,还可以控制各redis以第一周期(例如每小时)上报自身的节点信息,包括集群标签和节点标识。其中,集群标签用于表征节点所属于的数据库集群,通常在容器生成后,集群标签不会发生改变;节点标识可以通过容器的ip(internetprotocol,网际互连协议)地址来表示。

watcher服务也即发布(publish)-订阅(subscribe)服务,是开源(opensource)提供的一种服务,可以监听用于管理多个对象(也即,容器化的redis集群)的预定控制管理器。在本实施例中,watcher服务将预定控制管理器作为发布者,并将订阅了watcher服务的预定管理平台(例如,redis集群管理平台)作为消息订阅方。也就是说,在预定控制管理器接收到至少一个节点上报的节点信息时,watcher服务可以将节点信息同步给预定管理平台。具体地,watcher服务同样可以以第二周期(例如每小时)或者在预定控制管理器接收到上报的节点信息时获取到各节点的节点信息。

步骤s200,响应于节点信息满足预定条件,根据集群标签和节点标识更新至少一个接入层连接池的配置信息。

在获取到各节点的节点信息后,预定管理平台可以在节点信息满足预定条件时,根据集群标签和节点标识更新至少一个接入层连接池的配置信息。接入层是指网络中直接面向用户连接或访问的部分,在本实施例中具体可以为redis接入层客户端。

可选地,预定管理平台可以根据至少一个节点的节点信息中的节点标识获取该节点的历史节点信息,并将获取到的节点信息与历史节点信息进行匹配。对于任一节点,若获取到的节点信息与历史节点信息不匹配,表示该节点的节点信息发生了变化,预定管理平台可以根据集群标签和节点标识更新至少一个接入层连接池的配置信息。

可选地,预定管理平台也可以根据集群标签确定各节点的目标数据库集群。对于各目标数据库集群,预定管理平台可以根据获取到的该数据库集群对应的各节点信息确定该数据库集群的当前节点数量信息,同时还可以获取该数据库集群的历史节点数量信息,并将当前节点数量信息与历史节点数量信息进行匹配。若任一目标数据库集群对应的当前节点数量信息和历史节点数量信息不匹配,表示该数据库集群内新增了至少一个节点或者减少了至少一个节点,预定管理平台可以根据集群标签和节点标识更新至少一个接入层连接池的配置信息。

在本实施例中,各数据库集群的配置信息被存储在配置数据库中,因此在更新至少一个接入层连接池的配置信息时,预定管理平台可以确定节点信息变化的节点的对应的目标数据库集群,然后根据变化的节点标识将该数据库集群的配置信息替换为对应的节点信息,例如将变化的节点的历史节点信息替换为对应的获取到的节点信息,或者将该数据库集群的配置信息全部替换为获取到的节点信息。数据库集群的配置信息也即对应连接池的数据源信息,决定了客户端服务接入连接池的连接方式。因此在配置信息发生变化后,redis服务器根据集群标识将该数据库集群对应的目标连接池进行初始化,以对至少一个连接池自动更新,从而降低了连接池的更新维护成本,提升了连接池更新的及时性,有效降低了数据库集群无法正常连接的可能。

图2是本发明第一实施例的信息更新方法的示意图。容易理解,图2示意了一个数据库集群,但本实施例的方法可以适用于多个数据库集群。如图2所示,集群21为一个数据库集群,具体为容器化的redis集群。集群中的节点n1,节点n2,节点n3,节点n4,节点n5,…,节点nm(m为大于等于1的预定整数)均通过控制管理器22管理和控制。观察者服务23将控制管理器22作为发布者,并在控制管理器22控制节点n1-nm上报自身的节点信息时,将上报的节点信息同步给作为消息订阅方的预定管理平台24。预定管理平台24根据上报的节点信息中的节点标识从配置数据库25中获取该节点对应的历史节点信息,或者根据上报的节点信息中的集群标识从配置数据库25中获取该数据库集群的历史节点数量,并根据上报的节点信息确定该数据库集群的当前节点数量,若任一节点上报的节点信息与历史节点信息不匹配,或者该数据库集群的当前节点数量与历史节点数量不匹配,预定管理平台24可以对配置数据库25中的配置信息进行更新。在配置信息更新后,redis服务器可以根据配置信息将该数据库集群对应的目标连接池,也即连接池26进行初始化。

本实施例获取多个数据库集群中各节点对应的、包括用于表征节点所属于的数据库集群的集群标签以及节点标识的节点信息,并在节点信息满足预定条件时,根据集群标签和节点标识更新至少一个接入层连接池的配置信息。本实施例可以以较低成本获取并更新数据库集群中节点数量和节点标识的变化情况,从而降低数据库集群无法正常连接的可能。

图3是本发明第二实施例的信息更新装置的示意图。如图3所示,本实施例的装置包括信息获取单元31和信息更新单元32。

其中,信息获取单元31用于获取多个数据库集群中各节点的节点信息,所述节点信息包括集群标签和节点标识,所述集群标签用于表征所述节点所属于的数据库集群。信息更新单元32用于响应于所述节点信息满足预定条件,根据所述集群标签和所述节点标识更新至少一个接入层连接池的配置信息。

本实施例获取多个数据库集群中各节点对应的、包括用于表征节点所属于的数据库集群的集群标签以及节点标识的节点信息,并在节点信息满足预定条件时,根据集群标签和节点标识更新至少一个接入层连接池的配置信息。本实施例可以以较低成本获取并更新数据库集群中节点数量和节点标识的变化情况,从而降低数据库集群无法正常连接的可能。

图4是本发明第三实施例的电子设备的示意图。图4所示的电子设备为通用数据处理装置,具体可以为本发明实施例的第一终端、第二终端或服务器,其包括通用的计算机硬件结构,其至少包括处理器41和存储器42。处理器41和存储器42通过总线43连接。存储器42适于存储处理器41可执行的指令或程序。处理器41可以是独立的微处理器,也可以是一个或者多个微处理器集合。由此,处理器41通过执行存储器42所存储的命令,从而执行如上所述的本发明实施例的方法流程实现对于数据的处理和对于其他装置的控制。总线43将上述多个组件连接在一起,同时将上述组件连接到显示控制器44和显示装置以及输入/输出(i/o)装置45。输入/输出(i/o)装置45可以是鼠标、键盘、调制解调器、网络接口、触控输入装置、体感输入装置、打印机以及本领域公知的其他装置。典型地,输入/输出(i/o)装置45通过输入/输出(i/o)控制器46与系统相连。

其中,存储器42可以存储软件组件,例如操作系统、通信模块、交互模块以及应用程序。以上所述的每个模块和应用程序都对应于完成一个或多个功能和在发明实施例中描述的方法的一组可执行程序指令。

上述根据本发明实施例的方法、设备(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应理解,流程图和/或框图的每个块以及流程图图例和/或框图中的块的组合可以由计算机程序指令来实现。这些计算机程序指令可以被提供至通用计算机、专用计算机或其它可编程数据处理设备的处理器,以产生机器,使得(经由计算机或其它可编程数据处理设备的处理器执行的)指令创建用于实现流程图和/或框图块或块中指定的功能/动作的装置。

同时,如本领域技术人员将意识到的,本发明实施例的各个方面可以被实现为系统、方法或计算机程序产品。因此,本发明实施例的各个方面可以采取如下形式:完全硬件实施方式、完全软件实施方式(包括固件、常驻软件、微代码等)或者在本文中通常可以都称为“电路”、“模块”或“系统”的将软件方面与硬件方面相结合的实施方式。此外,本发明的方面可以采取如下形式:在一个或多个计算机可读介质中实现的计算机程序产品,计算机可读介质具有在其上实现的计算机可读程序代码。

可以利用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以是如(但不限于)电子的、磁的、光学的、电磁的、红外的或半导体系统、设备或装置,或者前述的任意适当的组合。计算机可读存储介质的更具体的示例(非穷尽列举)将包括以下各项:具有一根或多根电线的电气连接、便携式计算机软盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或闪速存储器)、光纤、便携式光盘只读存储器(cd-rom)、光存储装置、磁存储装置或前述的任意适当的组合。在本发明实施例的上下文中,计算机可读存储介质可以为能够包含或存储由指令执行系统、设备或装置使用的程序或结合指令执行系统、设备或装置使用的程序的任意有形介质。

计算机可读信号介质可以包括传播的数据信号,所述传播的数据信号具有在其中如在基带中或作为载波的一部分实现的计算机可读程序代码。这样的传播的信号可以采用多种形式中的任何形式,包括但不限于:电磁的、光学的或其任何适当的组合。计算机可读信号介质可以是以下任意计算机可读介质:不是计算机可读存储介质,并且可以对由指令执行系统、设备或装置使用的或结合指令执行系统、设备或装置使用的程序进行通信、传播或传输。

用于执行针对本发明各方面的操作的计算机程序代码可以以一种或多种编程语言的任意组合来编写,所述编程语言包括:面向对象的编程语言如java、smalltalk、c++、php、python等;以及常规过程编程语言如“c”编程语言或类似的编程语言。程序代码可以作为独立软件包完全地在用户计算机上、部分地在用户计算机上执行;部分地在用户计算机上且部分地在远程计算机上执行;或者完全地在远程计算机或服务器上执行。在后一种情况下,可以将远程计算机通过包括局域网(lan)或广域网(wan)的任意类型的网络连接至用户计算机,或者可以与外部计算机进行连接(例如通过使用因特网服务供应商的因特网)。

以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1