CN114138538A - 异常实例的处理方法、装置和电子设备 - Google Patents

异常实例的处理方法、装置和电子设备 Download PDF

Info

Publication number
CN114138538A
CN114138538A CN202111482496.7A CN202111482496A CN114138538A CN 114138538 A CN114138538 A CN 114138538A CN 202111482496 A CN202111482496 A CN 202111482496A CN 114138538 A CN114138538 A CN 114138538A
Authority
CN
China
Prior art keywords
instance
abnormal
exception
type
target
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
CN202111482496.7A
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 Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom 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 Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202111482496.7A priority Critical patent/CN114138538A/zh
Publication of CN114138538A publication Critical patent/CN114138538A/zh
Pending legal-status Critical Current

Links

Images

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/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/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/0706Error 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 the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0709Error 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 the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems

Abstract

本公开提供了一种异常实例的处理方法、装置和电子设备,涉及分布式系统等网页搜索技术领域。具体实现方案为:在分布式服务系统出现异常实例时,可以根据异常实例的异常类型,确定与异常实例对应的目标实例,并控制目标实例执行与异常实例相同的服务;从分布式服务系统中删除异常实例,这样可以实现对异常情况的自动化处理,减少了异常情况的处理时间,从而提高了异常处理效率。

Description

异常实例的处理方法、装置和电子设备
技术领域
本公开涉及数据处理技术领域,尤其涉及分布式系统等网页搜索技术领域,具体涉及一种异常实例的处理方法、装置和电子设备。
背景技术
Raft协议是一种易于理解的分布式一致性复制协议,在分布式领域有着较为广泛的应用。基于raft协议构建的raft服务通常部署在物理机,使得无法对raft服务进行统一调度和管理。
为了可以对raft服务进行统一调度和管理,考虑到平台即服务(platform as aservice,PaaS)作为提供软件部署平台,屏蔽了硬件和操作系统细节,可以实现raft服务的统一调度和管理,因此,可以将raft服务部署在PaaS平台上进行统一调度和管理,若存在异常,则需要人工介入处理,导致异常处理效率较差。
发明内容
本公开提供了一种异常实例的处理方法、装置和电子设备。
根据本公开的第一方面,提供了一种异常实例的处理方法,该异常实例的处理方法可以包括:
确定分布式服务系统中的异常实例。
根据所述异常实例的异常类型,确定与所述异常实例对应的目标实例,并控制所述目标实例执行与所述异常实例相同的服务。
从所述分布式服务系统中删除所述异常实例。
根据本公开的第二方面,提供了一种异常实例的处理装置,该异常实例的处理装置可以包括:
确定单元,用于确定分布式服务系统中的异常实例。
处理单元,用于根据所述异常实例的异常类型,确定与所述异常实例对应的目标实例,并控制所述目标实例执行与所述异常实例相同的服务;
删除单元,用于从所述分布式服务系统中删除所述异常实例。
根据本公开的第三方面,提供了一种电子设备,该电子设备可以包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述第一方面所述的异常实例的处理方法。
根据本公开的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行上述第一方面所述的异常实例的处理方法。
根据本公开的第五方面,提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序,所述计算机程序存储在可读存储介质中,电子设备的至少一个处理器可以从所述可读存储介质读取所述计算机程序,所述至少一个处理器执行所述计算机程序使得电子设备执行第一方面所述的异常实例的处理方法。
根据本公开的技术方案,实现了对异常情况的自动化处理,从而提高了异常处理效率。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是本公开实施例提供的一种实现框架示意图;
图2是根据本公开第一实施例提供的异常实例的处理方法的流程示意图;
图3是本公开实施例提供的一种退场类型场景下异常实例自动化处理的示意图;
图4是本公开实施例提供的一种错误类型场景下异常实例自动化处理的示意图;
图5是本公开实施例提供的一种假死类型场景下异常实例自动化处理的示意图;
图6是根据本公开第三实施例提供的异常实例的处理装置的结构示意图;
图7是本公开实施例提供的一种电子设备的示意性框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
在本公开的实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的访问关系,表示可以保留三种关系,例如,A和/或B,可以表示:单独保留A,同时保留A和B,单独保留B这三种情况,其中A,B可以是单数或者复数。在本公开的文字描述中,字符“/”一般表示前后关联对象是一种“或”的关系。此外,在本公开实施例中,“第一”、“第二”、“第三”、“第四”、“第五”以及“第六”只是为了区分不同对象的内容而已,并无其它特殊含义。
本公开实施例提供的技术方案可以应用于分布式服务系统中。在分布式服务系统中,为了对raft服务进行统一调度和管理,考虑到平台即服务(platform as a service,PaaS)作为提供软件部署平台,屏蔽了硬件和操作系统细节,可以实现raft服务的统一调度和管理,因此,可以将raft服务部署在PaaS平台上进行统一调度和管理。
目前,在PaaS平台上对raft服务进行统一调度和管理时,对于一些异常情况,例如实例迁移、磁盘故障以及服务自身故障等,都会对raft服务的运行造成影响。例如,当出现实例迁移或退场时,需要迁移或退场的实例会直接退出,这样会造成短时间内的raft服务不可用;当出现磁盘故障时,raft服务的日志无法写入,进入错误状态,也会造成短时间内的raft服务不可用等,因此,针对这些异常情况,需要及时进行处理。但是,现有技术中,针对这些异常情况,都是人工介入处理,使得异常处理效率较低。
为了提高异常处理效率,可继续将raft服务部署在PaaS平台上,结合PaaS平台和raft协议各自提供的机制,实现对异常情况的自动化处理,使raft服务高可靠、稳定的运行在PaaS平台。为了实现对异常情况的自动化处理,在本公开实施例中,除了将raft服务部署在PaaS平台上之外,还可以在PaaS平台上部署一个控制器,该控制器可以作为raft服务和PaaS平台之间的桥梁,用于实现对异常情况的自动化处理,示例的,可参见图1所示,图1是本公开实施例提供的一种实现框架示意图,该框架中包括PaaS平台、PaaS平台上部署的控制器、以及raft服务。
其中,PaaS平台,主要用于提供副本保活、统一调度管理等基础能力;特别的,在本公开中,PaaS平台的自定义状态探针功能,支持通过外部应用程序接口(ApplicationProgramming Interface,API)自动注入状态,因此,可以通过自定义状态探针功能,支持异常情况的自动探测,并根据探测结果对raft服务进行实例迁移操作。
控制器,作为raft服务和PaaS平台之间的桥梁,主要用于接收PaaS平台的探针访问,且管理raft服务中实例的状态。对于多raft组的分布式系统,例如分布式存储系统,通常有对应的master服务,master服务可以同时充当控制器的角色,对于单raft组的服务,例如元信息管理系统,则需要在PaaS平台中搭建专门的控制器。
raft服务,作为基于raft协议搭建的服务,是整个实现框架的主体,PaaS平台和部署在PaaS平台上的控制器,都是为raft服务的稳定运行提供保障。示例的,raft服务可以为分布式锁服务、分布式存储服务、高可靠元信息管理服务等,具体可以根据实际需要进行设置。示例的,以高可靠元信息管理服务为例,该高可靠元信息管理服务对应的服务系统通常由3个或5个实例组成,包括一个主实例和多个从实例,主实例可记为leader实例,从实例可记为follower实例。其中,主实例主要用于对外服务,主实例与从实例之间通过心跳维护关系,整体对外提供高可靠服务。
基于上述图1所示的实现架构,在分布式服务系统出现异常实例时,可以根据异常实例的异常类型,确定与异常实例对应的目标实例,并控制目标实例执行与异常实例相同的服务;从分布式服务系统中删除异常实例,这样可以实现对异常情况的自动化处理,减少了异常情况的处理时间,从而提高了异常处理效率。
下面,将通过具体的实施例对本公开提供的异常实例的处理方法进行详细地说明。可以理解的是,下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
实施例一
图2是根据本公开第一实施例提供的异常实例的处理方法的流程示意图,该异常实例的处理方法可以由软件和/或硬件装置执行,例如,该硬件装置可以为终端或者服务器。示例的,请参见图2所示,该异常实例的处理方法可以包括:
S201、确定分布式服务系统中的异常实例。
示例的,分布式服务系统可以为分布式锁服务系统、分布式存储服务系统、高可靠元信息管理服务系统等,具体可以根据实际需要进行设置。
示例的,异常实例可以为实例迁移或退场,磁盘故障以及服务自身故障等异常情况影响的实例。例如,当异常实例为实例退场情况影响的实例时,该异常实例可以为退场实例;当异常实例为磁盘故障影响的实例时,该异常实例可以为错误实例;当异常实例为服务自身故障影响的实例时,该异常实例可以为假死实例。
其中,假死实例通常是针对主实例而言的,主实例假死是指:主实例可以通过心跳通知其所属的raft组内的其他从实例,其身份信息为主实例,但是主实例本身的端口访问状态异常,无法访问,从而无法对外提供服务,这样会出现raft组内从实例认为有主实例,但实际上无法对外服务的情况。
示例的,结合图1所示,可以通过PaaS平台上部署的控制器确定分布式服务系统中的异常实例,并在确定出分布式服务系统中的异常实例后,可以根据异常实例的异常类型,确定与异常实例对应的目标实例,并控制目标实例执行与异常实例相同的服务,即执行下述S202:
S202、根据异常实例的异常类型,确定与异常实例对应的目标实例,并控制目标实例执行与异常实例相同的服务。
示例的,当异常实例为退场实例时,该退场实例的异常类型可以为退场类型;当异常实例为错误实例时,该错误实例的异常类型可以为错误类型;当异常实例为假死实例时,该假死实例的异常类型可以为假死类型。
示例的,结合图1所示,可以通过PaaS平台上部署的控制器确定与异常实例对应的目标实例,并控制目标实例执行与异常实例相同的服务,使得可以通过目标实例为服务的正常运行提供保证,从而实现了服务的正常运行。
S203、从分布式服务系统中删除异常实例。
示例的,从分布式服务系统中删除异常实例后,还可以从分布式系统中删除该异常实例的相关配置信息。示例的,在从分布式服务系统中删除异常实例时,可以通过PaaS平台删除异常实例;在从分布式系统中删除该异常实例的相关配置信息时,可以通过PaaS平台上部署的控制器删除该异常实例的相关配置信息。
需要说明的是,在本公开实施例中,上述S202与S203之间并无先后顺序,可以先执行S202,再执行S203;也可以先执行S203,再执行S202;也可以同时执行S202和S203,具体可以根据实际需要进行设置,在此,本公开实施例只是以先执行S202,再执行S203为例进行说明,但并不代表本公开实施例仅局限于此。
可以理解的是,在分布式服务系统出现异常实例时,先执行上述S202,再执行S203,即先确定与异常实例对应的目标实例,并控制目标实例执行与异常实例相同的服务,再从分布式服务系统中删除异常实例,这样可以在一定程度上优先保证服务的正常运行,解决了因先删除异常实例导致的短时间内的raft服务不可用的问题。
可以看出,本公开实施例中,在分布式服务系统出现异常实例时,可以根据异常实例的异常类型,确定与异常实例对应的目标实例,并控制目标实例执行与异常实例相同的服务;从分布式服务系统中删除异常实例,这样可以实现对异常情况的自动化处理,减少了异常情况的处理时间,从而提高了异常处理效率。
基于上述图2所示的实施例,示例的,根据异常实例的异常类型,确定与异常实例对应的目标实例时,可以根据异常实例的异常类型,从扩容的实例中或者从异常实例所属的实例分组中确定目标实例,这样可以自动确定目标实例,使得通过确定出的目标实例为服务的正常运行提供保证,从而实现了服务的正常运行。
考虑到异常实例的异常类型不同,对应的确定目标实例的方法也不同,下面,将结合不同的异常类型,对如何确定与异常实例对应的目标实例,以及如何执行对应的自动化处理操作进行详细描述,具体可参见下述实施例二。
实施例二
在一种场景下,异常类型为退场类型,在确定与异常实例对应的目标实例,以及执行对应的自动化处理操作时,示例的,可参见图3所示,图3是本公开实施例提供的一种退场类型场景下异常实例自动化处理的示意图。
S301、接收退场探测请求,退场探测请求中包括异常实例的标识。
示例的,PaaS平台会因为负载均衡调度、实例扩缩容等原因,主动向PaaS平台上部署的控制器发起退场探针请求,该退场探针请求中可以包括需要退场的异常实例的标识,以通过该退场探针请求询问控制器是否可以直接对异常实例执行退场操作。
对应的,控制器在接收到PaaS平台发送的退场探针请求后,可以根据该退场探针请求确定异常实例的异常类型为退场类型,考虑到若异常实例为正在运行中的主实例,直接退场会导致服务在至少选举时间内不可用,因此,控制器在接收到该退场探针请求后,会先判断该异常实例是否为主实例,即执行下述S302:
S302、若异常类型为退场类型,则判断异常实例是否为主实例。
示例的,控制器在判断异常实例是否为主实例时,会向raft服务发起检查服务,以通过raft服务判断异常实例是否为主实例,若检查结果指示异常实例不为主实例,即从实例,则PaaS平台可以直接对该异常实例执行退场操作;相反的,若检查结果指示异常实例为主实例,则执行下述S303,raft服务向控制器反馈异常实例为主实例。
S303、向控制器反馈异常实例为主实例。
S304、若异常实例为主实例,则从异常实例所属的实例分组的从实例中确定目标实例。
控制器在确定异常实例为主实例时,会向raft服务发起主实例转移命令,以从异常实例所属的实例分组的从实例中,确定用于执行主实例服务的目标实例,这样后续可以通过目标实例替代异常实例,执行异常实例对应的服务,从而保证服务的正常运行。
S305、向PaaS平台反馈异常实例不可退场的响应消息。
示例的,控制器向PaaS平台反馈异常实例不可退场的响应消息,这样PaaS平台在接收到响应消息后,不会直接对该异常实例执行退场操作,而是在对该异常实例执行退场操作时,需要进一步的探测,直至接收到控制器反馈可退场的响应消息,才会对该异常实例执行退场操作,从分布式服务系统中删除异常实例,可参见下述S306-S310。
需要说明的是,在本公开实施例中,上述S304和S305之间并无先后顺序,可以先执行S304,再执行S305;也可以先执行S305,再执行S304;也可以同时执行S304和S305,具体可以根据实际需要进行设置,在此,本公开实施例只是以先执行S304,再执行S305为例进行说明,但并不代表本公开实施例仅局限于此。
S306、接收退场探测请求,退场探测请求中包括异常实例的标识。
S307、重新判断异常实例是否为主实例。
示例的,控制器在接收到PaaS平台发送的退场探测请求后,会向raft服务发起检查服务,以通过raft服务重新判断异常实例是否为主实例,若检查结果指示异常实例为主实例,则可继续执行上述S303-S306,并重新判断异常实例是否为主实例;相反的,若检查结果指示异常实例不为主实例,则执行下述S308,raft服务向控制器反馈异常实例不为为主实例。
S308、向控制器反馈异常实例不为主实例。
控制器在确定raft服务反馈的异常实例不为主实例后,向PaaS平台反馈异常实例可退场的响应消息。
S309、向PaaS平台反馈异常实例可退场的响应消息。
S310、从分布式服务系统中删除异常实例。
PaaS平台在接收到异常实例可退场的响应消息后,可以从分布式服务系统中删除异常实例,实现了raft组内异常实例的自动化清理。
可以看出,本公开实施例中,在执行异常实例退场操作时,通过先确定异常实例是否为主实例,并在确定异常实例为非主实例后,才会对异常实例执行退场操作,实现对异常情况的自动化处理,并且可以有效降低因主实例退场导致服务不可用的时间,从而提高了异常处理效率。
此外,在从异常实例所属的实例分组的从实例中确定目标实例,并控制目标实例作为主实例,用于执行主实例的服务之外,示例的,考虑到目标实例在作为从实例时,其对应的服务会被搁置,因此,还可以扩容一个实例,可记为第一实例,并将第一实例添加到异常实例所属的实例分组中,再控制第一实例执行与目标实例相同的服务,这样可以保证目标实例在作为从实例时,其对应的服务的正常运行。
需要说明的是,在本公开实施例中,可以先扩容第一实例,再执行异常实例的退场操作;也可以先执行异常实例的退场操作,再执行扩容第一实例;也可以同时执行扩容第一实例,和执行异常实例的退场操作,具体可以根据实际需要进行设置。
在另一种场景下,异常类型为错误类型,在确定与异常实例对应的目标实例,以及执行对应的自动化处理操作时,示例的,可参见图4所示,图4是本公开实施例提供的一种错误类型场景下异常实例自动化处理的示意图。
S401、接收健康探测请求。
目前,在系统存在严重错误,例如磁盘满、磁盘只读等输入/输出(input/output,IO)错误等时,对应的raft服务的实例会进入错误状态,不会再接收新请求的更新,直到系统错误被解决,重启服务服务才可以恢复。
为了解决这个问题,在本公开实施例中,PaaS平台可以主动周期性地向部署的控制器发送健康探针请求,以通过健康探针请求主动检测检测raft服务的实例的状态,该状态包括健康状态或非健康状态,非健康状态的实例即为错误实例。示例的,周期性可以为分钟级的间隔周期,具体可以根据实际需要进行设置。
对应的,控制器在接收到PaaS平台发送的健康探测请求后,可以根据该健康探测请求检查所有所有实例状态。
S402、检查所有实例状态。
示例的,控制器在检查所有实例状态时,会向raft服务发起检查服务,以通过raft服务检查所有实例状态是否为健康实例,若检查结果指示所有实例均为健康实例,则可以直接向PaaS平台反馈实例均为健康状态的响应消息;相反的,若检查结果指示存在实例为非健康实例,可以将该非健康实例记为异常实例,且该异常实例的异常类型为错误类型,则执行下述S403,raft服务向控制器反馈存在实例为非健康实例。
S403、向控制器反馈存在实例为非健康实例。
控制器在确定存在实例为非健康实例后,向PaaS平台反馈存在实例为非健康实例,即执行下述S404,这样PaaS平台就可以通过健康探针请求主动发现非健康状态的异常实例。
S404、向PaaS平台反馈存在实例为非健康实例。
PaaS平台会对该非健康实例发起实例迁移。在进行实例迁移时,可以先扩容一个实例,可记为第二实例,并将第二实例添加到异常实例所属的实例分组中,将第二实例确定为目标实例,即执行下述S405:
S405、扩容第二实例,并将第二实例添加到异常实例所属的实例分组中,并将第二实例确定为目标实例。
PaaS平台在将第二实例确定为目标实例后,该第二实例可以替代异常实例,用于执行异常实例对应的服务,以保证服务的正常运行。
S406、从分布式服务系统中删除非健康实例。
这样通过从分布式服务系统中删除非健康状态的异常实例,实现了raft组内错误类型实例的自动化清理。
通过上述S401-S406,PaaS平台可以通过健康探针请求,完成一次对实例状态的主动检测,并在检测到异常实例时,对应的处理操作;后续,可以再间隔一个周期,再次通过健康探针请求,执行对实例状态的主动检测及处理,其对应的检测及处理方法与上述S401-S406的检测及处理方法类似,在此,本公开实施例不再进行赘述。
可以看出,本公开实施例中,在执行错误类型的异常实例检测操作时,通过健康探针请求检测所有实例状态,并在确定存在实例为错误类型的异常实例后,对该异常实例进行实例迁移,实现对异常情况的自动化处理,并且实现了raft组内错误类型实例的自动化清理。
在又一种场景下,异常类型为假死类型,在确定与异常实例对应的目标实例,以及执行对应的自动化处理操作时,示例的,可参见图5所示,图5是本公开实施例提供的一种假死类型场景下异常实例自动化处理的示意图。
S501、周期性检测主实例的端口访问状态是否正常。
示例的,控制器在周期性检测主实例的端口访问状态是否正常时,会向raft服务发起检查服务,以通过raft服务检测主实例的端口访问状态是否正常,若检查结果指示端口访问状态正常,说明主实例可以执行对应的服务;相反的,若检查结果指示端口访问状态异常,则执行下述S502,raft服务向控制器反馈端口访问状态异常。
S502、向控制器反馈端口访问状态异常。
S503、从异常实例所属的实例分组的从实例中确定目标实例。
示例的,控制器在根据端口访问状态异常,确定主实例为假死类型的异常实例后,可以随机选择一个从实例发起选举,同时控制器标记假死类型的主实例为非健康状态,这样通过周期性主动检测主实例的端口访问状态是否正常,并在检测到主实例的端口访问异常时,随机选择一个从实例发起选举,选举一个目标实例作为新的主实例,用于执行假死类型的主实例对应的服务,不仅实现了对异常情况的自动化处理,而且还可以尽可能地保证服务的正常运行。
可以理解的是,在对异常情况进行自动化处理的过程中,可能会接收到健康PaaS平台发送的健康探针请求,即执行下述S504,以通过该健康探针请求检查主实例的端口访问状态。
S504、接收健康探针请求。
示例的,接收健康探针请求消息可以在新的主实例选举的过程中,也可以在新的主实例选举后,具体可以根据实际需要进行设置,在此,对于健康探针请求的接收时机,本公开实施例不做具体限制。
PaaS平台通过向控制器发送健康探针请求,以通过该健康探针请求探测所有实例状态是否为健康状态,若检测结果指示所有实例均为健康状态,则向PaaS平台反馈所有实例均为健康状态的响应消息;若检测结果指示存在假死类型的主实例,则执行下述S505:
S505、向PaaS平台反馈假死类型的主实例可以退场的响应消息。
S506、从分布式服务系统中删除假死类型的主实例。
Paas平台在确定假死类型的主实例可以退场后,就可以从分布式服务系统中删除该假死类型的主实例;并且,还可以将该假死类型的主实例的相关配置信息,从raft配置中剔除。
需要说明的是:考虑到非健康的主实例已经无法执行对应的服务,因此,PaaS平台在接收到假死类型的主实例可以退场的响应消息后,可以直接从分布式服务系统中删除假死类型的主实例,无需获知新的主实例是否已经选举并执行对应的服务。
可以看出,本公开实施例中,在执行假死类型的异常实例检测操作时,通过预先周期性主动检测主实例的端口访问状态是否正常,并在检测到主实例的端口访问异常时,随机选择一个从实例发起选举,选举一个目标实例作为新的主实例,用于执行假死类型的主实例对应的服务,不仅实现了对异常情况的自动化处理,而且可以在一定程度上减少raft服务不可用的时间,保证了服务的正常运行。
可以理解的是,在本公开实施例中,只是以上述三种可能的场景为例进行说明,也可以包括其他的场景,例如,raft组成员的自动变更的场景,在该种场景下,PaaS平台感知到某一个实例迁移时,raft组的成员配置也需要做同步的变更。首先,PaaS平台会先扩容出一个实例,则当前预期配置的实例会比raft服务的实际运行配置的实例多一个,控制器周期性地检测raft服务的实际运行配置和当前预期配置的差别,将raft配置中预期存在但实际不存在的实例加入raft组;其次,PaaS平台采用健康探针请求检测新加入的实例的状态,并通过控制器确定新加入的实例的状态为健康状态时,触发实例删除操作,删除掉需要迁移的实例。此外,控制器也会从raft配置中删除该需要迁移的实例的相关配置信息,从而实现raft组成员的自动变更。
示例的,周期性可以为秒级间隔的周期,具体可以根据实际需要进行设置。
实施例三
图6是根据本公开第三实施例提供的异常实例的处理装置60的结构示意图,示例的,请参见图6所示,该异常实例的处理装置60可以包括:
确定单元601,用于确定分布式服务系统中的异常实例。
处理单元602,用于根据异常实例的异常类型,确定与异常实例对应的目标实例,并控制目标实例执行与异常实例相同的服务。
删除单元603,用于从分布式服务系统中删除异常实例。
可选的,处理单元602包括第一处理模块。
第一处理模块,用于根据异常实例的异常类型,从扩容的实例中或者从异常实例所属的实例分组中确定目标实例。
可选的,第一处理模块包括第一处理子模块和第二处理子模块。
第一处理子模块,用于若异常类型为退场类型,则判断异常实例是否为主实例。
第二处理子模块,用于若异常实例为主实例,则从异常实例所属的实例分组的从实例中确定目标实例。
可选的,第二处理子模块,具体用于接收退场探测请求,退场探测请求中包括异常实例的标识;重新判断异常实例是否为主实例;若异常实例不为主实例,则从分布式服务系统中删除异常实例。
可选的,第一处理模块还包括第三处理子模块和第四处理子模块。
第三处理子模块,用于扩容第一实例。
第四处理子模块,用于将第一实例添加到异常实例所属的实例分组中,并控制第一实例执行与目标实例相同的服务。
可选的,第一处理模块还包括第五处理子模块和第六处理子模块。
第五处理子模块,用于若异常类型为错误类型,则扩容第二实例。
第六处理子模块,用于将第二实例添加到异常实例所属的实例分组中,并将第二实例确定为目标实例。
可选的,第一处理模块还包括第七处理子模块。
第七处理子模块,用于若异常类型为假死类型,则从异常实例所属的实例分组的从实例中确定目标实例,其中,假死类型的实例的端口访问状态异常。
本公开实施例提供的异常实例的处理装置60,可以执行上述任一实施例所示的异常实例的处理方法的技术方案,其实现原理以及有益效果与异常实例的处理方法的实现原理及有益效果类似,可参见异常实例的处理方法的实现原理及有益效果,此处不再进行赘述。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
根据本公开的实施例,本公开还提供了一种计算机程序产品,计算机程序产品包括:计算机程序,计算机程序存储在可读存储介质中,电子设备的至少一个处理器可以从可读存储介质读取计算机程序,至少一个处理器执行计算机程序使得电子设备执行上述任一实施例提供的方案。
图7是本公开实施例提供的一种电子设备70的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图7所示,设备70包括计算单元701,其可以根据存储在只读存储器(ROM)702中的计算机程序或者从存储单元708加载到随机访问存储器(RAM)703中的计算机程序,来执行各种适当的动作和处理。在RAM 703中,还可存储设备70操作所需的各种程序和数据。计算单元701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
设备70中的多个部件连接至I/O接口705,包括:输入单元706,例如键盘、鼠标等;输出单元707,例如各种类型的显示器、扬声器等;存储单元708,例如磁盘、光盘等;以及通信单元709,例如网卡、调制解调器、无线通信收发机等。通信单元709允许设备70通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元701可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元701的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元701执行上文所描述的各个方法和处理,例如异常实例的处理方法。例如,在一些实施例中,异常实例的处理方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元708。在一些实施例中,计算机程序的部分或者全部可以经由ROM 702和/或通信单元709而被载入和/或安装到设备70上。当计算机程序加载到RAM 703并由计算单元701执行时,可以执行上文描述的异常实例的处理方法的一个或多个步骤。备选地,在其他实施例中,计算单元701可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行异常实例的处理方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务("Virtual Private Server",或简称"VPS")中,保留的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

