CN117573415A - 一种故障处理方法、系统、电子设备及存储介质 - Google Patents

一种故障处理方法、系统、电子设备及存储介质 Download PDF

Info

Publication number
CN117573415A
CN117573415A CN202311706517.8A CN202311706517A CN117573415A CN 117573415 A CN117573415 A CN 117573415A CN 202311706517 A CN202311706517 A CN 202311706517A CN 117573415 A CN117573415 A CN 117573415A
Authority
CN
China
Prior art keywords
cluster
couchbase
target
configuration information
data access
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
Application number
CN202311706517.8A
Other languages
English (en)
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.)
Beijing QIYI Century Science and Technology Co Ltd
Original Assignee
Beijing QIYI Century Science and Technology 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 Beijing QIYI Century Science and Technology Co Ltd filed Critical Beijing QIYI Century Science and Technology Co Ltd
Priority to CN202311706517.8A priority Critical patent/CN117573415A/zh
Publication of CN117573415A publication Critical patent/CN117573415A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Hardware Redundancy (AREA)

Abstract

本发明实施例提供了一种故障处理方法、系统、电子设备及存储介质,所述方法应用于包含多个Couchbase集群的系统,包括:响应于数据访问请求,读取Couchbase集群的配置信息,基于配置信息确定数据访问请求对应的目标Couchbase集群;其中,配置信息是基于各Couchbase集群之间的同步关系以及各Couchbase集群的标识配置的;在目标Couchbase集群为主集群且出现故障的情况下,基于配置信息将目标Couchbase集群的备份集群更新为主集群,并将数据访问请求转发至更新后的主集群,以及修改配置信息。应用本发明技术方案,提高了集群故障的灾备能力,提高了系统的可用性。

Description

