CN115510156A - 一种云原生高可用数据库服务提供系统及方法 - Google Patents
一种云原生高可用数据库服务提供系统及方法 Download PDFInfo
- Publication number
- CN115510156A CN115510156A CN202211158951.2A CN202211158951A CN115510156A CN 115510156 A CN115510156 A CN 115510156A CN 202211158951 A CN202211158951 A CN 202211158951A CN 115510156 A CN115510156 A CN 115510156A
- Authority
- CN
- China
- Prior art keywords
- container
- database
- service
- standby
- main
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- 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/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及数据存储技术领域,特别涉及一种云原生高可用数据库服务提供系统及方法。该方法应用于云原生数据库包括的各子数据库,所述云原生数据库包括多个不同数据库类型的子数据库,每一子数据库包括多个存储节点,多个存储节点采用一主多备模式,所述系统包括:针对目标子数据库包括的多个存储节点分别创建的服务容器,其中,每一存储节点对应的服务容器包括用于提供数据库功能的实例进程和用于主备存储节点选举的协调进程;至少一个代理容器,其中,一个代理容器包括用于代理转发客户端发送的数据处理请求的代理进程,代理进程与客户端建立连接,并将客户端发送的处理请求代理转发至存储节点。
Description
技术领域
本申请涉及数据存储技术领域,特别涉及一种云原生高可用数据库服务提供系统及方法。
背景技术
近年来,数字体验在人们的日常生活中扮演着重要的角色,人们对软件的期望越来越高,希望应用程序总是可用的,能够不断的升级并提供个性化体验。云原生软件架构风格应运而生,其核心特征:高度分布式的,必须在不断变化的环境中运行,并且软件本身也在不断的发展、变化。
云原生软件的设计目的是预测故障,并且即使当它所依赖的基础设施出现故障,或者发生其他变化时,它也依然能够保持稳定运行。
随着SDN技术广泛应用于各个领域,整个SDN解决方案包含众多子域的系统,每个子系统根据场景需要集成了不同的数据库,个别系统还自研了轻量级数据服务。与无状态服务相比,有状态的数据服务为了满足冗余性、可适应性、动态伸缩等能力,要解决的技术问题多且复杂。而每种数据库中间件适配容器化部署的方案不统一,监控维度千差万别,需投入较大的成本维护。如果是自研的数据库服务,需要自研容器化部署方案。
目前,SDN解决方案包含众多子域的系统,不同子系统采用不同额数据库,而不同数据库采用的高可用部署方式不尽相同,部分数据库需要根据需求定制开发部署方案,开发维护成本高,且无法统一监控,遇到问题时定位难度大。如:Postgresql的Stolon方案、Percona Server的PXC方案以及Redis的哨兵方案等。
发明内容
本申请提供了一种云原生高可用数据库提供系统及方法。
第一方面,本申请提供了一种云原生高可用数据库服务提供系统,应用于云原生数据库包括的各子数据库,所述云原生数据库包括多个不同数据库类型的子数据库,每一子数据库包括多个存储节点,多个存储节点采用一主多备模式,所述系统包括:
针对目标子数据库包括的多个存储节点分别创建的服务容器,其中,每一存储节点对应的服务容器包括用于提供数据库功能的实例进程和用于主备存储节点选举的协调进程;
至少一个代理容器,其中,一个代理容器包括用于代理转发客户端发送的数据处理请求的代理进程,代理进程与客户端建立连接,并将客户端发送的处理请求代理转发至存储节点。
可选地,所述系统还包括容器编排器存储组件,所述容器编排器存储组件用于存储所述系统包括的各容器的容器状态信息,各容器的容器状态信息包括各服务容器的主备状态,所述代理容器将客户端发送的处理请求代理转发至主服务容器对应的主存储节点。
可选地,所述代理容器基于所述容器编排器存储组件存储的各容器的容器状态信息包含的各服务容器的主备状态,确定当前主服务容器和备服务容器,所述代理容器与主服务容器建立连接,将客户端发送的处理请求代理转发至主服务容器对应的主存储节点;
当作为主服务容器的第一服务容器异常,作为备服务容器的第二容器切换为主服务容器时,所述容器编排器存储组件存储的所述第一服务容器的主备状态修改为备,所述第二服务容器的主备状态修改为主,所述代理容器在获取到所述容器编排器存储组件存储的所述第二服务容器的主备状态为主之后,将客户端发送的处理请求代理转发至所述第二服务容器对应的存储节点。
可选地,客户端发送的处理请求包括读请求和写请求;所述代理容器与主服务容器建立连接,并将客户端发送的写请求代理转发至主服务容器对应的主存储节点;所述代理容器与备服务容器建立连接,并将客户端发送的读请求代理转发至备服务容器对应的备存储节点。
可选地,所述云原生数据库还包括所述目标子数据库对应的备用目标子数据库,针对所述备用目标子数据库包括的多个存储节点分别创建的服务容器,至少一个代理容器和容器编排器存储组件;
所述目标子数据库的主服务容器与所述备用目标子数据库的主服务容器之间建立连接,并建立流复制机制,当所述备用目标子系统切换为主时,由所述备用目标子数据库的主服务容器对外提供数据存储服务。
第二方面,本申请提供了一种云原生高可用数据库服务提供方法,应用于云原生数据库包括的各子数据库,所述云原生数据库包括多个不同数据库类型的子数据库,每一子数据库包括多个存储节点,多个存储节点采用一主多备模式,所述方法包括:
针对目标子数据库包括的多个存储节点分别创建对应的服务容器,其中,每一存储节点对应的服务容器包括用于提供数据库功能的实例进程和用于主备存储节点选举的协调进程;
针对所述目标子数据库创建至少一个代理容器,其中,一个代理容器包括用于代理转发客户端发送的数据处理请求的代理进程,代理进程与客户端建立连接,并将客户端发送的处理请求代理转发至存储节点。
可选地,所述方法还包括:
针对所述目标子数据库创建用于存储所述目标子数据库包括的各容器的容器状态信息的容器编排器存储组件,各容器的容器状态信息包括各服务容器的主备状态;
所述代理容器将客户端发送的处理请求代理转发至主服务容器对应的主存储节点。
可选地,所述代理容器基于所述容器编排器存储组件存储的各容器的容器状态信息包含的各服务容器的主备状态,确定当前主服务容器和备服务容器,所述代理容器与主服务容器建立连接,将客户端发送的处理请求代理转发至主服务容器对应的主存储节点;
当作为主服务容器的第一服务容器异常,作为备服务容器的第二容器切换为主服务容器时,所述容器编排器存储组件存储的所述第一服务容器的主备状态修改为备,所述第二服务容器的主备状态修改为主,所述代理容器在获取到所述容器编排器存储组件存储的所述第二服务容器的主备状态为主之后,将客户端发送的处理请求代理转发至所述第二服务容器对应的存储节点。
可选地,客户端发送的处理请求包括读请求和写请求;
所述代理容器与主服务容器建立连接,并将客户端发送的写请求代理转发至主服务容器对应的主存储节点;所述代理容器与备服务容器建立连接,并将客户端发送的读请求代理转发至备服务容器对应的备存储节点。
可选地,所述云原生数据库还包括所述目标子数据库对应的备用目标子数据库,针对所述备用目标子数据库包括的多个存储节点分别创建的服务容器,至少一个代理容器和容器编排器存储组件;
所述目标子数据库的主服务容器与所述备用目标子数据库的主服务容器之间建立连接,并建立流复制机制,当所述备用目标子系统切换为主时,由所述备用目标子数据库的主服务容器对外提供数据存储服务。
综上可知,本申请实施例提供的云原生高可用数据库服务提供系统,应用于云原生数据库包括的各子数据库,所述云原生数据库包括多个不同数据库类型的子数据库,每一子数据库包括多个存储节点,多个存储节点采用一主多备模式,所述系统包括:针对目标子数据库包括的多个存储节点分别创建的服务容器,其中,每一存储节点对应的服务容器包括用于提供数据库功能的实例进程和用于主备存储节点选举的协调进程;至少一个代理容器,其中,一个代理容器包括用于代理转发客户端发送的数据处理请求的代理进程,代理进程与客户端建立连接,并将客户端发送的处理请求代理转发至存储节点。
采用本申请实施例提供的云原生高可用数据库服务提供系统,定义各数据库通用的高可用数据库部署方式,云原生数据库包括的不同数据库类型的各子数据库采用通用的高可用部署方式进行部署,与不同数据库类型的数据库采用不同的高可用部署方式相比较,简化了部署执行过程,提高了部署效率,也是的数据库的后续运维更简单可靠。
附图说明
为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本申请实施例的这些附图获得其他的附图。
图1为本申请实施例提供的一种云原生高可用数据库服务提供系统的结构示意图;
图2为本申请实施例提供的一种数据库实例复制过程示意图;
图3为本申请实施例提供的一种云原生高可用数据库服务提供方法的详细流程图。
具体实施方式
在本申请实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
随着云原生技术广泛应用于各个领域,一个组网系统可以包含众多子域的系统,每个子系统根据场景需要集成了不同类型的数据库。那么,各子系统的高可用数据库部署方式可能不尽相同,存在部署过程复杂,维护成本高鞥问题,本申请为了解决相关问题提出了一种云原生高可用数据库服务提供系统及方法。
示例性的,参阅图1所示,为本申请实施例提供的一种云原生高可用数据库服务提供系统的结构示意图,应用于云原生数据库包括的各子数据库,所述云原生数据库包括多个不同数据库类型的子数据库,每一子数据库包括多个存储节点,多个存储节点采用一主多备模式,以子数据库为目标子数据库为例进行说明,该系统包括:
针对目标子数据库包括的多个存储节点分别创建的服务容器,其中,每一存储节点对应的服务容器包括用于提供数据库功能的实例进程和用于主备存储节点选举的协调进程。
本申请实施例中,假设目标子数据库包括3个存储节点(后端存储,图中未示出),那么,就可以基于容器编排器(如,K8s)创建3个与存储节点一一对应的服务容器,需要说明的是,一个服务容器至少包括一个实例进程和一个协调进程,该实例进程用于提供数据库功能,具备流复制的能力,可以是异步流复制,也可以是同步流复制,各服务容器包括的协调进程之间配置有选举协议,用于主服务容器(即主存储节点)的选举,可以解决网络震荡、宕机重启等异常场景下主存储节点一致性问题。
该系统还包括至少一个代理容器,其中,一个代理容器包括用于代理转发客户端发送的数据处理请求的代理进程,代理进程主要负责客户端连接处理,代理进程与客户端建立连接,并将客户端发送的处理请求代理转发至存储节点。
进一步地,本申请实施例中,所述系统还包括容器编排器存储组件,所述容器编排器存储组件用于存储所述系统包括的各容器的容器状态信息,各容器的容器状态信息包括各服务容器的主备状态。
也就是说,在构建目标子系统的高可用数据库服务,创建各容器时,还可以在存储服务器上创建用于维护各容器的容器状态信息的容器编排器存储组件,例如,各服务容器的协调进程可以向容器编排器存储组件上报自身所属的服务容器的状态信息(包括健康指标信息,服务容器是否为主服务容器的信息等),这样,容器编排器存储组件就维护有各服务容器的主备状态信息。
需要说明的是,协调进程还可以把目标子系统的集群数据维护至容器编排器存储组件,如,协调进程还可以将主备切换数据上报至容器编排器存储组件,容器编排器存储组件还可以存储有目标子系统的集群元数据(如,集群状态信息)。
本申请实施例中,由于容器编排器存储组件存储的各容器的容器状态信息包含的各服务容器的主备状态,那么,所述代理容器就可以基于所述容器编排器存储组件存储的各容器的容器状态信息包含的各服务容器的主备状态,确定当前主服务容器和备服务容器,所述代理容器与主服务容器建立连接,将客户端发送的处理请求代理转发至主服务容器对应的主存储节点。
实际应用中,代理容器与客户端直连,至少一个代理容器采用负载分担方式的方式代理转发客户端发送的数据访问请求。代理容器数量可以需求创建,可以启动多个代理容器,不同的代理容器运行在不同的物理服务器上,这样,就可以满足客户端就近访问存储网络的需求。
一种较佳的实现方式,代理容器从容器编排器存储组件获取主服务容器信息,然后将代理转发路由定向至主服务容器,即将接收到的客户端发送的数据访问请求路由至主服务容器对应的存储节点。
更进一步地,客户端发送的处理请求包括读请求和写请求。那么,所述代理容器与主服务容器建立连接,并将客户端发送的写请求代理转发至主服务容器对应的主存储节点;所述代理容器还可以与备服务容器建立连接,并将客户端发送的读请求代理转发至备服务容器对应的备存储节点。
当作为主服务容器的第一服务容器异常,作为备服务容器的第二容器切换为主服务容器时,所述容器编排器存储组件存储的所述第一服务容器的主备状态修改为备,所述第二服务容器的主备状态修改为主,所述代理容器在获取到所述容器编排器存储组件存储的所述第二服务容器的主备状态为主之后,将客户端发送的处理请求代理转发至所述第二服务容器对应的存储节点。
需要解决的集群异常问题包括:
1.主/从服务容器所在服务器节点宕机;
2.网络抖动、网络分区等;
3.脑裂情况下数据不一致,集群状态恢复后如何处理不一致数据。
本申请实施例个,各协调进程之间配置Raft算法协议进行主服务容器(主存储节点)选举,具体地,从服务容器所在服务器节点宕机,不触发新的选主流程。主服务容器所在服务器节点宕机,按照raft算法执行流程,从协调进程发现主服务容器不存在,开始选举新的主,变为candidate状态,当某一服务容器得到大多数选举者的同意,转变为leader状态,新的主服务容器被选举出来。然后更改实例进程的配置等,主服务容器包括的实例进程转变为主实例进程。
当出现网络分区,导致脑裂后,因新主拥有更高的任期,更新容器编排器存储里的数据。代理容器会根据编排器存储的数据,把客户端连接路由到新的主服务容器,旧主服务容器上的客户端连接会被断开。
进一步地,本申请实施例中,所述云原生数据库还包括所述目标子数据库对应的备用目标子数据库,针对所述备用目标子数据库包括的多个存储节点分别创建的服务容器,至少一个代理容器和容器编排器存储组件;所述目标子数据库的主服务容器与所述备用目标子数据库的主服务容器之间建立连接,并建立流复制机制,当所述备用目标子系统切换为主时,由所述备用目标子数据库的主服务容器对外提供数据存储服务。
示例性的,参阅图2所示,为本申请实施例提供的数据库实例复制过程示意图,备集群选出一个主实例进程,通过K8S API查询主站点上的主实例进程IP,并建立流复制关系;备集群内部发生宕机、网络震荡等异常,执行主备实例进程切换流程,在此不再赘述;当发生主备站点切换,监听主备切换的钩子函数,备站点升为主站点,备站点主实例进程对外提供存储服务;如果是手动切换主备站点,主站点降备后,执行降备动作;如果是灾难导致主站点宕掉,备站点切换为新主站点,待原主站点恢复后,以备站点的身份重启服务。
实际应用中,主备站点上的数据库服务往往采用“主集群-备集群”的热备方式,与主备站点使用同一集群相比,有如下优势:
1.备集群的节点不参与主集群的选主等动作;
2.备集群内部也无选主动作,只需与主库保持流复制即可;
3.发生灾难时,备集群升主集群,直接在备集群中选主更加容易;
4.备集群只需选出单个实例进程,与主库保持流复制关系,其他实例进程与该实例保持流复制关系,既节省了数据同步链路的流量,又降低了数据不一致风险。
进一步地,本申请实施例提供的云原生高可用数据库服务提供系统还可以包括监控容器,即创建有监控容器包括监控进程,监控进程可以基于预设周期从容器编排其存储组件中获取目标子系统的集群状态,可以实时查询并展示目标子系统包括的各容器的容器状态(集群状态)。
示例性的,参阅图3所示,为本申请实施例提供的一种云原生高可用数据库服务提供方法的详细流程图,该方法应用于云原生数据库包括的各子数据库,所述云原生数据库包括多个不同数据库类型的子数据库,每一子数据库包括多个存储节点,多个存储节点采用一主多备模式,该方法包括以下步骤:
步骤300:针对目标子数据库包括的多个存储节点分别创建对应的服务容器,其中,每一存储节点对应的服务容器包括用于提供数据库功能的实例进程和用于主备存储节点选举的协调进程。
步骤310:针对所述目标子数据库创建至少一个代理容器,其中,一个代理容器包括用于代理转发客户端发送的数据处理请求的代理进程,代理进程与客户端建立连接,并将客户端发送的处理请求代理转发至存储节点。
本申请实施例中,针对所述目标子数据库创建用于存储所述目标子数据库包括的各容器的容器状态信息的容器编排器存储组件,各容器的容器状态信息包括各服务容器的主备状态;所述代理容器将客户端发送的处理请求代理转发至主服务容器对应的主存储节点。
基于上述描述可知,所述代理容器基于所述容器编排器存储组件存储的各容器的容器状态信息包含的各服务容器的主备状态,确定当前主服务容器和备服务容器,所述代理容器与主服务容器建立连接,将客户端发送的处理请求代理转发至主服务容器对应的主存储节点。
那么,当检测到作为主服务容器的第一服务容器异常,作为备服务容器的第二容器切换为主服务容器时,所述容器编排器存储组件存储的所述第一服务容器的主备状态修改为备,所述第二服务容器的主备状态修改为主,所述代理容器在获取到所述容器编排器存储组件存储的所述第二服务容器的主备状态为主之后,将客户端发送的处理请求代理转发至所述第二服务容器对应的存储节点。
进一步地,客户端发送的处理请求包括读请求和写请求;那么,所述代理容器与主服务容器建立连接,并将客户端发送的写请求代理转发至主服务容器对应的主存储节点;所述代理容器与备服务容器建立连接,并将客户端发送的读请求代理转发至备服务容器对应的备存储节点。
这样,就可以将读写流量分流,降低主存储节点的单个存储节点的性能处理压力,提高客户端访问请求处理效率,提升用户体验。
进一步的,所述云原生数据库还包括所述目标子数据库对应的备用目标子数据库,针对所述备用目标子数据库包括的多个存储节点分别创建的服务容器,至少一个代理容器和容器编排器存储组件。
所述目标子数据库的主服务容器与所述备用目标子数据库的主服务容器之间建立连接,并建立流复制机制,当所述备用目标子系统切换为主时,由所述备用目标子数据库的主服务容器对外提供数据存储服务。
以上这些单元可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器(digital singnal processor,简称DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个单元通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(CentralProcessing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些单元可以集成在一起,以片上系统(system-on-a-chip,简称SOC)的形式实现。
可选地,本申请还提供一种程序产品,例如计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令用于使该计算机执行上述方法实施例。
这里,机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(RadomAccess Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (10)
1.一种云原生高可用数据库服务提供系统,其特征在于,应用于云原生数据库包括的各子数据库,所述云原生数据库包括多个不同数据库类型的子数据库,每一子数据库包括多个存储节点,多个存储节点采用一主多备模式,所述系统包括:
针对目标子数据库包括的多个存储节点分别创建的服务容器,其中,每一存储节点对应的服务容器包括用于提供数据库功能的实例进程和用于主备存储节点选举的协调进程;
至少一个代理容器,其中,一个代理容器包括用于代理转发客户端发送的数据处理请求的代理进程,代理进程与客户端建立连接,并将客户端发送的处理请求代理转发至存储节点。
2.如权利要求1所述的系统,其特征在于,所述系统还包括容器编排器存储组件,所述容器编排器存储组件用于存储所述系统包括的各容器的容器状态信息,各容器的容器状态信息包括各服务容器的主备状态,所述代理容器将客户端发送的处理请求代理转发至主服务容器对应的主存储节点。
3.如权利要求2所述的系统,其特征在于,所述代理容器基于所述容器编排器存储组件存储的各容器的容器状态信息包含的各服务容器的主备状态,确定当前主服务容器和备服务容器,所述代理容器与主服务容器建立连接,将客户端发送的处理请求代理转发至主服务容器对应的主存储节点;
当作为主服务容器的第一服务容器异常,作为备服务容器的第二容器切换为主服务容器时,所述容器编排器存储组件存储的所述第一服务容器的主备状态修改为备,所述第二服务容器的主备状态修改为主,所述代理容器在获取到所述容器编排器存储组件存储的所述第二服务容器的主备状态为主之后,将客户端发送的处理请求代理转发至所述第二服务容器对应的存储节点。
4.如权利要求3所述的系统,其特征在于,客户端发送的处理请求包括读请求和写请求;所述代理容器与主服务容器建立连接,并将客户端发送的写请求代理转发至主服务容器对应的主存储节点;所述代理容器与备服务容器建立连接,并将客户端发送的读请求代理转发至备服务容器对应的备存储节点。
5.如权利要求1所述的系统,其特征在于,所述云原生数据库还包括所述目标子数据库对应的备用目标子数据库,针对所述备用目标子数据库包括的多个存储节点分别创建的服务容器,至少一个代理容器和容器编排器存储组件;
所述目标子数据库的主服务容器与所述备用目标子数据库的主服务容器之间建立连接,并建立流复制机制,当所述备用目标子系统切换为主时,由所述备用目标子数据库的主服务容器对外提供数据存储服务。
6.一种云原生高可用数据库服务提供方法,其特征在于,应用于云原生数据库包括的各子数据库,所述云原生数据库包括多个不同数据库类型的子数据库,每一子数据库包括多个存储节点,多个存储节点采用一主多备模式,所述方法包括:
针对目标子数据库包括的多个存储节点分别创建对应的服务容器,其中,每一存储节点对应的服务容器包括用于提供数据库功能的实例进程和用于主备存储节点选举的协调进程;
针对所述目标子数据库创建至少一个代理容器,其中,一个代理容器包括用于代理转发客户端发送的数据处理请求的代理进程,代理进程与客户端建立连接,并将客户端发送的处理请求代理转发至存储节点。
7.如权利要求6所述的方法,其特征在于,所述方法还包括:
针对所述目标子数据库创建用于存储所述目标子数据库包括的各容器的容器状态信息的容器编排器存储组件,各容器的容器状态信息包括各服务容器的主备状态;
所述代理容器将客户端发送的处理请求代理转发至主服务容器对应的主存储节点。
8.如权利要求7所述的方法,其特征在于,所述代理容器基于所述容器编排器存储组件存储的各容器的容器状态信息包含的各服务容器的主备状态,确定当前主服务容器和备服务容器,所述代理容器与主服务容器建立连接,将客户端发送的处理请求代理转发至主服务容器对应的主存储节点;
当作为主服务容器的第一服务容器异常,作为备服务容器的第二容器切换为主服务容器时,所述容器编排器存储组件存储的所述第一服务容器的主备状态修改为备,所述第二服务容器的主备状态修改为主,所述代理容器在获取到所述容器编排器存储组件存储的所述第二服务容器的主备状态为主之后,将客户端发送的处理请求代理转发至所述第二服务容器对应的存储节点。
9.如权利要求8所述的方法,其特征在于,客户端发送的处理请求包括读请求和写请求;
所述代理容器与主服务容器建立连接,并将客户端发送的写请求代理转发至主服务容器对应的主存储节点;所述代理容器与备服务容器建立连接,并将客户端发送的读请求代理转发至备服务容器对应的备存储节点。
10.如权利要求6所述的方法,其特征在于,所述云原生数据库还包括所述目标子数据库对应的备用目标子数据库,针对所述备用目标子数据库包括的多个存储节点分别创建的服务容器,至少一个代理容器和容器编排器存储组件;
所述目标子数据库的主服务容器与所述备用目标子数据库的主服务容器之间建立连接,并建立流复制机制,当所述备用目标子系统切换为主时,由所述备用目标子数据库的主服务容器对外提供数据存储服务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211158951.2A CN115510156A (zh) | 2022-09-22 | 2022-09-22 | 一种云原生高可用数据库服务提供系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211158951.2A CN115510156A (zh) | 2022-09-22 | 2022-09-22 | 一种云原生高可用数据库服务提供系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115510156A true CN115510156A (zh) | 2022-12-23 |
Family
ID=84507033
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211158951.2A Pending CN115510156A (zh) | 2022-09-22 | 2022-09-22 | 一种云原生高可用数据库服务提供系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115510156A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116244040A (zh) * | 2023-03-10 | 2023-06-09 | 安超云软件有限公司 | 一种主备容器集群系统及其数据同步方法、电子设备 |
CN116662267A (zh) * | 2023-08-02 | 2023-08-29 | 中国电子投资控股有限公司 | 一种基于云原生的分布式应用快照系统和快照创建方法 |
CN116827761A (zh) * | 2023-08-30 | 2023-09-29 | 深圳鼎信通达股份有限公司 | 双机热备的切换方法、系统、设备及介质 |
CN117609194A (zh) * | 2024-01-19 | 2024-02-27 | 中科泓泰电子有限公司 | 云数据库的处理方法、装置、电子设备及存储介质 |
-
2022
- 2022-09-22 CN CN202211158951.2A patent/CN115510156A/zh active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116244040A (zh) * | 2023-03-10 | 2023-06-09 | 安超云软件有限公司 | 一种主备容器集群系统及其数据同步方法、电子设备 |
CN116244040B (zh) * | 2023-03-10 | 2024-05-03 | 安超云软件有限公司 | 一种主备容器集群系统及其数据同步方法、电子设备 |
CN116662267A (zh) * | 2023-08-02 | 2023-08-29 | 中国电子投资控股有限公司 | 一种基于云原生的分布式应用快照系统和快照创建方法 |
CN116662267B (zh) * | 2023-08-02 | 2024-04-05 | 中国电子投资控股有限公司 | 一种基于云原生的分布式应用快照系统和快照创建方法 |
CN116827761A (zh) * | 2023-08-30 | 2023-09-29 | 深圳鼎信通达股份有限公司 | 双机热备的切换方法、系统、设备及介质 |
CN116827761B (zh) * | 2023-08-30 | 2023-11-10 | 深圳鼎信通达股份有限公司 | 双机热备的切换方法、系统、设备及介质 |
CN117609194A (zh) * | 2024-01-19 | 2024-02-27 | 中科泓泰电子有限公司 | 云数据库的处理方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11360854B2 (en) | Storage cluster configuration change method, storage cluster, and computer system | |
CN115510156A (zh) | 一种云原生高可用数据库服务提供系统及方法 | |
US10749954B2 (en) | Cross-data center hierarchical consensus scheme with geo-aware leader election | |
CN110597910A (zh) | 一种异地数据同步方法、装置和系统 | |
CN106888245B (zh) | 一种数据处理方法、装置及系统 | |
CN107623703B (zh) | 全局事务标识gtid的同步方法、装置及系统 | |
TWI677797B (zh) | 主備資料庫的管理方法、系統及其設備 | |
CN105493474A (zh) | 用于支持用于同步分布式数据网格中的数据的分区级别日志的系统及方法 | |
CN105069152B (zh) | 数据处理方法及装置 | |
CN109561151B (zh) | 数据存储方法、装置、服务器和存储介质 | |
CN107038192B (zh) | 数据库容灾方法和装置 | |
CN110784498B (zh) | 一种个性化数据容灾方法及装置 | |
CN112015595B (zh) | 主从数据库的切换方法、计算设备及存储介质 | |
CN104753987B (zh) | 一种分布式会话管理方法及系统 | |
CN107943615B (zh) | 基于分布式集群的数据处理方法与系统 | |
CN109726211A (zh) | 一种分布式时序数据库 | |
CN112631756A (zh) | 一种应用于航天测控软件的分布式调控方法及装置 | |
CN115103011B (zh) | 一种跨数据中心的业务处理方法、装置以及设备 | |
CN113630317B (zh) | 一种数据传输方法、装置、非易失性存储介质及电子装置 | |
CN116455920A (zh) | 一种数据存储方法、系统、计算机设备及存储介质 | |
CN114785662A (zh) | 一种存储管理方法、装置、设备及机器可读存储介质 | |
Tomsic et al. | Scaling geo-replicated databases to the MEC environment | |
CN115114260B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN114205363B (zh) | 分布式数据库的集群管理方法及分布式管理系统集群 | |
CN115168366B (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 |