Claims (17)

1.一种异常实例的处理方法,包括:
确定分布式服务系统中的异常实例;
根据所述异常实例的异常类型,确定与所述异常实例对应的目标实例,并控制所述目标实例执行与所述异常实例相同的服务;
从所述分布式服务系统中删除所述异常实例。
2.根据权利要求1所述的方法,其中,所述根据所述异常实例的异常类型,确定与所述异常实例对应的目标实例,包括:
根据所述异常实例的异常类型,从扩容的实例中或者从所述异常实例所属的实例分组中确定所述目标实例。
3.根据权利要求2所述的方法,其中,所述从所述异常实例所属的实例分组中确定所述目标实例,包括:
若所述异常类型为退场类型,则判断所述异常实例是否为主实例;
若所述异常实例为主实例,则从所述异常实例所属的实例分组的从实例中确定所述目标实例。
4.根据权利要求3所述的方法,其中,所述从所述分布式服务系统中删除所述异常实例,包括:
接收退场探测请求,所述退场探测请求中包括所述异常实例的标识;
重新判断所述异常实例是否为主实例;
若所述异常实例不为主实例,则从所述分布式服务系统中删除所述异常实例。
5.根据权利要求3或4所述的方法,所述方法还包括:
扩容第一实例;
将所述第一实例添加到所述异常实例所属的实例分组中,并控制所述第一实例执行与所述目标实例相同的服务。
6.根据权利要求2所述的方法,其中,从扩容的实例中确定所述目标实例,包括:
若所述异常类型为错误类型,则扩容第二实例;
将所述第二实例添加到所述异常实例所属的实例分组中,并将所述第二实例确定为所述目标实例。
7.根据权利要求2所述的方法,其中,所述从所述异常实例所属的实例分组中确定所述目标实例,包括:
若所述异常类型为假死类型,则从所述异常实例所属的实例分组的从实例中确定所述目标实例,其中,假死类型的实例的端口访问状态异常。
8.一种异常实例的处理装置,包括:
确定单元,用于确定分布式服务系统中的异常实例;
处理单元,用于根据所述异常实例的异常类型,确定与所述异常实例对应的目标实例,并控制所述目标实例执行与所述异常实例相同的服务;
删除单元,用于从所述分布式服务系统中删除所述异常实例。
9.根据权利要求8所述的装置,其中,所述处理单元包括第一处理模块;
所述第一处理模块,用于根据所述异常实例的异常类型,从扩容的实例中或者从所述异常实例所属的实例分组中确定所述目标实例。
10.根据权利要求9所述的装置,其中,所述第一处理模块包括第一处理子模块和第二处理子模块;
所述第一处理子模块,用于若所述异常类型为退场类型,则判断所述异常实例是否为主实例;
所述第二处理子模块,用于若所述异常实例为主实例,则从所述异常实例所属的实例分组的从实例中确定所述目标实例。
11.根据权利要求10所述的装置,其中,
所述第二处理子模块,具体用于接收退场探测请求,所述退场探测请求中包括所述异常实例的标识;重新判断所述异常实例是否为主实例;若所述异常实例不为主实例,则从所述分布式服务系统中删除所述异常实例。
12.根据权利要求10或11所述的装置,所述第一处理模块还包括第三处理子模块和第四处理子模块;
所述第三处理子模块,用于扩容第一实例;
所述第四处理子模块,用于将所述第一实例添加到所述异常实例所属的实例分组中,并控制所述第一实例执行与所述目标实例相同的服务。
13.根据权利要求9所述的装置,其中,所述第一处理模块还包括第五处理子模块和第六处理子模块;
所述第五处理子模块,用于若所述异常类型为错误类型,则扩容第二实例;
所述第六处理子模块,用于将所述第二实例添加到所述异常实例所属的实例分组中,并将所述第二实例确定为所述目标实例。
14.根据权利要求9所述的装置,其中,所述第一处理模块还包括第七处理子模块;
所述第七处理子模块,用于若所述异常类型为假死类型,则从所述异常实例所属的实例分组的从实例中确定所述目标实例,其中,假死类型的实例的端口访问状态异常。
15.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的异常实例的处理方法。
16.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-7中任一项所述的异常实例的处理方法。
17.一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现权利要求1-7中任一项所述的异常实例的处理方法的步骤。
CN202111482496.7A 2021-12-06 2021-12-06 异常实例的处理方法、装置和电子设备 Pending CN114138538A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111482496.7A CN114138538A (zh) 2021-12-06 2021-12-06 异常实例的处理方法、装置和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111482496.7A CN114138538A (zh) 2021-12-06 2021-12-06 异常实例的处理方法、装置和电子设备