一种故障处理方法、系统、电子设备及存储介质
技术领域
本发明涉及计算机技术领域,特别是涉及一种故障处理方法、系统、电子设备及存储介质。
背景技术
Couchbase是具有高性能、可扩展性和可用性强的数据库引擎,也是一种集群化的NoSQL(Not Only SQL,非关系型数据库)数据库系统,在生产环境中是最常用的分布式键值存储之一。XDCR(Cross Data Center Replication,跨数据中心复制)是Couchbase数据库的一个功能,用于在不同数据中心或地理位置之间复制数据。
虽然XDCR可以支持两个集群间的双向同步,然而在实际应用中,因为双向同步可能带来数据延迟、数据写入不一致等不确定性,往往只采用XDCR做不同集群间数据的单向同步。使得不同Couchbase集群实际上是一种master-slave(主从式)的使用方式,即一个集群作为主集群(master),一个或多个集群作为从集群(slave),数据在写入master后,通过XDCR同步到slave。
而在Couchbase集群的master-slave使用模式下,因Couchbase系统本身不支持故障自动转移和流量切换,使得当一个或者多个集群出现故障无法访问时,可能导致服务无法继续进行。
发明内容
本发明实施例的目的在于提供一种故障处理方法、系统、电子设备及存储介质,以提高集群故障的灾备能力,提高系统的可用性。具体技术方案如下:
在本发明实施的第一方面,首先提供了一种故障处理方法,应用于包含多个Couchbase集群的系统,所述方法包括:
响应于数据访问请求,读取Couchbase集群的配置信息,基于所述配置信息确定所述数据访问请求对应的目标Couchbase集群;其中,所述配置信息是基于各Couchbase集群之间的同步关系以及各所述Couchbase集群的标识配置的;
在所述目标Couchbase集群为主集群且出现故障的情况下,基于所述配置信息将所述目标Couchbase集群的备份集群更新为主集群,并将所述数据访问请求转发至更新后的主集群,以及修改所述配置信息。
在一种可能的实施方式中,所述响应于数据访问请求,读取Couchbase集群的配置信息,基于所述配置信息确定所述数据访问请求对应的目标Couchbase集群,包括:
响应于数据访问请求,确定接收到所述数据访问请求的目标机房;
读取所述目标机房中Couchbase集群的目标配置信息,将所述目标配置信息中从集群配置项对应标识的集群确定为所述数据访问请求对应的目标Couchbase集群。
在一种可能的实施方式中,所述在所述目标Couchbase集群为主集群且出现故障的情况下,基于所述配置信息将所述目标Couchbase集群的备份集群更新为主集群,并将所述数据访问请求转发至更新后的主集群,以及修改所述配置信息,包括:
在所述目标Couchbase集群为主集群,且接收到主集群故障的指令时,将所述目标配置信息中备份集群配置项对应标识的集群更新为主集群,并将所述数据访问请求转发至更新后的主集群;
修改所述目标配置信息,并发出修改其他机房中Couchbase集群的配置信息的提示消息。
在一种可能的实施方式中,所述方法还包括:
在所述目标Couchbase集群恢复正常、接收到重建同步关系指令的情况下,重建各Couchbase集群之间的同步关系,并更新各机房中Couchbase集群的配置信息。
在一种可能的实施方式中,所述重建各Couchbase集群之间的同步关系,包括:
将更新后的主集群确定为主集群,将所述目标Couchbase集群确定为从集群,重建各Couchbase集群之间的同步关系。
在一种可能的实施方式中,所述方法还包括:
在所述目标Couchbase集群不为主集群时,确定所述目标Couchbase集群当前的错误率或者延时是否达到熔断条件;
在所述目标Couchbase集群当前的错误率或者延时达到熔断条件的情况下,确定所述目标Couchbase集群出现故障;
基于所述配置信息,将所述数据访问请求转发至所述目标Couchbase集群的备份集群。
在一种可能的实施方式中,所述方法还包括:
在所述目标Couchbase集群恢复正常的情况下,将所述数据访问请求转发至所述目标Couchbase集群,并恢复各Couchbase集群之间的同步关系。
在本发明实施的第二方面,还提供了一种故障处理系统,所述系统包含多个Couchbase集群,所述系统包括:
集群确定模块,用于响应于数据访问请求,读取Couchbase集群的配置信息,基于所述配置信息确定所述数据访问请求对应的目标Couchbase集群;其中,所述配置信息是基于各Couchbase集群之间的同步关系以及各所述Couchbase集群的标识配置的;
故障处理模块,用于在所述目标Couchbase集群为主集群且出现故障的情况下,基于所述配置信息将所述目标Couchbase集群的备份集群更新为主集群,并将所述数据访问请求转发至更新后的主集群,以及修改所述配置信息。
在本发明实施的又一方面,还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述任一所述的故障处理方法。
在本发明实施的又一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述的故障处理方法。
在本发明实施的又一方面,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的故障处理方法。
本发明实施例提供的一种故障处理方法、系统、电子设备及存储介质,通过各Couchbase集群之间的同步关系以及各Couchbase集群的标识配置Couchbase集群的配置信息,以便于在数据访问请求对应的目标Couchbase集群为主集群且出现故障的情况下,通过查询配置信息,将目标Couchbase集群的备份集群更新为主集群,并将数据访问请求转发至更新后的主集群,同时修改配置信息,提高了集群故障的灾备能力,实现了集群故障时流量的快速转移,提高了系统的可用性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为本发明实施例中故障处理方法的一种流程示意图;
图2为本发明实施例中故障处理方法的另一种流程示意图;
图3为本发明实施例中故障处理方法的再一种流程示意图;
图4为本发明实施例中故障处理方法的一种系统框图;
图5为本发明实施例中故障处理系统的一种结构示意图;
图6为本发明实施例中一种电子设备的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
本发明针对多Couchbase集群间使用XDCR做数据单向同步时,单集群故障可能导致服务无法继续进行的问题,提供了一种故障处理方法、系统、电子设备及存储介质。
如图1所示,图1为本发明实施例中故障处理方法的一种流程示意图,该方法应用于包含多个Couchbase集群的系统,包括以下步骤:
S101,响应于数据访问请求,读取Couchbase集群的配置信息,基于配置信息确定数据访问请求对应的目标Couchbase集群;
其中,配置信息是基于各Couchbase集群之间的同步关系以及各Couchbase集群的标识配置的;
S102,在目标Couchbase集群为主集群且出现故障的情况下,基于配置信息将目标Couchbase集群的备份集群更新为主集群,并将数据访问请求转发至更新后的主集群,以及修改配置信息。
应用本发明实施例提供的故障处理方法,通过各Couchbase集群之间的同步关系以及各Couchbase集群的标识配置Couchbase集群的配置信息,以便于在数据访问请求对应的目标Couchbase集群为主集群且出现故障的情况下,通过查询配置信息,将目标Couchbase集群的备份集群更新为主集群,并将数据访问请求转发至更新后的主集群,同时修改配置信息,提高了集群故障的灾备能力,实现了集群故障时流量的快速转移,提高了系统的可用性。
在上述步骤S101中,可以预先基于各Couchbase集群之间的同步关系以及各Couchbase集群的标识设置Couchbase集群的配置信息,其中,各Couchbase集群的标识可以是各Couchbase集群的编号或名称等。
包含多个Couchbase集群的系统可以是软件系统,也可以是硬件系统。包含多个Couchbase集群的系统,与多个Couchbase集群建立连接,能够访问多个Couchbase集群。
可选地,系统可以部署于机房中,具体可以部署于任意一个机房或同时部署于不同的机房中,相应的,可以预先基于各Couchbase集群之间的同步关系以及各Couchbase集群的标识设置各机房中Couchbase集群的配置信息。
示例性的,线上系统包含三个机房,分别为机房a、机房b和机房c,系统可以部署于任一机房中或同时部署于各机房中,每一机房对应一个Couchbase集群,机房a、机房b和机房c分别对应集群A、集群B和集群C。各Couchbase集群之间的同步关系为A->B,A->C,即集群A为master集群,能够承担所有的写操作和机房a的读操作,集群B和集群C为slave集群,分别承担机房b和机房c的读操作,集群A将数据通过XDCR同步至集群B和集群C。其中,集群A、集群B以及集群C的标识分别为1、2和3,在系统的配置中心为Couchbase集群的配置信息定义配置项master、slave以及slave_backup(备份),Couchbase集群的配置信息可以是针对不同机房设置的,相应的,机房a中Couchbase集群的配置信息为:master:1,slave:1,slave_backup:2;机房b中Couchbase集群的配置信息为:master:1,slave:2,slave_backup:3;机房c中Couchbase集群的配置信息为:master:1,slave:3,slave_backup:2。
其中,系统的配置中心提供了配置快速生效的能力,系统具备实时同步配置中心的配置的能力。实际应用中,各机房Couchbase集群的配置信息中配置项slave以及slave_backup,可以根据各机房就近选择相应的集群。
当然,实际应用中机房和集群的数量可能有多个,比如5个、8个等等,可以采用上述类似方式进行配置Couchbase集群的配置信息,区别在于配置项中可以包含多个slave_backup。
进一步的,响应于接收到的数据访问请求,根据接收数据访问请求的机房中Couchbase集群的配置信息,确定数据访问请求对应的目标Couchbase集群。其中,数据访问请求可以是读操作请求也可以是写操作请求,写操作请求只针对主集群,即在数据访问请求为写操作请求时,目标Couchbase集群是主集群。
示例性的,系统部署于机房a,机房a对应集群A,在接收到数据访问请求(读操作请求或写操作请求)的情况下,查询机房a中Couchbase集群的配置信息master:1,slave:1,slave_backup:2,将集群A确定为数据访问请求对应的目标Couchbase集群。系统部署于机房b,机房b对应集群B,在接收到的数据访问请求为读操作请求的情况下,查询机房b中Couchbase集群的配置信息master:1,slave:2,slave_backup:3,将集群B确定为数据访问请求对应的目标Couchbase集群;在接收到的数据访问请求为写操作请求的情况下,查询机房b中Couchbase集群的配置信息master:1,slave:2,slave_backup:3,将集群A确定为数据访问请求对应的目标Couchbase集群等。
在上述步骤S102中,主集群通常为人工判断是否发生故障,即系统在接收到主集群故障指令的情况下,确定主集群故障,否则默认主集群正常,而针对从集群可以设置熔断机制,以判断从集群是否发生故障,该熔断机制可以根据从集群的错误率、延时次数或延时累计时长等进行设置。
示例性的,系统部署于机房a,在目标Couchbase集群为主集群集群A,且接收到主集群故障的指令的情况下,通过查询机房a中Couchbase集群的配置信息master:1,slave:1,slave_backup:2,将集群A的备份集群(slave_backup)即集群B更新为主集群,并将数据访问请求转发至更新后的主集群集群B进行数据访问。系统部署于机房b,在目标Couchbase集群为主集群集群A,且接收到主集群故障的指令的情况下,通过查询机房b中Couchbase集群的配置信息master:1,slave:2,slave_backup:3,将集群A的备份集群即集群C更新为主集群,并将数据访问请求转发至更新后的主集群集群C进行数据访问。在更新主集群之后,修改各Couchbase集群的配置信息中主集群所在配置项master的信息。
如图2所示,图2为本发明实施例中故障处理方法的另一种流程示意图,该方法应用于包含多个Couchbase集群的系统,包括以下步骤:
S201,响应于数据访问请求,确定接收到数据访问请求的目标机房。
系统接收到数据访问请求,确定当前部署的位置,将当前部署的机房确定为接收到数据访问请求的目标机房,或者确定接收到数据访问请求的机房将其确定为数据访问请求对应的目标机房。
本发明实施例中,读操作请求对应的集群为主集群且出现故障的情况下的处理方式,与写操作请求对应的集群为主集群且出现故障的情况下的处理方式相同,读操作请求与写操作请求处理的不同之处在于确定请求对应的目标Couchbase集群的方式不同。具体的,在数据访问请求为读操作请求时,采用步骤S202的方式确定数据访问请求对应的目标Couchbase集群;在数据访问请求为写操作请求时,读取目标机房中Couchbase集群的目标配置信息,将目标配置信息中主集群配置项对应标识的集群确定为数据访问请求对应的目标Couchbase集群。
S202,读取目标机房中Couchbase集群的目标配置信息,将目标配置信息中从集群配置项对应标识的集群确定为数据访问请求对应的目标Couchbase集群。
本发明下述实施例中,以数据访问请求为读操作请求为例进行说明。
示例性的,目标机房为机房a,读取目标机房中Couchbase集群的目标配置信息master:1,slave:1,slave_backup:2,将目标配置信息中从集群配置项slave对应标识1所对应的集群A确定为数据访问请求对应的目标Couchbase集群。或者,目标机房为机房b,读取目标机房中Couchbase集群的目标配置信息master:1,slave:2,slave_backup:3,将目标配置信息中从集群配置项slave对应标识2所对应的集群B确定为数据访问请求对应的目标Couchbase集群等。
本发明实施例针对不同的机房设置Couchbase集群的配置信息,便于故障的快速确定以及请求的快速响应。
S203,在目标Couchbase集群为主集群,且接收到主集群故障的指令时,将目标配置信息中备份集群配置项对应标识的集群更新为主集群,并将数据访问请求转发至更新后的主集群。
主集群通常为人工判断是否发生故障,即在目标Couchbase集群为主集群,且系统接收到主集群故障指令的情况下,确定主集群故障,否则默认主集群正常,人工判断通常较为准确,进而能够准确的确定主集群是否发生故障。
示例性的,对应目标机房为机房a,目标Couchbase集群为主集群集群A,集群A出现故障,则将目标机房中Couchbase集群的目标配置信息master:1,slave:1,slave_backup:2中备份集群配置项slave_backup对应标识2所对应的集群B更新为主集群,并将数据访问请求转发至更新后的主集群集群B。
在主集群发生故障的情况下,自动将主集群的备份集群切换为新的主集群,能够快速进行故障转移,实现服务的快速恢复和响应。
S204,修改目标配置信息,并发出修改其他机房中Couchbase集群的配置信息的提示消息。
在主集群集群A故障,将目标配置信息中备份集群配置项对应标识的集群切换为新的主集群,比如新的主集群更新为集群B,此时集群C和故障的集群A中数据不能被及时同步导致数据可能不是最新的,集群B中数据为最新数据,使得集群C和故障的集群A暂时不可用,需要修改配置中心各机房中Couchbase集群的配置信息。进而系统修改目标配置信息,将目标配置信息中各配置项master、slave以及slave_backup均设置为集群B对应的标识2,以及发出修改其他机房中Couchbase集群的配置信息的提示消息,以便于将其他各个机房Couchbase集群的配置信息中各配置项master、slave以及slave_backup均设置为集群B对应的标识2,使得集群C和故障的集群A不可用,避免访问失败或读取到错误的信息。
S205,在目标Couchbase集群恢复正常、接收到重建同步关系指令的情况下,重建各Couchbase集群之间的同步关系,并更新各机房中Couchbase集群的配置信息。
在目标Couchbase集群即原来的主集群集群A故障后恢复正常的情况下,需要重新构建各Couchbase集群之间的同步关系,否则原来的集群A和集群C仍处于不可用状态,在接收到重建同步关系指令时,重建各Couchbase集群之间的同步关系,并更新各机房中Couchbase集群的配置信息,以使得各Couchbase集群尽快恢复使用。
主集群故障的恢复可以是人工判断的,在确定主集群故障恢复的情况下,向系统发送重建同步关系指令,该重建同步关系指令中可以包含各Couchbase集群之间的同步关系,以及各机房中Couchbase集群的配置信息,以便于系统接收重建同步关系指令,重建各Couchbase集群之间的同步关系,并更新各机房中Couchbase集群的配置信息。
在一种可能的实施方式中,重建各Couchbase集群之间的同步关系,包括:将更新后的主集群确定为主集群,将目标Couchbase集群确定为从集群,重建各Couchbase集群之间的同步关系。
示例性的,主集群集群A故障后恢复正常,因新的主集群为集群B,此时虽然故障的集群A恢复正常,但是集群B为保存最新数据的主集群,故障恢复的集群A中的数据可能不是最新数据,故而还是将集群B作为主集群,将故障恢复的集群A确定为从集群,重建各Couchbase集群之间的同步关系为:B->A,B->C,在重建各Couchbase集群之间的同步关系之后,更新各机房中Couchbase集群的配置信息,得到机房a中Couchbase集群的配置信息为:master:2,slave:1,slave_backup:3;机房b中Couchbase集群的配置信息为:master:2,slave:2,slave_backup:3;机房c中Couchbase集群的配置信息为:master:2,slave:3,slave_backup:1。
上述各Couchbase集群之间的同步关系以一个主集群分别向各从集群同步数据为例进行说明,当然,各Couchbase集群之间的同步关系还可以是其他的同步方式,比如,集群A、集群B以及集群C之间的同步关系还可以为A->B->C、或者A->C->B等等,此时各机房中Couchbase集群的配置信息相应修改即可,本发明实施例对此不再详细一一举例。本发明实施例中对各Couchbase集群之间的同步关系不作限定。
应用本发明实施例提供的故障处理方法,通过各Couchbase集群之间的同步关系以及各Couchbase集群的标识配置Couchbase集群的配置信息,以便于在数据访问请求对应的目标Couchbase集群为主集群且出现故障的情况下,通过查询配置信息,将目标Couchbase集群的备份集群更新为主集群,并将数据访问请求转发至更新后的主集群,同时修改配置信息,提高了集群故障的灾备能力,实现了集群故障时流量的快速转移,提高了系统的可用性,且,能够在不同Couchbase集群间快速切换流量,实现灵活的流量调度,提高了系统对存储访问的控制能力和灵活性。
如图3所示,图3为本发明实施例中故障处理方法的再一种流程示意图,该方法应用于包含多个Couchbase集群的系统,包括以下步骤:
S301,响应于数据访问请求,确定接收到数据访问请求的目标机房。
S302,读取目标机房中Couchbase集群的目标配置信息,将目标配置信息中从集群配置项对应标识的集群确定为数据访问请求对应的目标Couchbase集群。
示例性的,目标机房为机房b,读取目标机房中Couchbase集群的目标配置信息master:1,slave:2,slave_backup:3,将目标配置信息中从集群配置项slave对应标识2所对应的集群B确定为数据访问请求对应的目标Couchbase集群等。
其中,步骤S301和步骤S302的实现方式可参照上述步骤S201-步骤S202,本发明实施例在此不再赘述。
S303,在目标Couchbase集群不为主集群时,确定目标Couchbase集群当前的错误率或者延时是否达到熔断条件。
S304,在目标Couchbase集群当前的错误率或者延时达到熔断条件的情况下,确定目标Couchbase集群出现故障。
目标Couchbase集群不为主集群即为从集群,从集群只能用来读数据,针对从集群可以预先设置熔断机制,当从集群触发熔断机制的熔断条件时,判定从集群出现故障。熔断机制可以设置从集群的错误率是否达到预设错误率,比如预设错误率为5%、10%或者20%等等,错误率为5%表示在向从集群发送1000个请求的情况下,有50个请求出现了请求错误,以此类推。熔断机制还可以设置从集群的延时次数是否达到预设次数,预设次数比如可以是5次、10次或30次等等。
示例性的,目标Couchbase集群为从集群集群B,熔断条件为错误率达到预设错误率10%,或者延时次数达到预设次数10次,那么在监测到集群B的错误率达到预设错误率10%,或者延时次数达到预设次数10次的情况下,则确定集群B出现故障,否则确定集群B正常。
本发明实施例中,为从集群设置熔断机制,实时监测集群是否触发熔断条件,以便于快速的确定故障集群。
S305,基于配置信息,将数据访问请求转发至目标Couchbase集群的备份集群。
从集群承担了机房的读操作,针对从集群故障的情况以数据访问请求为读操作请求为例进行说明。示例性的,数据访问请求对应的目标机房为机房b,目标Couchbase集群为从集群集群B,集群B出现故障,此时机房a因为没有读写操作集群B,进而不受影响,机房c也没有读集群B,不受影响。而数据访问请求对应的目标机房为机房b,机房b因为优先读集群B,会出现读异常,因配置了熔断机制,在集群B达到熔断条件时会触发读取目标机房b中Couchbase集群的目标配置信息master:1,slave:2,slave_backup:3,将数据访问请求转发至备份集群配置项slave_backup对应标识3所对应的集群C,即目标Couchbase集群的备份集群,跳过集群B直接读集群C,使得针对集群B的读操作会重试到集群C而不影响服务功能。
在从集群发生故障的情况下,自动将从集群的备份集群切换为数据访问请求对应的目标集群,能够快速进行故障转移,实现服务的快速恢复和响应。
S306,在目标Couchbase集群恢复正常的情况下,将数据访问请求转发至目标Couchbase集群,并恢复各Couchbase集群之间的同步关系。
从集群故障的恢复可以通过对从集群的实时监测来完成,比如在确定从集群故障之后,间隔或实时向该故障的从集群发送测试请求,以确定在设定时间内从集群的错误率或者延时是否达到熔断条件,如果在设定时间内从集群的错误率和延时均未达到熔断条件,则确定从集群恢复正常,设定时间比如可以是1分钟、5分钟或10分钟等等。
在从集群恢复正常的情况下,比如集群B故障之后恢复正常,此时机房a和机房c不受影响,机房b检测到集群B恢复正常,将数据访问请求恢复到集群B故障前的读取顺序,即优先读取集群B,将数据访问请求转发至集群B,并恢复各Couchbase集群之间的同步关系。
在从集群故障的情况下,能够快速切换流量至备份集群,不影响系统的服务功能,在从集群故障恢复的情况下,能够快速切回,提高了系统对存储访问的控制能力和灵活性。
上述以从集群B的故障和恢复为例进行了说明,从集群C的故障和恢复原理同从集群B相同,本发明实施例在此不再赘述。
应用本发明实施例提供的故障处理方法,通过各Couchbase集群之间的同步关系以及各Couchbase集群的标识配置Couchbase集群的配置信息,以便于在数据访问请求对应的目标Couchbase集群为从集群且出现故障的情况下,通过查询配置信息,将数据访问请求转发至目标Couchbase集群的备份集群,提高了集群故障的灾备能力,实现了集群故障时流量的快速转移,提高了系统的可用性,且,能够在从集群恢复正常的情况下,将数据访问请求快速转回至恢复正常的从集群,在不同Couchbase集群间快速切换流量,实现灵活的流量调度,提高了系统对存储访问的控制能力和灵活性。
示例性的,参见图4,图4为本发明实施例中故障处理方法的一种系统框图。示例性的,线上系统包含三个机房,分别为机房a、机房b和机房c,系统可以部署于任一机房中或同时部署于各机房中,系统包含多个Couchbase集群,分别为集群A、集群B以及集群C,集群A为主集群,集群B和集群C为从集群,各Couchbase集群之间的同步关系为A->B,A->C,集群A、集群B以及集群C的标识分别为1、2和3,在配置中心为Couchbase集群的配置信息定义了配置项master、slave以及slave_backup,机房a中Couchbase集群的配置信息为:master:1,slave:1,slave_backup:2;机房b中Couchbase集群的配置信息为:master:1,slave:2,slave_backup:3;机房c中Couchbase集群的配置信息为:master:1,slave:3,slave_backup:2。
系统接收数据访问请求,以数据访问请求为读操作请求为例,确定当前部署位置,将当前部署的机房确定为接收到数据访问请求的目标机房,或者确定接收到数据访问请求的机房将其确定为数据访问请求的目标机房。读取目标机房中Couchbase集群的目标配置信息,将目标配置信息中从集群配置项对应标识的集群确定为数据访问请求对应的目标Couchbase集群(图5中读取请求接收机房的配置信息,确定请求对应的Couchbase集群)。
在目标Couchbase集群为主集群,且接收到主集群故障的指令时,则确定目标Couchbase集群出现故障。在目标Couchbase集群(主集群)出现故障的情况下,将目标配置信息中备份集群配置项对应标识的集群更新为主集群,将数据访问请求转发至更新后的主集群,修改目标配置信息,并发出修改其他机房中Couchbase集群的配置信息的提示消息,以便于将各个机房Couchbase集群的配置信息中各配置项master、slave以及slave_backup均设置为更新后的主集群对应的标识,避免访问失败或读取到错误的信息。以及,在目标Couchbase集群恢复正常、接收到重建同步关系指令的情况下,重建各Couchbase集群之间的同步关系,并更新各机房中Couchbase集群的配置信息。
在目标Couchbase集群不为主集群(为从集群)时,确定目标Couchbase集群当前的错误率或者延时是否达到熔断条件,在目标Couchbase集群当前的错误率或者延时达到熔断条件的情况下,确定目标Couchbase集群出现故障。在目标Couchbase集群(从集群)出现故障的情况下,将数据访问请求转发至目标配置信息中备份集群配置项对应标识的集群。并在目标Couchbase集群恢复正常的情况下,将数据访问请求转发至目标Couchbase集群,并恢复各Couchbase集群之间的同步关系。
相应于上述方法实施例,本发明实施例还提供了相应的系统实施例。
如图5所示,图5为本发明实施例中故障处理系统的一种结构示意图,该系统包含多个Couchbase集群,系统包括:
集群确定模块501,用于响应于数据访问请求,读取Couchbase集群的配置信息,基于配置信息确定数据访问请求对应的目标Couchbase集群;其中,配置信息是基于各Couchbase集群之间的同步关系以及各Couchbase集群的标识配置的;
故障处理模块502,用于在目标Couchbase集群为主集群且出现故障的情况下,基于配置信息将目标Couchbase集群的备份集群更新为主集群,并将数据访问请求转发至更新后的主集群,以及修改配置信息。
应用本发明实施例提供的故障处理系统,通过各Couchbase集群之间的同步关系以及各Couchbase集群的标识配置Couchbase集群的配置信息,以便于在数据访问请求对应的目标Couchbase集群为主集群且出现故障的情况下,通过查询配置信息,将目标Couchbase集群的备份集群更新为主集群,并将数据访问请求转发至更新后的主集群,同时修改配置信息,提高了集群故障的灾备能力,实现了集群故障时流量的快速转移,提高了系统的可用性。
在一种可能的实施方式中,上述集群确定模块501,具体用于:
响应于数据访问请求,确定接收到数据访问请求的目标机房;
读取目标机房中Couchbase集群的目标配置信息,将目标配置信息中从集群配置项对应标识的集群确定为数据访问请求对应的目标Couchbase集群。
在一种可能的实施方式中,上述故障处理模块502,具体用于:
在目标Couchbase集群为主集群,且接收到主集群故障的指令时,将目标配置信息中备份集群配置项对应标识的集群更新为主集群,并将数据访问请求转发至更新后的主集群;
修改目标配置信息,并发出修改其他机房中Couchbase集群的配置信息的提示消息。
在一种可能的实施方式中,上述系统还包括:
配置更新模块,用于在目标Couchbase集群恢复正常、接收到重建同步关系指令的情况下,重建各Couchbase集群之间的同步关系,并更新各机房中Couchbase集群的配置信息。
在一种可能的实施方式中,上述重建各Couchbase集群之间的同步关系,包括:将更新后的主集群确定为主集群,将目标Couchbase集群确定为从集群,重建各Couchbase集群之间的同步关系。
在一种可能的实施方式中,上述系统还包括:
故障确定模块,用于在目标Couchbase集群不为主集群时,确定目标Couchbase集群当前的错误率或者延时是否达到熔断条件,并在目标Couchbase集群当前的错误率或者延时达到熔断条件的情况下,确定目标Couchbase集群出现故障;
请求转移模块,用于在目标Couchbase集群出现故障时,基于配置信息,将数据访问请求转发至目标Couchbase集群的备份集群。
在一种可能的实施方式中,上述系统还包括:
流量切换模块,用于在目标Couchbase集群恢复正常的情况下,将数据访问请求转发至目标Couchbase集群,并恢复各Couchbase集群之间的同步关系。
本发明实施例还提供了一种电子设备,如图6所示,包括处理器601、通信接口602、存储器603和通信总线604,其中,处理器601,通信接口602,存储器603通过通信总线604完成相互间的通信,
存储器603,用于存放计算机程序;
处理器601,用于执行存储器603上所存放的程序时,实现上述任一方法实施例,以达到相同的技术效果。
上述终端提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述终端与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processor,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一方法实施例,以达到相同的技术效果。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一方法实施例,以达到相同的技术效果。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统/电子设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (10)

