微服务架构的故障处理方法、装置、设备以及存储介质与流程

文档序号:25481132发布日期:2021-06-15 21:40阅读:128来源:国知局
微服务架构的故障处理方法、装置、设备以及存储介质与流程

本公开涉及计算机技术技术领域,尤其涉及云计算、物联网等领域。



背景技术:

作为一种架构模式,微服务架构用于实现将复杂的系统或应用程序切分为多个微服务程序,每个微服务程序可以实现一个独立的业务逻辑。

为了减少开发人员的开发成本,微服务架构通过分离每个微服务程序中的业务逻辑和通信逻辑,对每个微服务程序的通信逻辑进行抽象和归纳,形成针对每个微服务程序的代理程序。

代理程序负责代理与之关联的微服务程序进行数据通信,以实现服务治理功能。用于代理多个微服务程序进行数据通信的多个代理程序形成一个服务网格(servicemesh)。

相关技术在执行服务治理功能时,存在无法及时进行服务治理的缺陷。



技术实现要素:

本公开提供了一种微服务架构的故障处理方法、装置、设备以及存储介质。

根据本公开的一方面,提供了一种微服务架构的故障处理方法,该方法可以包括以下步骤:

在检测到运行参数出现异常的情况下,确定导致运行参数出现异常的故障组件;

确定与故障组件具有相同功能的目标代替组件;

断开故障组件的下游组件与故障组件的连接,建立故障组件的下游组件与目标代替组件的连接。

根据本公开的另一方面,提供了一种微服务架构的故障处理装置,该装置具体可以包括以下组件:

故障发现模块,用于在检测到运行参数出现异常的情况下,确定导致运行参数出现异常的故障组件;

目标代替组件确定模块,用于确定与故障组件具有相同功能的目标代替组件;

转移模块,用于断开故障组件的下游组件与故障组件的连接,建立故障组件的下游组件与目标代替组件的连接。

根据本公开的另一方面,提供了一种电子设备,包括:

至少一个处理器;以及

与该至少一个处理器通信连接的存储器;其中,

该存储器存储有可被该至少一个处理器执行的指令,该指令被该至少一个处理器执行,以使该至少一个处理器能够执行本公开任一实施例中的方法。

根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,该计算机指令用于使计算机执行本公开任一实施例中的方法。

根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现本公开任一实施例中的方法。

根据本公开的技术在面对微服务架构中的运行参数出现异常的情况,可以实现故障的快速定位以及连接转换,实现异地多活的功能。满足微服务架构的正常运行。

应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。

附图说明

附图用于更好地理解本方案,不构成对本公开的限定。其中:

图1是根据本公开微服务架构的故障处理方法的流程图;

图2是根据本公开确定目标代替组件的流程图;

图3是根据本公开确定目标代替组件的流程图;

图4是根据本公开微服务架构的示意图;

图5是根据本公开微服务架构的示意图;

图6是根据本公开微服务架构的故障处理装置的示意图;

图7是用来实现本公开实施例微服务架构的故障处理方法的电子设备的框图。

具体实施方式

以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。

如图1所示,本公开提供一种微服务架构的故障处理方法,该方法可以包括以下步骤:

s101:在检测到运行参数出现异常的情况下,确定导致运行参数出现异常的故障组件;

s102:确定与故障组件具有相同功能的目标代替组件;

s103:断开故障组件的下游组件与故障组件的连接,建立故障组件的下游组件与目标代替组件的连接。

上述实施方式的执行主体可以是微服务架构中的控制端。微服务架构可以包括至少一个服务网格系统组件,每个服务网格系统组件可以部署于互联网数据中心(idc,internetdatacenter)。

互联网数据中心可以设置于不同的地域(地理位置)。例如,可以设置于不同城市甚至不同国家;或者,也可以设置在同一城市的不同地区等。

服务网格系统组件中至少可以包括具有上下游通信逻辑的控制面组件和数据面组件。

其中,数据面组件用于接管所有进出微服务程序的流量,实现核心的服务治理能力。