Publications (1)

Publication Number Publication Date
CN114138538A true CN114138538A (zh) 2022-03-04

Family

ID=80384765

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111482496.7A Pending CN114138538A (zh) 2021-12-06 2021-12-06 异常实例的处理方法、装置和电子设备

Country Status (1)

Country Link
CN (1) CN114138538A (zh)

Similar Documents

Publication Publication Date Title
CN112650576B (zh) 资源调度方法、装置、设备、存储介质及计算机程序产品
CN109446169B (zh) 一种双控磁盘阵列共享文件系统
US20170329655A1 (en) Method and apparatus of unloading out of memory processing flow to user space
CN113364877A (zh) 数据处理方法、装置、电子设备和介质
CN112199240B (zh) 一种节点故障时进行节点切换的方法及相关设备
CN115580645A (zh) 一种服务切换方法、装置、电子设备和存储介质
CN111541762A (zh) 数据处理的方法、管理服务器、设备及存储介质
CN115454958B (zh) 基于人工智能的数据处理方法、装置、设备、系统及介质
CN114138538A (zh) 异常实例的处理方法、装置和电子设备
CN115934742A (zh) 一种故障处理方法、装置、设备及存储介质
CN114070889B (zh) 配置方法、流量转发方法、设备、存储介质及程序产品
CN112860796B (zh) 用于同步数据的方法、装置、设备以及存储介质
CN113641688B (zh) 节点更新方法、相关装置及计算机程序产品
CN112799879B (zh) 节点的故障处理方法、装置、设备和存储介质
CN113553216A (zh) 数据恢复方法、装置、电子设备及存储介质
CN114546705B (zh) 操作响应方法、操作响应装置、电子设备以及存储介质
CN117395263B (zh) 一种数据同步方法、装置、设备和存储介质
EP4160996A1 (en) Operation state switching method and device, master/standby management system, and network system
CN115756855A (zh) 一种集群切换方法、装置、终端及存储介质
CN115510036A (zh) 数据迁移方法、装置、设备以及存储介质
CN114598743A (zh) 一种服务发现方法、装置、电子设备及存储介质
CN115390992A (zh) 一种虚拟机创建方法、装置、设备和存储介质
CN116089222A (zh) 一种数据库集群监控方法、装置、设备及介质
CN117743467A (zh) 一种代理节点更换方法、装置、设备以及存储介质
CN116594764A (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