1.一种故障处理方法,其特征在于,应用于包含多个Couchbase集群的系统,所述方法包括:
响应于数据访问请求,读取Couchbase集群的配置信息,基于所述配置信息确定所述数据访问请求对应的目标Couchbase集群;其中,所述配置信息是基于各Couchbase集群之间的同步关系以及各所述Couchbase集群的标识配置的;
在所述目标Couchbase集群为主集群且出现故障的情况下,基于所述配置信息将所述目标Couchbase集群的备份集群更新为主集群,并将所述数据访问请求转发至更新后的主集群,以及修改所述配置信息。
2.根据权利要求1所述的方法,其特征在于,所述响应于数据访问请求,读取Couchbase集群的配置信息,基于所述配置信息确定所述数据访问请求对应的目标Couchbase集群,包括:
响应于数据访问请求,确定接收到所述数据访问请求的目标机房;
读取所述目标机房中Couchbase集群的目标配置信息,将所述目标配置信息中从集群配置项对应标识的集群确定为所述数据访问请求对应的目标Couchbase集群。
3.根据权利要求2所述的方法,其特征在于,所述在所述目标Couchbase集群为主集群且出现故障的情况下,基于所述配置信息将所述目标Couchbase集群的备份集群更新为主集群,并将所述数据访问请求转发至更新后的主集群,以及修改所述配置信息,包括:
在所述目标Couchbase集群为主集群,且接收到主集群故障的指令时,将所述目标配置信息中备份集群配置项对应标识的集群更新为主集群,并将所述数据访问请求转发至更新后的主集群;
修改所述目标配置信息,并发出修改其他机房中Couchbase集群的配置信息的提示消息。
4.根据权利要求1-3任一所述的方法,其特征在于,所述方法还包括:
在所述目标Couchbase集群恢复正常、接收到重建同步关系指令的情况下,重建各Couchbase集群之间的同步关系,并更新各机房中Couchbase集群的配置信息。
5.根据权利要求4所述的方法,其特征在于,所述重建各Couchbase集群之间的同步关系,包括:
将更新后的主集群确定为主集群,将所述目标Couchbase集群确定为从集群,重建各Couchbase集群之间的同步关系。
6.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
在所述目标Couchbase集群不为主集群时,确定所述目标Couchbase集群当前的错误率或者延时是否达到熔断条件;
在所述目标Couchbase集群当前的错误率或者延时达到熔断条件的情况下,确定所述目标Couchbase集群出现故障;
基于所述配置信息,将所述数据访问请求转发至所述目标Couchbase集群的备份集群。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
在所述目标Couchbase集群恢复正常的情况下,将所述数据访问请求转发至所述目标Couchbase集群,并恢复各Couchbase集群之间的同步关系。
8.一种故障处理系统,其特征在于,所述系统包含多个Couchbase集群,所述系统包括:
集群确定模块,用于响应于数据访问请求,读取Couchbase集群的配置信息,基于所述配置信息确定所述数据访问请求对应的目标Couchbase集群;其中,所述配置信息是基于各Couchbase集群之间的同步关系以及各所述Couchbase集群的标识配置的;
故障处理模块,用于在所述目标Couchbase集群为主集群且出现故障的情况下,基于所述配置信息将所述目标Couchbase集群的备份集群更新为主集群,并将所述数据访问请求转发至更新后的主集群,以及修改所述配置信息。
9.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-7任一所述的方法步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-7任一所述的方法步骤。
CN202311706517.8A 2023-12-12 2023-12-12 一种故障处理方法、系统、电子设备及存储介质 Pending CN117573415A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311706517.8A CN117573415A (zh) 2023-12-12 2023-12-12 一种故障处理方法、系统、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311706517.8A CN117573415A (zh) 2023-12-12 2023-12-12 一种故障处理方法、系统、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN117573415A true CN117573415A (zh) 2024-02-20