例如,核心的服务治理能力可以包括连接、安全、控制和观察等几个类别。

在每个类别下,又可以细分为不同的子类别。

例如,连接类别可以包括负载均衡、熔断、故障注入和重试等子类别。

安全类别可以包括认证,授权和加密等子类别。

控制类别可以包括访问、速率和配额等子类别。

观察类别可以包括动态获取、调用链追踪和监控等子类别。

在一个示例中,数据面组件可以包括边车(sidecar)组件,边车组件可以对应和微服务程序一起部署。

控制面用于向数据面推送服务策略信息等内容。以服务治理为执行负载均衡为例,控制面可以根据用户的指令,向边车组件发送随机策略信息、最小连接策略信息或轮询策略信息。

控制面可以包括领航(pilot)组件。

另外,服务网格系统组件还可以包括存储系统组件,存储系统组件用于存储供控制面向数据面推送的服务策略信息。在控制面向数据面推送服务策略信息时,需要从存储系统组件获取对应的服务策略信息。其中,各服务网格系统组件可以共用一个存储系统组件。或者,每个服务网格系统组件可以各自配套设置有存储系统组件。

在每个服务网格系统组件各自配套设置有存储系统组件的情况下,每个存储系统组件所存储的内容可以利用一致性保障,实现存储内容彼此相同。

控制面组件和数据面组件的交互可以包括以下两类。其一是控制面向数据面推送服务策略信息;其二是数据面组件向控制面发送请求,以获取服务策略信息。在大量的数据面组件向控制面组件发送大量的请求的情况下,容易形成大量的请求对控制面组件造成冲击,最终导致控制面组件出现故障。一旦控制面出现故障,则发生故障的控制面组件无法再对数据面组件发送的请求进行处理,从而导致故障扩散。

另外,控制面组件和存储系统组件的交互同样包括两类,控制面组件向存储系统组件发送策略请求,由存储系统组件下发。同样的,在请求数量多或下发数据量大的情况下,容易造成故障情况的发生。以上仅示例性的提出微服务架构的一种故障形成原因,实际故障形成原因包括多种,在此不一一赘述。

可以利用服务发现技术,对服务网格系统组件进行运行参数的监控,以实现对于故障的实时发现。例如,在检测到控制面组件的端口不可用,或者cpu负荷超过阈值的情况下,可以确定出运行参数出现异常。对异常的异常参数进行解析,即可确定出导致运行参数出现异常的故障组件。

例如,可以确定出存储系统组件故障、领航组件故障和/或边车组件故障等。示例性地,在确定a地域的服务网格系统组件中的控制面组件出现运行参数异常的情况下,可以将a地域的服务网格系统组件中的控制面组件确定为故障组件。

其次,在其他地域的服务网格系统组件查询与故障组件具有相同功能的代替组件。在本申请实施例中,可以将设置于不同地域的服务网格系统组件设置为互为容灾。即,每个服务网格系统组件彼此具有一致性,以便在服务网格系统组件中的任意一个节点出现故障时,可以快速从其他服务网格系统组件中确定出代替节点。

例如,在a地域的服务网格系统组件中的控制面组件确定为故障组件的情况下,可以将b地域的服务网格系统组件中的控制面组件作为代替节点。基于此,可以断开故障组件的下游组件(a地域的服务网格系统组件中的数据面组件)与故障组件(a地域的服务网格系统组件中的控制面组件)的连接,将故障组件的下游组件的连接切换至b地域的服务网格系统组件中的控制面组件。

对于单故障组件,可以执行失效安全(failsafe)容错机制,对于多个故障组件或者集群故障,可以执行快速失败(failfast)容错机制以及失效转移(failover)容错机制。另外,对于出现故障的组件,还包括失效自动恢复(failback)容错机制。

通过上述方案,在面对微服务架构中的运行参数出现异常的情况,可以实现故障的快速定位以及连接转换,实现异地多活的功能。满足微服务架构的正常运行。

如图2所示,在一种实施方式中,步骤s102中的确定故障组件具有相同功能的代替组件,可以进一步包括以下子步骤:

s201:确定与故障组件具有相同功能的多个候选代替组件;

s202:根据预定规则,从候选代替组件中确定目标代替组件。

在将设置于不同地理位置的服务网格系统组件设置为互为容灾的情况下,可以将各服务网格系统组件中的存储系统组件确定为具有相同功能的候选代替组件。

另外,也可以将各服务网格系统组件中的控制面组件确定为具有相同功能的候选代替组件;或者,还可以将各服务网格系统组件中的存储系统组件确定为具有相同功能的候选代替组件。

预定规则可以是兜底原则。例如,存在a、b、c三个地域的服务网格系统组件。可以根据各服务网格系统的地理位置、各服务网格系统的硬件情况等因素,(示例性地)依次依照a、b、c的顺序确定出第一至第三顺序的候选代替组件。即,在b、c任意地域的服务网格系统组件出现故障的情况下,都可以将a地域的服务网格系统组件确定为候选代替组件。在a地域的服务网格系统组件出现故障的情况下,可以将b地域的服务网格系统组件确定为目标代替组件。

通过上述方案,在存在多个候选代替组件的情况下,可以直接根据预定规则的方式直接确定出目标代替组件。可以省略相互比较的时间,从而以最高效的方式选择出目标代替组件。

如图3所示,在一种实施方式中,根据预定规则,从候选代替组件中确定目标代替组件,包括:

s301:确定故障组件与每个候选代替组件的物理距离;

s302:根据物理距离,从多个候选代替组件中确定目标代替组件。

示例性地,a、b、c三个地域分别为北京、南京、广州。在确定出北京的服务网格系统组件中的控制面组件出现故障的情况下,可以分别测试北京到南京的物理距离,以及北京到广州的物理距离。

通过距离比较,可以得出南京至北京的物理距离短于广州至北京的物理距离。基于此,可以将南京的服务网格系统组件中的控制面组件确定为目标代替组件。

通过上述方案,在任一地域的组件出现故障的情况下,可以根据物理距离优先选择距离较近的目标代替组件。从而可以在目标代替组件投入工作后,最大限度降低业务处理的时延情况。

在一种实施方式中,微服务架构中包括设置于不同地域的服务网格系统组件;

服务网格系统组件包括具有上下游关系的多个功能组件,每个功能组件对应执行不同功能。

在当前实施方式中,服务网格系统组件可以设置在不同地域。示例性的,不同地域可以是不同城市或者不同国家。服务网格系统组件作为服务策略的获取和执行主体,通过有上下游关系的多个功能组件,可以为对应城市或者国家的用户就近提供服务,从而提高对应地理位置用户的访问效率。

在一种实施方式中,具有上下游关系的多个功能组件包括:存储系统组件、服务策略执行组件;

存储系统组件的功能包括存储微服务的多种服务策略信息;

服务策略执行组件的功能包括从多种服务策略信息中确定并执行目标服务策略。

在一种实施方式中,服务策略执行组件包括控制面组件和数据面组件;

控制面组件的功能包括根据策略信息确定指令,将从多种服务策略信息中确定的目标服务策略信息发送至数据面组件;

数据面组件的功能包括根据接收到的目标服务策略信息,执行与目标服务策略信息对应的服务策略。

在图4所示的示例中,包括三个地域,分别为北京、南京和广州。

服务网格系统组件可以包括具有上下游关系的存储系统组件和服务策略执行组件。而服务策略执行组件可以进一步由控制面组件和数据面组件。

图4中的实线表示在未出现故障情况下,服务网格系统组件的上下游通信示意图。虚线可以在出现故障的情况下的调整后上下游关系示意图。例如,在北京的控制面组件出现故障的情况下,可以将北京的数据面组件连接至广州或南京的控制面组件的下游。

另外,还可以包括服务治理平台,用户可以通过服务治理平台下达策略信息确定指令,例如可以包括进行服务策略信息的下发、调整以及更新等动作对应的指令。

通过上述方案,在服务网格系统组件中的任意节点出现故障的情况下,都可以实现快速切换。以满足异地多活的需求。

