CN114996337A - 多集群数据库管理***及方法 - Google Patents
多集群数据库管理***及方法 Download PDFInfo
- Publication number
- CN114996337A CN114996337A CN202210580022.4A CN202210580022A CN114996337A CN 114996337 A CN114996337 A CN 114996337A CN 202210580022 A CN202210580022 A CN 202210580022A CN 114996337 A CN114996337 A CN 114996337A
- Authority
- CN
- China
- Prior art keywords
- cluster
- database
- database instance
- server
- instance operation
- 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.)
- Pending
Links
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
- 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/21—Design, administration or maintenance of databases
-
- 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/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/275—Synchronous replication
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供一种多集群数据库管理***及方法;涉及数据库技术领域。该***包括:多个服务器集群、第一API服务组件和元数据管理模块。第一API服务组件用于接收数据库实例操作请求,数据库实例操作请求包括目标集群标识信息和数据库实例操作对应的资源标识信息;基于目标集群标识信息,将数据库实例操作请求转发至目标服务器集群,以使目标服务器集群基于数据库实例操作请求进行相应数据库实例操作并更新操作后的资源状态信息。本公开可以解决相关技术中用户对于多地域或多供应商提供的多个服务器集群访问或部署过程中的***切换导致的用户体验差的问题。
Description
技术领域
本公开涉及数据库技术领域,具体而言,涉及一种多集群数据库管理***、多集群数据库管理方法、计算机可读存储介质和电子设备。
背景技术
PostgreSQL是一个对象关系型数据库管理***。PostgreSQL支持大部分SQL标准并且提供了许多其他现代特性:复杂查询、外键、触发器、视图、事务完整性、多版本并行控制***(MVCC)。
相关技术中,PostgreSQL对于数据库的服务器集群一般都只能进行单个服务器集群的管理,对于处于多地域或多个供应商提供的多个服务器集群需要进行分别管理。这就导致用户在访问或部署多个服务器集群时需要不断进行***的切换,影响用户体验。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开实施例的目的在于提供一种多集群数据库管理***、多集群数据库管理方法、计算机可读存储介质和电子设备,进而在一定程度上解决了相关技术中用户对于多地域或多供应商提供的多个服务器集群访问或部署过程中的***切换导致的用户体验差的问题。
根据本公开的第一方面,提供了一种多集群数据库管理***,包括:
多个服务器集群,多个所述服务器集群分布于不同地域;
第一应用程序接口API服务组件,用于接收包括目标集群标识信息和数据库实例操作对应的资源标识信息的数据库实例操作请求,并基于所述目标集群标识信息,将所述数据库实例操作请求转发至目标服务器集群,以使所述目标服务器集群基于所述数据库实例操作请求进行相应数据库实例操作并更新与所述资源标识信息对应的操作后的资源状态信息;所述目标服务器集群包含多个所述服务器集群中的一个或多个;
元数据管理模块,用于接收并存储所述第一API服务组件转发的数据库实例操作对应的资源状态信息。
在本公开的一种示例性实施例中,基于前述方案,每个所述服务器集群包含:
第二API服务组件,用于与所述第一API服务组件通信连接,以获得所述第一API服务组件转发的所述数据库实例操作请求,并基于所述数据库实例操作请求构建对应的自定义资源;
执行模块,用于根据所述自定义资源执行相应数据库实例操作并更新操作后的资源状态信息。
在本公开的一种示例性实施例中,基于前述方案,每个所述服务器集群还包括第三API服务组件;所述***还包括:
协调组件,用于通过所述第三API服务组件监听对应数据库实例的资源状态变更,并将变更后的资源状态信息同步至所述元数据管理模块。
在本公开的一种示例性实施例中,基于前述方案,所述第一API服务组件还用于:响应于负载均衡指令,调整各服务器集群内数据库实例对应的副本数量。
在本公开的一种示例性实施例中,基于前述方案,所述协调组件还用于:
响应于多个所述服务器集群的集群数量变化,添加或删除所述协调组件对服务器集群的对应配置文件并重启该协调组件的服务;
或者,
响应于多个所述服务器集群的集群数量变化,添加或删除相应服务器集群对应协调组件的服务。
在本公开的一种示例性实施例中,基于前述方案,多个所述服务器集群为多个Kubernetes集群,所述协调组件包括:
管理控制模块,用于针对每个Kubernetes集群创建一个命名空间控制模块;
命名空间控制模块,用于监听对应Kubernetes集群的命名空间事件,并对每个新建的目标命名空间构建一个控制群组,所述目标命名空间为携带有执行模块标签的命名空间;
控制群组,用于监听对应Kubernetes集群的状态信息。
在本公开的一种示例性实施例中,基于前述方案,所述数据库为PostgreSQL数据库,所述控制群组包括:
PostgreSQL控制子模块,用于监听对应数据库实例的整体状态信息,并将监听到的该服务器集群的整体状态信息更新至元数据管理模块;
PostgreSQL副本控制子模块,用于监听对应数据库实例的副本状态信息,并将监听到的该服务器集群的副本状态信息更新至元数据管理模块;
PostgreSQL任务控制子模块,用于对相应数据库实例的数据进行自动备份和/或修改对应服务器集群的审计策略。
在本公开的一种示例性实施例中,基于前述方案,所述第一API服务组件还用于:
配置与所述数据库实例操作请求对应的数据库实例的数据库参数、数据库存储类型和数据库访问方式中的一种或多种。
根据本公开的第二方面,提供一种多集群数据库管理方法,应用于多集群数据库管理***,所述***包括多个服务器集群和元数据管理模块,多个所述服务器集群分布于不同地域;其特征在于,所述方法包括:
接收包括目标集群标识信息和数据库实例操作对应的资源标识信息的数据库实例操作请求,并基于所述目标集群标识信息,将所述数据库实例操作请求转发至目标服务器集群,以使所述目标服务器集群基于所述数据库实例操作请求进行相应数据库实例操作并更新与所述资源标识信息对应的操作后的资源状态信息;所述目标服务器集群包含多个所述服务器集群中的一个或多个;
接收并存储所述数据库实例操作对应的资源状态信息。
在本公开的一种示例性实施例中,基于前述方案,所述方法还包括:
响应于负载均衡指令,调整各服务器集群内数据库实例对应的副本数量。
根据本公开的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的方法。
根据本公开的第四方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一项所述的方法。
本公开示例性实施例可以具有以下部分或全部有益效果:
在公开示例实施方式所提供的多集群数据库管理***中,一方面通过设置第一API服务组件,用于接收用户的数据库实例操作请求,并基于将数据库实例操作请求转发至目标服务器集群,使用户可以通过调用该第一API服务组件实现对多个服务器集群的统一管理,提升用户体验。另一方面,通过第一API服务组件将数据库实例操作请求中的数据库实例操作的相关信息转发至元数据管理模块,在数据库实例操作之前实现相关信息的存储,能够减少后续的数据传输过程,提高数据库管理效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了可以应用本公开实施例的一种多集群数据库管理***及装置的示例性***架构的示意图。
图2示意性示出了根据本公开的一个实施例的多集群数据库管理***架构的示意图。
图3示意性示出了根据本公开的一个实施例服务器集群内的运行管理架构示意图。
图4示意性示出了根据本公开的另一个实施例的多集群数据库管理***架构的示意图。
图5示意性示出了根据本公开的一个实施例的协调组件的控制管理架构示意图。
图6示意性示出了根据本公开的一个实施例的多集群数据库管理方法流程图。
图7示出了适于用来实现本公开实施例的电子设备的计算机***的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
为了方便理解本发明实施例,首先在此介绍本公开实施例描述中引入的几个要素:
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。每个数据库都有一个或多个不同的API用于创建、访问、管理、搜索和复制所保存的数据。
PostgreSQL是对象-关系数据库服务器(对象-关系数据库管理***),用于安全地存储数据。由PostgreSQL全球开发集团开发的开源***。PostgreSQL是跨平台的,可以在许多操作***上运行,如Linux,OSX和Microsoft Windows等。PostgreSQL实现了多版本并发控制(MVCC)功能,可以添加使用不同编程语言(如C/C++,Java等)开发自定义函数;可以自定义数据类型、索引类型、函数语言等。
Kubernetes(即k8s)是一个容器调度,编排平台,可以方便地对一个集群中的大量容器实施配置和管理。其中集群中的一个计算主机称为一个节点(node)。
图1示出了可以应用于本公开实施例的一种多集群数据库管理***及方法的应用环境示例性***架构100的示意图。如图1所示,***架构100可以包括客户端主机101和服务端的多个服务器集群102,客户端主机101和每个服务器集群102之间通过网络通讯连接。多个服务器集群位于不同的地域,该不同的地域只要能进行相互通信即可,本示例并不限制不同服务器集群具体的地域范围。客户端主机101可以是任意形式的计算设备,如台式电脑、手提电脑、移动终端设备等,本示例对此不作限定。
本公开实施例的元数据管理模块可以部署于客户端主机101的后台服务器,也可以部署于服务端的服务器集群102中。本公开实施例的第一API服务组件可以部署于客户端主机101的后台服务器,也可以部署于服务端的服务器集群102中。用户可以通过客户端主机101的前端操作页面调用第一API服务组件,以实现对服务器集群102中存储的数据库进行管理。服务器集群102可以由本地服务器组成,也可以由云服务器组成,本示例对此不做限定。
以下对本公开实施例的技术方案进行详细阐述:
参考图2所示,本公开提供的一种示例实施方式的多集群数据库管理***,可以包括:
多个服务器集群210,多个所述服务器集群分布于不同地域。
在本示例实施方式中,多个服务器集群可以是位于不同地域的,也可以是不同供应商提供的不同服务器集群,该服务器集群可以是云服务器集群。每个服务器集群都可以用于进行数据库实例操作(如创建数据库实例)。
第一应用程序接口(Application Program Interface,API)服务组件220,用于接收包括目标集群标识信息和数据库实例操作对应的资源标识信息的数据库实例操作请求,并基于所述目标集群标识信息,将所述数据库实例操作请求转发至目标服务器集群,以使所述目标服务器集群基于所述数据库实例操作请求进行相应数据库实例操作并更新与所述资源标识信息对应的操作后的资源状态信息;所述目标服务器集群包含多个所述服务器集群中的一个或多个。
在本示例实施方式中,数据库实例操作请求可以是由用户发送的,用户可以是管理、开发、使用服务器集群的主体;例如,终端用户、应用程序开发人员和数据库管理人员(如数据库运维人员),本示例对用户类型不作限定。不管哪种类型的用户均可以通过第一API服务组件对多个服务器集群进行数据库实例的相关操作。
举例而言,当用户为使用数据库的终端用户时,该数据库实例操作请求可以是创建或删除数据库实例的请求。当用户为开发数据库的应用程序开发人员时,该数据库实例操作请求可以是修改或设计数据库实例的内容、结构、存储结果、存取策略的请求。当用户为管理数据库的数据库管理人员时,该数据库实例操作请求可以是维护、改进或重组数据库实例的请求。
在本示例实施方式中,数据库实例操作请求可以包括目标集群标识信息和数据库实例操作对应的资源状态信息,还可以包括数据库实例操作对应的各种参数配置信息;数据库实例操作可以是不同用户对数据库实例的不同操作,例如,创建或删除某数据库实例。目标集群标识信息可以包括目标集群ID,还可以包括目标集群IP地址,还可以包括目标集群区域等信息,本示例对此不做特殊限定。数据库实例操作对应的资源状态信息可以包括数据库实例操作涉及数据的存储容量、数据类型、运行环境要求、实现接口等信息,数据库实例操作对应的资源状态信息用于描述数据库实例操作对应数据及其环境的信息。
在本示例实施方式中,多个服务器集群可以是处于不同地域的服务器集群,也可以是不同供应商提供的云服务器集群。可以根据目标集群标识确定目标服务器集群,由目标服务器集群进行相应数据库实例操作。例如,在目标服务器集群中创建或者删除数据库实例。
在本示例实施方式中,第一API服务组件220可以是开放API,便于用户访问。用户可以通过第一API服务组件220实现在多个服务器集群上进行数据库实例操作,避免不同供应商服务器集群的分别管理导致的用户体验差的问题。
元数据管理模块230,用于接收并存储所述第一API服务组件转发的数据库实例操作对应的资源状态信息。
在本示例实施方式中,元数据管理模块230可以包括一个元数据管理库,元数据管理库中存储和管理着多个服务器集群上的相关信息,例如,每个数据库的数据类型、数据结构、数据库运行状态、运行环境要求、配置参数等等信息。数据库实例操作对应的资源状态信息经第一API服务组件220转发给元数据管理模块230进行存储。
本示例提供的多集群数据库管理***,一方面通过设置第一API服务组件,用于接收用户的数据库实例操作请求,并基于将数据库实例操作请求转发至目标服务器集群,使用户可以通过调用该第一API服务组件实现对多个服务器集群的统一管理,提升用户体验。另一方面,通过第一API服务组件将数据库实例操作请求中的数据库实例操作的相关信息转发至元数据管理模块,在数据库实例操作之前实现相关信息的存储,能够减少后续的数据传输过程,提高数据库管理效率。
在一些实施例中,参考图3,每个所述服务器集群包含:
第二API服务组件212,用于接收所述第一API服务组件转发的所述数据库实例操作请求,并基于所述数据库实例操作请求构建对应的自定义资源。
本示例实施方式中,第二API服务组件212可以是与数据库实例操作相关的接口服务组件。本示例对第二API服务组件212进行改进,将其IP地址暴露给第一API服务组件220,实现第二API服务组件212与第一API服务组件220的通信连接,从而使第二API服务组件212获得数据库实例操作请求,再基于该请求构建对应的自定义资源(Custom Resource,CR)。例如,数据库实例操作请求是创建数据库实例,则构建用户请求中该数据库实例所需的资源(如数据库实例所需的安全运行环境、数据库实例所需的存储类型或存储空间等资源信息)。
在本示例实施方式中,第二API服务组件212还可以对数据库实例操作之后的资源状态信息进行更新。
执行模块214,用于根据所述自定义资源进行相应数据库实例操作并更新操作后的资源状态信息。
本示例实施方式中,执行模块214是数据库实例操作请求的具体执行模块。例如,执行模块214可以根据创建数据库实例请求,基于自定义资源在目标服务器集群中创建符合请求的数据库实例,创建新的数据库实例之后需要对该数据库实例的资源状态信息进行逐步更新,例如,创建初期可以是初始化状态,逐步的变更为正常使用状态(running状态)。
在一些实施例中,参考图4,每个所述服务器集群210还包括第三API服务组件216;所述***还包括:
协调组件240,用于通过所述第三API服务组件216监听对应服务器集群内的资源状态变更,并将变更后的资源状态信息同步至所述元数据管理模块。
在本示例实施方式中,协调组件240可以为多个服务器集群内的数据库实例提供监听管理。通过调用每个服务器集群内的第三API服务组件216来监听该集群内的资源状态变更情况,将监听到的最新资源状态信息同步至元数据管理模块,以使元数据管理模块内的数据库资源状态信息与实际情况保持一致。
在一些实施例中,参考图4,每个所述服务器集群210还包括管理引擎,用于管理每个cluster内的容器进程。例如,其可以是K8S管理引擎(K8S engine)。
在一些实施例中,所述第一API服务组件220还用于:
响应于负载均衡指令,调整各服务器集群内数据库实例对应的副本数量。
在本示例实施方式中,用户可以通过第一API服务组件220直接对各服务器集群内的数据库实例的副本数量进行修改(添加或删减),以均衡服务器集群内的业务负载量;与底层的服务器集群数目无直接关联,可以非常方便的实现管理***管控面的扩展或缩减。
在一些实施例中,所述协调组件240还用于:
响应于多个所述服务器集群的集群数量变化,添加或删除所述协调组件对服务器集群的对应配置文件并重启该协调组件的服务;或者,响应于多个所述服务器集群的集群数量变化,添加或删除一个服务器集群对应协调组件的服务。
在本示例实施方式中,对于不同用户,其所具有的服务器集群上的数据库使用权限是不同的,也就是说,不同的用户对应的服务器集群的数量可能会不同。这样对于不同用户在部署本示例的管理***时,可以添加(对应服务器集群数量增加)或删除(对应服务器集群数量减少)协调组件对服务器集群的对应配置文件并重启该协调组件的服务。也可以直接添加或删除一个服务器集群对应协调组件的服务。以上两种方式均可以实现本***管控面的调整(扩展或缩减)。
一些实施例中,参考图5所示,多个所述服务器集群210包含多个Kubernetes集群,所述协调组件240包括:
管理控制模块242,用于针对每个Kubernetes集群创建一个命名空间控制模块。
在本示例实施方式中,多个所述服务器集群210可以分别是Kubernetes集群,管理控制模块242负责维护集群的状态,比如故障检测、自动扩展、滚动更新等。管理控制模块242依据kubernetes集群配置而启动;可以为每个服务器集群210创建一个命名空间控制模块(Namespace Controller)。
命名空间控制模块244,用于监听对应Kubernetes集群的命名空间事件,并对每个新建的目标命名空间构建一个控制群组,所述目标命名空间为携带有执行模块标签的命名空间。
在本示例实施方式中,Kubernetes集群的数据库管理是基于命名空间(Namespace)的事件而进行容器进程管理的,实现了适用于Kubernetes集群的云原生数据库管理。
控制群组246,用于监听对应Kubernetes集群的状态信息。
在本示例实施方式中,控制群组246可以监听对应Kubernetes集群内的整体运行状态、副本状态,还可以将监听到的状态信息更新至元数据管理模块。还可以控制对应Kubernetes集群的自动备份等任务。
一些实施例中,参考图5,所述数据库包含PostgreSQL数据库,所述控制群组246包括:
PostgreSQL控制子模块2462,用于监听对应数据库实例的整体状态信息,并将监听到的该服务器集群的整体状态信息更新至元数据管理模块。
PostgreSQL副本控制子模块2464,用于监听对应数据库实例的副本状态信息,并将监听到的该服务器集群的副本状态信息更新至元数据管理模块。
PostgreSQL任务控制子模块2466,用于对相应数据库实例的数据进行自动备份和/或修改对应服务器集群的审计策略。
本示例实施方式中,虚线表示将PostgreSQL控制子模块2462、PostgreSQL副本控制子模块2464、PostgreSQL任务控制子模块2466监听到的最新状态信息或服务器集群的数据同步至元数据管理模块。
一些实施例中,所述第一API服务组件220还用于:
配置与所述数据库实例操作请求对应的数据库实例的数据库参数、数据库存储类型和数据库访问方式中的一种或多种。
在本示例实施方式中,数据库参数可以包括数据库的数据类型、数据结构、数据所需存储空间等信息。数据库存储类型可以包括云盘存储和本地盘存储。数据库访问方式可以包括负载均衡(Load Balance,LB)方式和数据库实例IP方式。以上信息可以通过第一API服务组件220进行配置。
本公开面向不同地域的数据库服务器集群,通过设计第一API服务组件,形成了多个数据库服务器集群的统一管理***,通过第一API服务组件可以实现对与其关联的服务器集群内的数据库实例进行相应操作,避免了现有在不同供应商的服务器集群之间的切换,提升用户体验。此外,可以通过对第一API服务组件的水平扩展,实现对更多集群的统一管理,提升业务负载能力,为大型数据库集群的统一管理提供重要基础。总之,本公开能够提供适用于多个服务器集群(如kubernetes)的云原生数据库(PostgreSQL)统一管理入口,可以实现快速水平扩展,提升业务负载能力。
进一步的,本示例实施方式中,还提供了一种多集群数据库管理方法。该多集群数据库管理方法可以应用于多集群数据库管理***,所述***包括多个服务器集群和元数据管理模块,多个所述服务器集群分布于不同地域;所述方法包括:
步骤610,接收包括目标集群标识信息和数据库实例操作对应的资源标识信息的数据库实例操作请求,并基于所述目标集群标识信息,将所述数据库实例操作请求转发至目标服务器集群,以使所述目标服务器集群基于所述数据库实例操作请求进行相应数据库实例操作并更新与所述资源标识信息对应的操作后的资源状态信息;所述目标服务器集群包含多个所述服务器集群中的一个或多个。
步骤620,通过元数据管理模块接收并存储所述数据库实例操作对应的资源状态信息。
在本公开的一种示例性实施例中,所述方法还包括:
响应于负载均衡指令,调整各服务器集群内数据库实例对应的副本数量。
在本公开的一种示例性实施例中,每个所述服务器集群包括第二API服务组件和执行模块,所述基于所述数据库实例操作请求进行相应数据库实例操作并更新操作后的资源状态信息,包括:
接收所述第一API服务组件转发的所述数据库实例操作请求,并基于所述数据库实例操作请求构建对应的自定义资源。
根据所述自定义资源进行相应数据库实例操作并更新操作后的资源状态信息。
在本公开的一种示例性实施例中,每个所述服务器集群还包括第三API服务组件;所述方法还包括:
监听对应数据库实例的资源状态变更,并将变更后的资源状态信息同步至所述元数据管理模块。
在本公开的一种示例性实施例中,所述***还包括协调组件,所述方法还包括:
响应于多个所述服务器集群的集群数量变化,添加或删除协调组件对服务器集群的对应配置文件并重启该协调组件的服务;或者,响应于多个所述服务器集群的集群数量变化,添加或删除一个服务器集群对应协调组件的服务。
在本公开的一种示例性实施例中,多个服务器集群包含多个Kubernetes集群;协调组件包括管理控制模块,所述方法还包括:
针对每个Kubernetes集群创建一个命名空间控制模块。
监听对应Kubernetes集群的命名空间事件,并对每个新建的目标命名空间构建一个控制群组,所述目标命名空间为携带有执行模块标签的命名空间。
监听对应Kubernetes集群的状态信息。
在本公开的一种示例性实施例中,所述方法还包括:
配置与所述数据库实例操作请求对应的数据库实例的数据库参数、数据库存储类型和数据库访问方式中的一种或多种。
上述多集群数据库管理方法中各步骤的具体细节已经在对应的多集群数据库管理***中进行了详细的描述,因此此处不再赘述。
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
作为另一方面,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现如下述实施例中所述的方法。例如,所述的电子设备可以实现如图6所示的各个步骤等。
需要说明的是,本公开所示的计算机可读存储介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读存储介质,该计算机可读存储介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
图7示出了适于用来实现本公开实施例的电子设备的计算机***的结构示意图。
需要说明的是,图7示出的电子设备的计算机***700仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图7所示,计算机***700包括中央处理单元(CPU)701,其可以根据存储在只读存储器(ROM)702中的程序或者从存储部分708加载到随机访问存储器(RAM)703中的程序而执行各种适当的动作和处理。在RAM 703中,还存储有***操作所需的各种程序和数据。CPU701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
以下部件连接至I/O接口705:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至I/O接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。
特别地,根据本公开的实施例,下文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。在该计算机程序被中央处理单元(CPU)701执行时,执行本申请的方法和装置中限定的各种功能。
附图中的流程图和框图,图示了按照本公开各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
需要说明的是,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等,均应视为本公开的一部分。
应可理解的是,本说明书公开和限定的本公开延伸到文中和/或附图中提到或明显的两个或两个以上单独特征的所有可替代组合。所有这些不同的组合构成本公开的多个可替代方面。本说明书的实施方式说明了已知用于实现本公开的最佳方式,并且将使本领域技术人员能够利用本公开。
Claims (12)
1.一种多集群数据库管理***,其特征在于,包括:
多个服务器集群,多个所述服务器集群分布于不同地域;
第一应用程序接口API服务组件,用于接收包括目标集群标识信息和数据库实例操作对应的资源标识信息的数据库实例操作请求,并基于所述目标集群标识信息,将所述数据库实例操作请求转发至目标服务器集群,以使所述目标服务器集群基于所述数据库实例操作请求进行相应数据库实例操作并更新与所述资源标识信息对应的操作后的资源状态信息;所述目标服务器集群包含多个所述服务器集群中的一个或多个;
元数据管理模块,用于接收并存储所述第一API服务组件转发的数据库实例操作对应的资源状态信息。
2.根据权利要求1所述的多集群数据库管理***,其特征在于,每个所述服务器集群包括:
第二API服务组件,用于接收所述第一API服务组件转发的所述数据库实例操作请求,并基于所述数据库实例操作请求构建对应的自定义资源;
执行模块,用于根据所述自定义资源进行相应数据库实例操作并更新操作后的资源状态信息。
3.根据权利要求1或2所述的多集群数据库管理***,其特征在于,每个所述服务器集群还包括第三API服务组件;所述***还包括:
协调组件,用于通过所述第三API服务组件监听对应数据库实例的资源状态变更,并将变更后的资源状态信息同步至所述元数据管理模块。
4.根据权利要求1所述的多集群数据库管理***,其特征在于,所述第一API服务组件还用于:
响应于负载均衡指令,调整各服务器集群内数据库实例对应的副本数量。
5.根据权利要求3所述的多集群数据库管理***,其特征在于,所述协调组件还用于:
响应于多个所述服务器集群的集群数量变化,添加或删除所述协调组件对服务器集群的对应配置文件并重启该协调组件的服务;
或者,
响应于多个所述服务器集群的集群数量变化,添加或删除相应服务器集群对应协调组件的服务。
6.根据权利要求3所述的多集群数据库管理***,其特征在于,多个所述服务器集群为多个Kubernetes集群,所述协调组件包括:
管理控制模块,用于针对每个Kubernetes集群创建一个命名空间控制模块;
命名空间控制模块,用于监听对应Kubernetes集群的命名空间事件,并对每个新建的目标命名空间构建一个控制群组,所述目标命名空间为携带有执行模块标签的命名空间;
控制群组,用于监听对应Kubernetes集群的状态信息。
7.根据权利要求6所述的多集群数据库管理***,其特征在于,所述数据库为PostgreSQL数据库,所述控制群组包括:
PostgreSQL控制子模块,用于监听对应数据库实例的整体状态信息,并将监听到的该服务器集群的整体状态信息更新至元数据管理模块;
PostgreSQL副本控制子模块,用于监听对应数据库实例的副本状态信息,并将监听到的该服务器集群的副本状态信息更新至元数据管理模块;
PostgreSQL任务控制子模块,用于对相应数据库实例的数据进行自动备份和/或修改对应服务器集群的审计策略。
8.根据权利要求2所述的多集群数据库管理***,其特征在于,所述第一API服务组件还用于:
配置与所述数据库实例操作请求对应的数据库实例的数据库参数、数据库存储类型和数据库访问方式中的一种或多种。
9.一种多集群数据库管理方法,应用于多集群数据库管理***,所述***包括多个服务器集群和元数据管理模块,多个所述服务器集群分布于不同地域;其特征在于,所述方法包括:
接收包括目标集群标识信息和数据库实例操作对应的资源标识信息的数据库实例操作请求,并基于所述目标集群标识信息,将所述数据库实例操作请求转发至目标服务器集群,以使所述目标服务器集群基于所述数据库实例操作请求进行相应数据库实例操作并更新与所述资源标识信息对应的操作后的资源状态信息;所述目标服务器集群包含多个所述服务器集群中的一个或多个;
接收并存储所述数据库实例操作对应的资源状态信息。
10.根据权利要求9所述的多集群数据库管理方法,其特征在于,所述方法还包括:
响应于负载均衡指令,调整各服务器集群内数据库实例对应的副本数量。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求9或10中所述的方法。
12.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求9或10所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210580022.4A CN114996337A (zh) | 2022-05-25 | 2022-05-25 | 多集群数据库管理***及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210580022.4A CN114996337A (zh) | 2022-05-25 | 2022-05-25 | 多集群数据库管理***及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114996337A true CN114996337A (zh) | 2022-09-02 |
Family
ID=83029687
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210580022.4A Pending CN114996337A (zh) | 2022-05-25 | 2022-05-25 | 多集群数据库管理***及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114996337A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115878378A (zh) * | 2022-11-23 | 2023-03-31 | 北京凌云雀科技有限公司 | 基于云原生的两地三中心数据库容灾***部署方法及装置 |
CN117171261A (zh) * | 2023-07-31 | 2023-12-05 | 蒲惠智造科技股份有限公司 | 面向多数据库单元的弹性扩展智能调用方法和*** |
-
2022
- 2022-05-25 CN CN202210580022.4A patent/CN114996337A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115878378A (zh) * | 2022-11-23 | 2023-03-31 | 北京凌云雀科技有限公司 | 基于云原生的两地三中心数据库容灾***部署方法及装置 |
CN115878378B (zh) * | 2022-11-23 | 2023-09-05 | 北京凌云雀科技有限公司 | 基于云原生的两地三中心数据库容灾***部署方法及装置 |
CN117171261A (zh) * | 2023-07-31 | 2023-12-05 | 蒲惠智造科技股份有限公司 | 面向多数据库单元的弹性扩展智能调用方法和*** |
CN117171261B (zh) * | 2023-07-31 | 2024-05-03 | 蒲惠智造科技股份有限公司 | 面向多数据库单元的弹性扩展智能调用方法和*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9699025B2 (en) | System and method for managing multiple server node clusters using a hierarchical configuration data structure | |
US11561784B2 (en) | Versioning of pipeline templates for continuous delivery of services on datacenters configured in cloud platforms | |
US11487546B2 (en) | Change management of services deployed on datacenters configured in cloud platforms | |
CN114996337A (zh) | 多集群数据库管理***及方法 | |
US10970141B2 (en) | Integrating transaction processing system interfaces with event-driven polyglot runtime modules | |
EP4173181B1 (en) | Container orchestration system (cos) services discovery across multiple cos clusters based on cos cluster domain name system | |
JP2024506834A (ja) | クラウドコンピューティングプラットフォーム上のデータセンタビルドのマルチサブストレートフォールトトレラント継続的配信 | |
US11677620B2 (en) | Declarative specification based override mechanism for customizing data centers deployed on cloud platforms | |
US8738746B2 (en) | Configuration management for real-time server | |
CN114911518A (zh) | 云函数应用发布管理方法、***、设备及存储介质 | |
CN116783581A (zh) | 在云平台中配置的数据中心上部署软件发布 | |
US10824511B2 (en) | Data migration for a shared database | |
CN114840222A (zh) | 基于esop***的灰度发布方法及相关设备 | |
CN116940924A (zh) | 计算环境中的应用程序部署 | |
US10140155B2 (en) | Dynamically provisioning, managing, and executing tasks | |
CN111984686A (zh) | 一种数据处理的方法和装置 | |
CN113761075A (zh) | 切换数据库的方法、装置、设备和计算机可读介质 | |
US11853275B2 (en) | Upgrading a database management system deployed in a cloud platform | |
US20230246916A1 (en) | Service map conversion with preserved historical information | |
US20240259473A1 (en) | Distributed serverless rule consequence evaluation for a containerized rules engine | |
US11977922B2 (en) | Resource reuse for pipeline workloads | |
US20240256251A1 (en) | Orchestration of software releases on a cloud platform | |
US20230385075A1 (en) | Networked Universal Code Package Provider | |
US20230129453A1 (en) | Self-healing build pipelines for an application build process across distributed computer platforms | |
US20240028484A1 (en) | Automatic discovery of application resources for application backup in a container orchestration platform |
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 |