Family

ID=89890047

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311706517.8A Pending CN117573415A (zh) 2023-12-12 2023-12-12 一种故障处理方法、系统、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN117573415A (zh)

Similar Documents

Publication Publication Date Title
EP1110148B1 (en) Fault tolerant computer system
CN108345617B (zh) 一种数据同步方法、装置以及电子设备
CN108319617B (zh) 确定数据库主从差异的方法、装置及切换控制方法、装置
CN101136728A (zh) 群集系统和用于备份群集系统中的副本的方法
TWI677797B (zh) 主備資料庫的管理方法、系統及其設備
CN112015744A (zh) 配置数据访问方法、装置、设备、配置中心及存储介质
CN111049928A (zh) 数据同步方法、系统、电子设备及计算机可读存储介质
CN108243031B (zh) 一种双机热备的实现方法及装置
CN115658390A (zh) 容器容灾方法、系统、装置、设备及计算机可读存储介质
CN108509296B (zh) 一种处理设备故障的方法和系统
CN107528703B (zh) 一种用于管理分布式系统中节点设备的方法与设备
CN117573415A (zh) 一种故障处理方法、系统、电子设备及存储介质
CN113596195B (zh) 公共ip地址管理方法、装置、主节点及存储介质
WO2022227719A1 (zh) 数据备份方法、系统及相关设备
JP5798056B2 (ja) 呼処理情報の冗長化制御システムおよびこれに利用する予備保守サーバ
CN114328033A (zh) 保持高可用设备组业务配置一致性的方法及装置
CN115686951A (zh) 一种数据库服务器的故障处理方法和装置
US7644306B2 (en) Method and system for synchronous operation of an application by a purality of processing units
JP5914267B2 (ja) データ復旧装置
TW201828087A (zh) 分布式儲存系統的服務節點切換方法及裝置
CN117294590A (zh) 一种设备控制方法及装置
JP2000089994A (ja) データベース管理方法およびその装置
CN117493308A (zh) 基于表的数据库集群参数配置方法及机器可读存储介质
CN116126838A (zh) 多数据中心数据库切换方法和装置
CN114385592A (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