结合图5所示,在一种实施方式中,具有上下游关系的多个功能组件还包括分发层组件;

分发层组件的功能包括在不同地域的服务网格系统组件中的存储系统组件出现存储内容不一致的情况下,分发层组件用于进行存储内容一致性调整。

图5对应的微服务架构是在图4所示的微服务架构基础上进一步完善的。在出现用户对服务治理能力对应的策略进行变更的情况下,分发层组件可以根据用户在服务治理平台所进行的服务策略信息变更情况,将变更后的策略进行分发。以满足对不同地域的服务网格系统组件中的存储系统组件进行存储内容一致性调整。

示例性地,用户在a地域的服务治理平台进行策略升级。分发层组件获取到升级后的策略,并将升级后的策略分发至各地域的存储系统组件中,以满足各地域的存储系统组件实现全量化存储。一来可以保证各地域存储系统组件的一致性,二来可以使各地域的存储系统组件实现互为容灾。

如图6所示,本公开涉及一种微服务架构的故障处理装置,该装置具体可以包括以下组件:

故障发现模块601,用于在检测到运行参数出现异常的情况下,确定导致运行参数出现异常的故障组件;

目标代替组件确定模块602,用于确定与故障组件具有相同功能的目标代替组件;

转移模块603,用于断开故障组件的下游组件与故障组件的连接,建立故障组件的下游组件与目标代替组件的连接。

在一种实施方式中,目标代替组件确定模块602具体可以包括:

候选代替组件确定子模块,用于确定与故障组件具有相同功能的多个候选代替组件;

目标代替组件确定执行子模块,用于根据预定规则,从多个候选代替组件中确定目标代替组件。

在一种实施方式中,目标代替组件确定执行子模块,包括:

物理距离确定单元,用于确定故障组件与每个候选代替组件的物理距离;

根据物理距离,从多个候选代替组件中确定目标代替组件。

在一种实施方式中,微服务架构中包括设置于不同地域的服务网格系统组件;

服务网格系统组件包括具有上下游关系的存储系统组件、控制面组件和数据面组件;

存储系统组件用于存储微服务的多种服务策略信息;

控制面组件用于根据策略信息确定指令,将从多种服务策略信息中确定的目标服务策略信息发送至数据面组件;

数据面组件用于根据接收到的目标服务策略信息,执行与目标服务策略信息对应的服务策略。

在一种实施方式中,微服务架构中的组件还包括分发层组件;

分发层组件用于在不同地域的服务网格系统组件中的存储系统组件出现存储内容不一致的情况下,进行存储内容一致性调整。

根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。

图7示出了可以用来实施本公开的实施例的电子设备700的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或要求的本公开的实现。

如图7所示,电子设备700包括计算单元710,其可以根据存储在只读存储器(rom)720中的计算机程序或者从存储单元780加载到随机访问存储器(ram)730中的计算机程序来执行各种适当的动作和处理。在ram730中,还可存储设备700操作所需的各种程序和数据。计算单元710、rom720以及ram730通过总线740彼此相连。输入输出(i/o)接口750也连接至总线740。

电子设备700中的多个部件连接至i/o接口750,包括:输入单元760,例如键盘、鼠标等;输出单元770,例如各种类型的显示器、扬声器等;存储单元780,例如磁盘、光盘等;以及通信单元790,例如网卡、调制解调器、无线通信收发机等。通信单元790允许电子设备700通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。

计算单元710可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元710的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元710执行上文所描述的各个方法和处理,例如故障处理方法。例如,在一些实施例中,故障处理方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元780。在一些实施例中,计算机程序的部分或者全部可以经由rom720和/或通信单元790而被载入和/或安装到电子设备700上。当计算机程序加载到ram730并由计算单元710执行时,可以执行上文描述的故障处理方法的一个或多个步骤。备选地,在其他实施例中,计算单元710可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行故障处理方法。

本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该、该至少一个输入装置、和该至少一个输出装置。

用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。

在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。

为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入、或者触觉输入来接收来自用户的输入。

可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。

计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。

应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。

上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

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