CN109347682B - 基于dhnn的自组织实时微服务故障诊断方法及系统 - Google Patents
基于dhnn的自组织实时微服务故障诊断方法及系统 Download PDFInfo
- Publication number
- CN109347682B CN109347682B CN201811358874.9A CN201811358874A CN109347682B CN 109347682 B CN109347682 B CN 109347682B CN 201811358874 A CN201811358874 A CN 201811358874A CN 109347682 B CN109347682 B CN 109347682B
- Authority
- CN
- China
- Prior art keywords
- micro
- service
- fault
- module
- state
- 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.)
- Active
Links
- 238000003745 diagnosis Methods 0.000 title claims abstract description 148
- 238000000034 method Methods 0.000 title claims abstract description 43
- 238000012544 monitoring process Methods 0.000 claims abstract description 80
- 230000002159 abnormal effect Effects 0.000 claims abstract description 11
- 238000012986 modification Methods 0.000 claims description 38
- 230000004048 modification Effects 0.000 claims description 38
- 238000012360 testing method Methods 0.000 claims description 34
- 239000011159 matrix material Substances 0.000 claims description 18
- 230000008569 process Effects 0.000 claims description 17
- 230000008859 change Effects 0.000 claims description 6
- 230000010355 oscillation Effects 0.000 claims description 4
- 230000033228 biological regulation Effects 0.000 claims description 3
- 238000013528 artificial neural network Methods 0.000 description 12
- 210000002569 neuron Anatomy 0.000 description 11
- 238000011161 development Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000002405 diagnostic procedure Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000005284 excitation Effects 0.000 description 1
- 230000002401 inhibitory effect Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 230000006641 stabilisation Effects 0.000 description 1
- 238000011105 stabilization Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0677—Localisation of faults
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种基于DHNN的自组织实时微服务故障诊断方法及系统,其包括微服务故障监测模块和微服务故障诊断模块,微服务故障监测模块:负责对整个微服务系统中的各个微服务的运行状态进行监测,判断是否启动微服务故障诊断模块对微服务故障进行诊断;当某个微服务发生故障时,该微服务故障监测模块能将该故障信号放大,从而网络中的其他微服务均可接收到该信号并且激活自身的微服务故障诊断模块;微服务故障诊断模块:当故障监测模块发现网络出现异常时对微服务系统所处的网络进行故障诊断,确定故障到底来自于哪个微服务。本发明解决了微服务系统实时监测与诊断的问题,能够及时发现发生故障的微服务。
Description
技术领域
本发明涉及一种微服务故障诊断方法及系统,特别是关于一种基于离散型Hopfield神经网络DHNN(Discrete Hopfield Neural Network,反馈神经网)的自组织实时微服务故障诊断方法及系统。
背景技术
企业信息化的不断发展,导致了企业的应用系统数量不断增多,规模不断变大以及复杂程度不断升高。因此产生了一些弊端,诸如系统变得越来越庞大,灵活性也越来越低。这样的企业信息化现状使得应用系统的开发和部署面临着更多新的挑战,也要求企业的应用架构必须更加具有高效性和可扩展性。微服务架构的出现,有效地解决了当前企业信息化面临的这一系列问题。微服务架构把应用的功能分解到各个离散的微服务里面去,从而实现了对应用系统的解耦。相对于传统的单体应用架构,微服务架构有着如下一些优势:①复杂度可控;②技术选型灵活;③可独立部署;④可根据实际的需求独立进行扩展;⑤微服务故障被隔离在其内部,因此有比较好的容错性,避免了系统全局的不可用。因此,许多大型企业已经将微服务架构体系作为其信息化转型的主要演进方向。但是由于基于微服务架构的应用系统所包含的组件众多,组件之间的依赖关系复杂,微服务组件更新比较频繁等,导致了故障发生的概率和故障诊断的难度都增加了。因此保障微服务系统的可靠性及其性能的关键问题之一是如何有效地检测微服务之间发生的故障并且准确地对出现故障的微服务进行定位。
Hopfield神经网络是一种循环的递归的反馈神经网络,又被称为全互联网络。它的每个神经元都和其他的神经元相互连接,且每个神经元从输入到输出均有反馈连接,其输出端会不断反馈到其输入端,输出端会在输入的激励下不断改变自身的状态,这个反馈过程会不断反复进行。如果该Hopfield神经网络是个收敛的稳定的网络,那么反馈迭代的计算过程所产生的变化会逐渐减小,直到达到一个稳定的平衡状态,然后该神经网络就会输出一个稳定的恒定值。
离散型Hopfield神经网络DHNN(Discrete Hopfield Neural Network,反馈神经网)则是一种二值神经网络,它的输出和输入都只取集合{0,1}或者集合{-1,1}中的一个值,分别表示神经元处于激活状态或者抑制状态。它是一个单层的网络,有n个神经元节点,各个节点本身没有自反馈,每个神经元节点的输出都会和其他神经元的输入相连接,且每个神经元都只处于一种状态(比如0/抑制状态),直至其所受到的刺激超过限定值时,才会改变成另外一种状态(比如1/激活状态)。并且DHNN有2种工作方式:1)串行(异步)方式:在任何一个时刻t,只有某一个神经元节点的状态发生了变化,其他的n-1个节点的状态都保持不变;2)并行(同步)方式:在任何一个时刻t,所有的神经元的状态均发生了变化。
对DHNN的稳定性的定义:假设一个DHNN的初始状态为S(t),S(t)=[s1(t),s2(t),s3(t),s4(t),…sn(t)]T且对于任何的Δt>0,从t=0开始,DHNN的初始状态为S(0),经过有限的时间t,有S(t+Δt)=S(t),那么就可以认为该DHNN网络是稳定的网络,它的状态是稳定状态,该稳定状态称为该神经网络的吸引子(attractor)。DHNN稳定的充分条件是:其权系数矩阵W是一个对称矩阵,并且对角线上的元素全都是0,即{Wij=0,i=j;Wij=Wji,i≠j},则该DHNN就是稳定的。有引理1:对于DHNN网络,如果按照异步方式来对整个网络的状态进行调整,并且权系数矩阵W是一个对称矩阵,那么对于任意的初始状态,网络将会收敛到一个吸引子。
由于目前微服务架构还是比较新颖的概念,因此关于微服务故障诊断方法的文章,只有基于执行轨迹监测的微服务故障诊断方法以及柔性微服务监控框架等寥寥几篇。并且一般的微服务故障诊断,往往都是基于微服务系统中的服务注册中心来对其他微服务进行诊断,这样大大增加了部署服务注册中心的中心服务器节点的负担,当该节点出现故障,就将会导致部署该微服务系统的整个网络无法进行故障诊断。因此根据用户的实际需求,有必要提供一种实时的集监测与诊断为一体的故障诊断方法。
发明内容
针对上述问题,本发明的目的是提供一种基于DHNN的自组织实时微服务故障诊断方法及系统,其利用Hopfield网络的自组织性,可以很好地解决微服务系统实时监测与诊断的问题,能够及时发现发生故障的微服务,并且又不消耗大量网络资源或者增加系统运行的负担,更不会对微服务所处的网络性能造成很大影响。
为实现上述目的,本发明采取以下技术方案:一种基于DHNN的自组织实时微服务故障诊断方法,其包括微服务故障监测模块和微服务故障诊断模块,该方法步骤如下:1)微服务故障监测模块:负责对整个微服务系统中的各个微服务的运行状态进行监测,判断是否启动微服务故障诊断模块对微服务故障进行诊断;当某个微服务发生故障时,该微服务故障监测模块能将该故障信号放大,从而网络中的其他微服务均可接收到该信号并且激活自身的微服务故障诊断模块;2)微服务故障诊断模块:当故障监测模块发现网络出现异常时对微服务系统所处的网络进行故障诊断,确定故障到底来自于哪个微服务。
进一步,所述步骤1)中,微服务故障监测模块的监测方法包括以下步骤:1.1)每个微服务随机产生0或1来表示自身的状态,0表示正常状态,1表示故障状态;1.2)在任意2个微服务i和微服务j之间设置权值Wij,并令Wji=Wij,Wii=0,通过权值Wij确定该微服务系统所在网络的初始权系数矩阵W;1.3)通过权系数矩阵W对各个微服务按照DHNN网络异步调节方式对自身状态进行初步调节,使微服务网络进入稳定状态;1.4)微服务系统进入故障监测阶段,按照微服务在微服务注册中心的注册顺序,每个微服务根据其他微服务发送的信息来决定是否需要调节自身的状态;1.5)判断整个微服务网络中是否存在某个微服务对自身状态的调节时间超过预先设定的时间,如果出现超时情况,则需要启动微服务故障诊断模块,否则返回步骤1.4)。
进一步,所述步骤1.3)中,整个微服务系统所处于的网络处于稳定状态时,就可用于微服务故障监测模块来监测微服务系统中各个微服务的异常;如果网络一直处于振荡状态,那么就表明微服务系统中有某个微服务出现了故障,导致了网络发生异常,则启动微服务故障诊断模块,对微服务进行诊断,确定发生故障的微服务并且及时做出处理。
进一步,所述步骤2)中,微服务故障诊断模块的诊断方法包括以下步骤:2.1)随机确定一个微服务i;2.2)微服务i开始诊断部署在其周围服务器节点上的微服务,诊断次序随机,若当前诊断的微服务有故障则继续诊断其他的微服务,直到发现第一个无故障的微服务j;2.3)当发现第一个无故障的微服务j后,停止诊断并且向其他微服务广播Test[i]=j,接收到该广播消息的微服务a设置自身Testa[i]=j;Testa[i]=j表示微服务a已经接收到某个无故障的微服务的诊断信息,该诊断信息表明了诊断者是微服务i,被诊断者是微服务j,微服务i对微服务j进行诊断之后判定微服务j处于正常状态,没有发生故障;Testa初始值为-1;Test[i]=j表示诊断者微服务i对被诊断者微服务j进行诊断后判定微服务j处于正常状态,即诊断者微服务i诊断到的第一个无故障的微服务为j;2.4)其他微服务按步骤2.1)到2.3)执行;2.5)故障诊断过程结束之后,每个无故障的微服务都能够指向其诊断到的下一个无故障的微服务,然后使没有故障的微服务组成了一个环。
进一步,所述步骤2.3)中,微服务故障诊断过程对微服务状态的修改包括以下步骤:(1)随机确定一个微服务i;(2)微服务i首先改变自身的状态,Statei[i]=0,表示微服务i认为自身无故障;(3)根据Testi[i]=j寻找到的下一个已被微服务诊断且认为其无故障的微服务j,并修改其状态Statei[j]=0;Statei[j]=0表示微服务i认为微服务j无故障;(4)判断微服务j和微服务i是否是同一个微服务,若是,则结束;反之,则重复步骤(3),并判断从微服务i开始修改微服务的状态,是否形成了一个环,即被其他的微服务诊断且认为其无故障的微服务是i本身,或者对微服务状态的修改次数是否达到微服务的总数n,形成一个环或达到微服务的总数n时停止诊断,反之进入步骤(6);(5)其他的微服务同样进行步骤(1)到(4)的诊断过程;(6)每个微服务都执行以上步骤之后,实现每个微服务对某个微服务诊断并修改其State=0的次数。
进一步,所述步骤(6)中,如果修改次数大于n(1-p)2+np2q2,则判断该微服务没有发生故障,设置其Result=0,否则设置其Result=1;其中,p表示每个微服务发生故障的概率,q表示在诊断者有故障的情况下被诊断者被诊断为无故障的概率,其独立于诊断者,Result=0表示最终对微服务的故障诊断结果为无故障。
一种基于DHNN的自组织实时微服务故障诊断系统,其包括微服务故障监测模块和微服务故障诊断模块;所述微服务故障监测模块负责对整个微服务系统中的各个微服务的运行状态进行监测,判断是否启动微服务故障诊断模块对微服务故障进行诊断;当某个微服务发生故障时,该微服务故障监测模块能将该故障信号放大,从而网络中的其他微服务均可接收到该信号并且激活自身的微服务故障诊断模块;所述微服务故障诊断模块用于在故障监测模块发现网络出现异常时对微服务系统所处的网络进行故障诊断,确定故障到底来自于哪个微服务。
进一步,所述微服务故障监测模块包括自身状态设置模块、权值设置模块、初步调节模块、监测模块和超时判断模块;所述自身状态设置模块将每个微服务随机产生0或1来表示自身的状态;所述权值设置模块在任意2个微服务i和微服务j之间设置权值Wij,并令Wji=Wij,Wii=0;通过权值Wij确定该微服务系统所在网络的初始权系数矩阵W;所述初步调节模块通过权系数矩阵W对各个微服务按照DHNN网络异步调节方式对自身状态进行初步调节,使微服务网络进入稳定状态;所述监测模块在微服务系统进入故障监测阶段,按照微服务在微服务注册中心的注册顺序,用于判断每个微服务根据其他微服务发送的信息是否需要调节自身的状态;所述超时判断模块用于判断整个微服务网络中是否存在某个微服务对自身状态的调节时间超过预先设定的时间,如果出现超时情况,则需要启动微服务故障诊断模块,否则返回所述监测模块。
进一步,所述微服务故障诊断模块包括微服务确定模块、无故障微服务确定模块、微服务修改模块和执行模块;所述微服务确定模块用于随机确定一个微服务i;所述无故障微服务确定模块用于在微服务i开始诊断部署在其周围服务器节点上的微服务,诊断次序随机,若当前诊断的微服务有故障则继续诊断其他的微服务,直到发现第一个无故障的微服务j;所述微服务修改模块用于当发现第一个无故障的微服务j后,停止诊断并且向其他微服务广播Test[i]=j,接收到该广播消息的微服务a设置自身Testa[i]=j;所述执行模块用于将其他微服务依次按所述微服务确定模块、所述无故障微服务确定模块和所述微服务修改模块执行;故障诊断过程结束之后,每个无故障的微服务都能够指向其诊断到的下一个无故障的微服务,使没有故障的微服务组成了一个环;其中,Testa[i]=j表示微服务a已经接收到某个无故障的微服务的诊断信息,该诊断信息表明了诊断者是微服务i,被诊断者是微服务j,微服务i对微服务j进行诊断之后判定微服务j处于正常状态,没有发生故障;Testa初始值为-1;Test[i]=j表示诊断者微服务i对被诊断者微服务j进行诊断后判定微服务j处于正常状态,即诊断者微服务i诊断到的第一个无故障的微服务为j。
进一步,所述微服务修改模块包括微服务自身状态改变模块、修改模块、同一微服务判断模块、其他微服务执行模块和诊断修改模块;所述微服务自身状态改变模块在随机确定一个微服务i后,用于将微服务i改变自身的状态,Statei[i]=0,表示微服务i认为自身无故障;所述修改模块根据Testi[i]=j寻找到的下一个已被微服务诊断且认为其无故障的微服务j,并修改其状态Statei[j]=0;Statei[j]=0表示微服务i认为微服务j无故障;所述同一微服务判断模块用于判断微服务j和微服务i是否是同一个微服务,若是,则结束;反之,则重复执行所述修改模块,并判断从微服务i开始修改微服务的状态,是否形成了一个环,即被其他的微服务诊断且认为其无故障的微服务是i本身,或者对微服务状态的修改次数是否达到微服务的总数n,形成一个环或达到微服务的总数n时停止诊断,反之执行所述诊断修改模块;所述其他微服务执行模块用于将其他的微服务同样依次按所述微服务自身状态改变模块、所述修改模块和所述同一微服务判断模块进行诊断;所述诊断修改模块在每个微服务都执行以上模块之后,实现每个微服务对某个微服务诊断并修改其State=0的次数。
本发明由于采取以上技术方案,其具有以下优点:1、本发明按照微服务架构和Hopfield神经网络的特点以及对微服务故障诊断的要求,以离散型Hopfield神经网络DHNN的异步方式为基础,对微服务故障诊断方法进行设计。2、本发明考虑到一个微服务系统中各个微服务既可以部署在同一台服务器上,又可以分散在许多台不同的服务器上,各个微服务可以向其他微服务发送数据包,也可以接收到其他微服务发送的数据包,一个微服务系统处于一个全互联网络中。因此从消息收发的角度,一个微服务系统中的每一个微服务都可以和Hopfield神经网络中的神经元相对应。3、本发明采用若在任意微服务i和微服务j之间设计一个权值Wij,并且令Wji=Wij且Wii=0,微服务系统中每个微服务随机产生0或者1来表示微服务自身的状态。随后整个微服务系统所在的网络进入训练状态,即各个微服务按照DHNN网络异步调节方式对自身的状态进行调节。其权系数矩阵W是一个对称矩阵,并且对角线上的系数均为0,因此按照引理1,在各个微服务都没有故障的情况下,经过一段时间的调节,整个微服务系统所处于的网络必将处于稳定状态。之后就可以用于微服务故障监测模块来监测微服务系统中各个微服务的异常。4、如果网络一直处于振荡状态,那么就表明微服务系统中有某个微服务出现了故障,导致了网络发生异常,那么就启动微服务故障诊断模块,对微服务进行诊断,确定发生故障的微服务并且及时做出处理。
附图说明
图1是本发明的微服务故障监测流程图;
图2是本发明的微服务故障诊断流程图;
图3是本发明的诊断过程修改微服务状态的流程图。
具体实施方式
通常情况下,微服务的故障诊断都是基于微服务系统中的服务注册中心来对其他微服务进行诊断,这样大大增加了部署服务注册中心的中心服务器节点的负担,当该节点出现故障,就将会导致部署该微服务系统的整个网络无法进行故障诊断。如果使用部署微服务系统的网络上的所有节点共同来诊断微服务故障的话,则会增加网络通讯的开销,不能达到实时诊断的目的。并且以往的微服务故障诊断方法,往往不具有自组织性,自身不能确定恰当的时间来进行故障诊断,只能等到微服务系统运行受到严重影响时才诊断并排除故障。或者由管理员设置定时诊断的时间,或者直接让微服务系统持续处于诊断状态,这样则会大大增加系统运行时的负担,也使得微服务故障发现具有一定的滞后性,并且会消耗大量的计算资源和网络带宽,影响整个微服务系统的性能,甚至导致系统无法提供正常的服务。因此,如何使微服务系统可以自组织地实现实时监测和故障诊断,同时又不消耗大量的系统资源是本发明所要解决的主要问题。下面结合附图和实施例对本发明进行详细的描述。
如图1所示,本发明提供一种基于DHNN的自组织实时微服务故障诊断方法,该方法包括微服务故障监测模块和微服务故障诊断模块,具体包括以下步骤:
1)微服务故障监测模块:负责对整个微服务系统中的各个微服务的运行状态进行监测,从而决定是否启动微服务故障诊断模块对微服务故障进行诊断。当某个微服务发生故障时,该微服务故障监测模块能将该故障信号充分放大,从而网络中的其他微服务均可以接收到该信号并且激活自身的微服务故障诊断模块。
如图1所示,本发明的微服务故障监测模块的监测方法包括以下步骤:
1.1)每个微服务随机产生0或1来表示自身的状态,其中0表示正常状态(无故障),1表示故障状态;
1.2)在任意2个微服务i和微服务j之间设置权值Wij,并令Wji=Wij,Wii=0,通过权值Wij确定该微服务系统所在网络的初始权系数矩阵W;
1.3)通过权系数矩阵W对各个微服务按照DHNN网络异步调节方式对自身状态进行初步调节,使微服务网络进入稳定状态,从而为微服务故障监测做好准备;
整个微服务系统所处于的网络处于稳定状态时,就可以用于微服务故障监测模块来监测微服务系统中各个微服务的异常;
如果网络一直处于振荡状态,那么就表明微服务系统中有某个微服务出现了故障,导致了网络发生异常,则启动微服务故障诊断模块,对微服务进行诊断,确定发生故障的微服务并且及时做出处理。
1.4)微服务系统进入故障监测阶段,按照微服务在微服务注册中心的注册顺序,每个微服务根据其他微服务发送的信息来决定是否需要调节自身的状态;
1.5)判断整个微服务网络中是否存在某个微服务对自身状态的调节时间超过预先设定的时间,如果出现超时情况,则需要启动微服务故障诊断模块,否则返回步骤1.4)。
2)微服务故障诊断模块:当故障监测模块发现网络出现异常时对微服务系统所处的网络进行故障诊断,确定故障到底来自于哪个微服务;诊断结果如表1所示。
表1微服务故障诊断结果
并且该微服务故障诊断模块引入了以下符号:
Testa[i]=j:表示微服务a已经接收到某个无故障的微服务的诊断信息,该诊断信息表明了诊断者是微服务i,被诊断者是微服务j,微服务i对微服务j进行诊断之后判定微服务j处于正常状态,没有发生故障。Testa初始值为-1。
Test[i]=j:表示诊断者微服务i对被诊断者微服务j进行诊断后判定微服务j处于正常状态,即诊断者微服务i诊断到的第一个无故障的微服务为j。
Statea[i]:Statea[i]=0表示微服务a认为微服务i无故障;Statea[i]=1表示微服务a认为微服务i有故障。
Result[i]:Result[i]=0表示最终对微服务i的故障诊断结果为无故障;Result[i]=1表示最终对微服务i的故障诊断结果为有故障。
如图2所示,本发明的微服务故障诊断模块的诊断方法包括以下步骤:
2.1)随机确定一个微服务i;
2.2)微服务i开始诊断部署在其周围服务器节点上的微服务,诊断次序随机,若当前诊断的微服务有故障则继续诊断其他的微服务,直到发现第一个无故障的微服务j;
2.3)当发现第一个无故障的微服务j后,停止诊断并且向其他微服务广播Test[i]=j,接收到该广播消息的微服务a设置自身Testa[i]=j;
2.4)其他微服务按步骤2.1)到2.3)执行;
2.5)故障诊断过程结束之后,各个微服务都接收到了所有的微服务诊断到的第一个没有故障的微服务,即每个无故障的微服务都能够指向其诊断到的下一个无故障的微服务,然后使没有故障的微服务组成了一个环;而有故障的微服务一般都是独立的,其不会有诊断到的无故障的微服务的信息,其他无故障的微服务也不会有它的信息,因此有故障的微服务一般都只和自身组成一个环,基本不会和其他微服务组成一个环。
上述步骤2.3)中,如图3所示,本发明的微服务故障诊断过程对微服务状态的修改包括以下步骤:
(1)随机确定一个微服务i;
(2)微服务i首先改变自身的状态,Statei[i]=0,即微服务i认为自身无故障;
(3)根据Testi[i]=j寻找到的下一个已被微服务诊断且认为其无故障的微服务j,并修改其状态Statei[j]=0;
(4)判断微服务j和微服务i是否是同一个微服务,若是,则结束;反之,则重复步骤(3),并判断从微服务i开始修改微服务的状态,是否形成了一个环,即被其他的微服务诊断且认为其无故障的微服务是i本身,或者对微服务状态的修改次数是否达到微服务的总数n,形成一个环或达到微服务的总数n时停止诊断,反之进入步骤(6);
(5)其他的微服务同样进行步骤(1)到(4)的诊断过程;
(6)每个微服务都执行以上步骤之后,计算每个微服务对某个微服务诊断并修改其State=0的次数。如果修改次数大于n(1-p)2+np2q2,则判断该微服务没有发生故障,设置其Result=0,否则设置其Result=1。其中p表示每个微服务发生故障的概率,q表示在诊断者有故障的情况下被诊断者被诊断为无故障的概率,其独立于诊断者。
综上,本发明的微服务系统在故障监测阶段每个周期各个微服务只需要阶段性地广播一个数据包,因此整个微服务故障监测阶段每个周期总共需要发送n个数据包(n为微服务的总数)。在故障诊断阶段,每个周期则需要发送3n+2np+np/q的数据包,系统总的发送数据的时间开销的时间复杂度为O(n),因此本发明的故障诊断方法有效。
本发明还提供一种基于DHNN的自组织实时微服务故障诊断系统,其包括微服务故障监测模块和微服务故障诊断模块;
微服务故障监测模块负责对整个微服务系统中的各个微服务的运行状态进行监测,判断是否启动微服务故障诊断模块对微服务故障进行诊断;当某个微服务发生故障时,该微服务故障监测模块能将该故障信号放大,从而网络中的其他微服务均可接收到该信号并且激活自身的微服务故障诊断模块;
微服务故障诊断模块用于在故障监测模块发现网络出现异常时对微服务系统所处的网络进行故障诊断,确定故障到底来自于哪个微服务。
上述实施例中,微服务故障监测模块包括自身状态设置模块、权值设置模块、初步调节模块、监测模块和超时判断模块;
自身状态设置模块将每个微服务随机产生0或1来表示自身的状态;
权值设置模块在任意2个微服务i和微服务j之间设置权值Wij,并令Wji=Wij,Wii=0;通过权值Wij确定该微服务系统所在网络的初始权系数矩阵W;
初步调节模块通过权系数矩阵W对各个微服务按照DHNN网络异步调节方式对自身状态进行初步调节,使微服务网络进入稳定状态;
监测模块在微服务系统进入故障监测阶段,按照微服务在微服务注册中心的注册顺序,用于判断每个微服务根据其他微服务发送的信息是否需要调节自身的状态;
超时判断模块用于判断整个微服务网络中是否存在某个微服务对自身状态的调节时间超过预先设定的时间,如果出现超时情况,则需要启动微服务故障诊断模块,否则返回监测模块。
上述实施例中,微服务故障诊断模块包括微服务确定模块、无故障微服务确定模块、微服务修改模块和执行模块;
微服务确定模块用于随机确定一个微服务i;
无故障微服务确定模块用于在微服务i开始诊断部署在其周围服务器节点上的微服务,诊断次序随机,若当前诊断的微服务有故障则继续诊断其他的微服务,直到发现第一个无故障的微服务j;
微服务修改模块用于当发现第一个无故障的微服务j后,停止诊断并且向其他微服务广播Test[i]=j,接收到该广播消息的微服务a设置自身Testa[i]=j;
执行模块用于将其他微服务依次按微服务确定模块、无故障微服务确定模块和微服务修改模块执行;故障诊断过程结束之后,每个无故障的微服务都能够指向其诊断到的下一个无故障的微服务,使没有故障的微服务组成了一个环;
其中,Testa[i]=j表示微服务a已经接收到某个无故障的微服务的诊断信息,该诊断信息表明了诊断者是微服务i,被诊断者是微服务j,微服务i对微服务j进行诊断之后判定微服务j处于正常状态,没有发生故障;Testa初始值为-1;
Test[i]=j表示诊断者微服务i对被诊断者微服务j进行诊断后判定微服务j处于正常状态,即诊断者微服务i诊断到的第一个无故障的微服务为j。
上述实施例中,微服务修改模块包括微服务自身状态改变模块、修改模块、同一微服务判断模块、其他微服务执行模块和诊断修改模块;
微服务自身状态改变模块在随机确定一个微服务i后,用于将微服务i改变自身的状态,Statei[i]=0,表示微服务i认为自身无故障;
修改模块根据Testi[i]=j寻找到的下一个已被微服务诊断且认为其无故障的微服务j,并修改其状态Statei[j]=0;Statei[j]=0表示微服务i认为微服务j无故障;
同一微服务判断模块用于判断微服务j和微服务i是否是同一个微服务,若是,则结束;反之,则重复执行修改模块,并判断从微服务i开始修改微服务的状态,是否形成了一个环,即被其他的微服务诊断且认为其无故障的微服务是i本身,或者对微服务状态的修改次数是否达到微服务的总数n,形成一个环或达到微服务的总数n时停止诊断,反之执行所述诊断修改模块;
其他微服务执行模块用于将其他的微服务同样依次按微服务自身状态改变模块、修改模块和同一微服务判断模块进行诊断;
诊断修改模块在每个微服务都执行以上模块之后,实现每个微服务对某个微服务诊断并修改其State=0的次数。
上述各实施例仅用于说明本发明,各个步骤都是可以有所变化的,在本发明技术方案的基础上,凡根据本发明原理对个别步骤进行的改进和等同变换,均不应排除在本发明的保护范围之外。
Claims (8)
1.一种基于DHNN的自组织实时微服务故障诊断方法,其特征在于包括微服务故障监测模块和微服务故障诊断模块,该方法步骤如下:
1)微服务故障监测模块:负责对整个微服务系统中的各个微服务的运行状态进行监测,判断是否启动微服务故障诊断模块对微服务故障进行诊断;当某个微服务发生故障时,该微服务故障监测模块能将该故障信号放大,从而网络中的其他微服务均可接收到该信号并且激活自身的微服务故障诊断模块;
2)微服务故障诊断模块:当故障监测模块发现网络出现异常时对微服务系统所处的网络进行故障诊断,确定故障到底来自于哪个微服务;
所述步骤1)中,微服务故障监测模块的监测方法包括以下步骤:
1.1)每个微服务随机产生0或1来表示自身的状态,0表示正常状态,1表示故障状态;
1.2)在任意2个微服务i和微服务j之间设置权值Wij,并令Wji=Wij,Wii=0,通过权值Wij确定该微服务系统所在网络的初始权系数矩阵W;
1.3)通过权系数矩阵W对各个微服务按照DHNN网络异步调节方式对自身状态进行初步调节,使微服务网络进入稳定状态;
1.4)微服务系统进入故障监测阶段,按照微服务在微服务注册中心的注册顺序,每个微服务根据其他微服务发送的信息来决定是否需要调节自身的状态;
1.5)判断整个微服务网络中是否存在某个微服务对自身状态的调节时间超过预先设定的时间,如果出现超时情况,则需要启动微服务故障诊断模块,否则返回步骤1.4)。
2.如权利要求1所述方法,其特征在于:所述步骤1.3)中,整个微服务系统所处于的网络处于稳定状态时,就可用于微服务故障监测模块来监测微服务系统中各个微服务的异常;
如果网络一直处于振荡状态,那么就表明微服务系统中有某个微服务出现了故障,导致了网络发生异常,则启动微服务故障诊断模块,对微服务进行诊断,确定发生故障的微服务并且及时做出处理。
3.如权利要求1或2所述方法,其特征在于:所述步骤2)中,微服务故障诊断模块的诊断方法包括以下步骤:
2.1)随机确定一个微服务i;
2.2)微服务i开始诊断部署在其周围服务器节点上的微服务,诊断次序随机,若当前诊断的微服务有故障则继续诊断其他的微服务,直到发现第一个无故障的微服务j;
2.3)当发现第一个无故障的微服务j后,停止诊断并且向其他微服务广播Test[i]=j,接收到该广播消息的微服务a设置自身Testa[i]=j;
Testa[i]=j表示微服务a已经接收到某个无故障的微服务的诊断信息,该诊断信息表明了诊断者是微服务i,被诊断者是微服务j,微服务i对微服务j进行诊断之后判定微服务j处于正常状态,没有发生故障;Testa初始值为-1;
Test[i]=j表示诊断者微服务i对被诊断者微服务j进行诊断后判定微服务j处于正常状态,即诊断者微服务i诊断到的第一个无故障的微服务为j;
2.4)其他微服务按步骤2.1)到2.3)执行;
2.5)故障诊断过程结束之后,每个无故障的微服务都能够指向其诊断到的下一个无故障的微服务,然后使没有故障的微服务组成了一个环。
4.如权利要求3所述方法,其特征在于:所述步骤2.3)中,微服务故障诊断过程对微服务状态的修改包括以下步骤:
(1)随机确定一个微服务i;
(2)微服务i首先改变自身的状态,Statei[i]=0,表示微服务i认为自身无故障;
(3)根据Testi[i]=j寻找到的下一个已被微服务诊断且认为其无故障的微服务j,并修改其状态Statei[j]=0;Statei[j]=0表示微服务i认为微服务j无故障;
(4)判断微服务j和微服务i是否是同一个微服务,若是,则结束;反之,则重复步骤(3),并判断从微服务i开始修改微服务的状态,是否形成了一个环,即被其他的微服务诊断且认为其无故障的微服务是i本身,或者对微服务状态的修改次数是否达到微服务的总数n,形成一个环或达到微服务的总数n时停止诊断,反之进入步骤(6);
(5)其他的微服务同样进行步骤(1)到(4)的诊断过程;
(6)每个微服务都执行以上步骤之后,实现每个微服务对某个微服务诊断并修改其State=0的次数。
5.如权利要求4所述方法,其特征在于:所述步骤(6)中,如果修改次数大于n(1-p)2+np2q2,则判断该微服务没有发生故障,设置其Result=0,否则设置其Result=1;其中,p表示每个微服务发生故障的概率,q表示在诊断者有故障的情况下被诊断者被诊断为无故障的概率,其独立于诊断者,Result=0表示最终对微服务的故障诊断结果为无故障。
6.一种基于DHNN的自组织实时微服务故障诊断系统,其特征在于:包括微服务故障监测模块和微服务故障诊断模块;
所述微服务故障监测模块负责对整个微服务系统中的各个微服务的运行状态进行监测,判断是否启动微服务故障诊断模块对微服务故障进行诊断;当某个微服务发生故障时,该微服务故障监测模块能将该故障信号放大,从而网络中的其他微服务均可接收到该信号并且激活自身的微服务故障诊断模块;
所述微服务故障诊断模块用于在故障监测模块发现网络出现异常时对微服务系统所处的网络进行故障诊断,确定故障到底来自于哪个微服务;
所述微服务故障监测模块包括自身状态设置模块、权值设置模块、初步调节模块、监测模块和超时判断模块;
所述自身状态设置模块将每个微服务随机产生0或1来表示自身的状态;
所述权值设置模块在任意2个微服务i和微服务j之间设置权值Wij,并令Wji=Wij,Wii=0;通过权值Wij确定该微服务系统所在网络的初始权系数矩阵W;
所述初步调节模块通过权系数矩阵W对各个微服务按照DHNN网络异步调节方式对自身状态进行初步调节,使微服务网络进入稳定状态;
所述监测模块在微服务系统进入故障监测阶段,按照微服务在微服务注册中心的注册顺序,用于判断每个微服务根据其他微服务发送的信息是否需要调节自身的状态;
所述超时判断模块用于判断整个微服务网络中是否存在某个微服务对自身状态的调节时间超过预先设定的时间,如果出现超时情况,则需要启动微服务故障诊断模块,否则返回所述监测模块。
7.如权利要求6所述系统,其特征在于:所述微服务故障诊断模块包括微服务确定模块、无故障微服务确定模块、微服务修改模块和执行模块;
所述微服务确定模块用于随机确定一个微服务i;
所述无故障微服务确定模块用于在微服务i开始诊断部署在其周围服务器节点上的微服务,诊断次序随机,若当前诊断的微服务有故障则继续诊断其他的微服务,直到发现第一个无故障的微服务j;
所述微服务修改模块用于当发现第一个无故障的微服务j后,停止诊断并且向其他微服务广播Test[i]=j,接收到该广播消息的微服务a设置自身Testa[i]=j;
所述执行模块用于将其他微服务依次按所述微服务确定模块、所述无故障微服务确定模块和所述微服务修改模块执行;故障诊断过程结束之后,每个无故障的微服务都能够指向其诊断到的下一个无故障的微服务,使没有故障的微服务组成了一个环;
其中,Testa[i]=j表示微服务a已经接收到某个无故障的微服务的诊断信息,该诊断信息表明了诊断者是微服务i,被诊断者是微服务j,微服务i对微服务j进行诊断之后判定微服务j处于正常状态,没有发生故障;Testa初始值为-1;
Test[i]=j表示诊断者微服务i对被诊断者微服务j进行诊断后判定微服务j处于正常状态,即诊断者微服务i诊断到的第一个无故障的微服务为j。
8.如权利要求7所述系统,其特征在于:所述微服务修改模块包括微服务自身状态改变模块、修改模块、同一微服务判断模块、其他微服务执行模块和诊断修改模块;
所述微服务自身状态改变模块在随机确定一个微服务i后,用于将微服务i改变自身的状态,Statei[i]=0,表示微服务i认为自身无故障;
所述修改模块根据Testi[i]=j寻找到的下一个已被微服务诊断且认为其无故障的微服务j,并修改其状态Statei[j]=0;Statei[j]=0表示微服务i认为微服务j无故障;
所述同一微服务判断模块用于判断微服务j和微服务i是否是同一个微服务,若是,则结束;反之,则重复执行所述修改模块,并判断从微服务i开始修改微服务的状态,是否形成了一个环,即被其他的微服务诊断且认为其无故障的微服务是i本身,或者对微服务状态的修改次数是否达到微服务的总数n,形成一个环或达到微服务的总数n时停止诊断,反之执行所述诊断修改模块;
所述其他微服务执行模块用于将其他的微服务同样依次按所述微服务自身状态改变模块、所述修改模块和所述同一微服务判断模块进行诊断;
所述诊断修改模块在每个微服务都执行以上模块之后,实现每个微服务对某个微服务诊断并修改其State=0的次数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811358874.9A CN109347682B (zh) | 2018-11-15 | 2018-11-15 | 基于dhnn的自组织实时微服务故障诊断方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811358874.9A CN109347682B (zh) | 2018-11-15 | 2018-11-15 | 基于dhnn的自组织实时微服务故障诊断方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109347682A CN109347682A (zh) | 2019-02-15 |
CN109347682B true CN109347682B (zh) | 2021-07-13 |
Family
ID=65315526
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811358874.9A Active CN109347682B (zh) | 2018-11-15 | 2018-11-15 | 基于dhnn的自组织实时微服务故障诊断方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109347682B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110427275B (zh) * | 2019-07-11 | 2022-11-18 | 复旦大学 | 基于轨迹日志学习的微服务潜在错误与故障根源预测方法 |
CN111176873B (zh) * | 2019-12-20 | 2024-05-28 | 中国平安财产保险股份有限公司 | 一种微服务自动下线方法、装置、计算机设备及存储介质 |
CN115083512B (zh) * | 2021-03-11 | 2024-09-27 | 西安交通大学 | 一种基于吸引子模型的终端微服务发现方法 |
CN114764572A (zh) * | 2022-04-01 | 2022-07-19 | 江苏航运职业技术学院 | 设备运行工况变化具有强鲁棒性的稳定智能故障诊断方法 |
CN117112302B (zh) * | 2023-08-30 | 2024-03-12 | 广州经传多赢投资咨询有限公司 | 一种金融数据的异常容灾方法、系统、设备及介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102388569A (zh) * | 2011-09-15 | 2012-03-21 | 华为技术有限公司 | 主备管理软件的切换方法及系统 |
CN108173911A (zh) * | 2017-12-18 | 2018-06-15 | 中国科学院声学研究所 | 一种微服务故障检测处理方法及装置 |
-
2018
- 2018-11-15 CN CN201811358874.9A patent/CN109347682B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102388569A (zh) * | 2011-09-15 | 2012-03-21 | 华为技术有限公司 | 主备管理软件的切换方法及系统 |
CN108173911A (zh) * | 2017-12-18 | 2018-06-15 | 中国科学院声学研究所 | 一种微服务故障检测处理方法及装置 |
Non-Patent Citations (2)
Title |
---|
LogDC: Problem Diagnosis for Declartively-Deployed Cloud Applications with Log;Jingmin Xu 等;《2017 IEEE 14th International Conference on e-Business Engineering (ICEBE)》;20171106;全文 * |
一种基于执行轨迹监测的微服务故障诊断方法;王子勇 等;《软件学报》;20170220;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN109347682A (zh) | 2019-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109347682B (zh) | 基于dhnn的自组织实时微服务故障诊断方法及系统 | |
WO2018137254A1 (zh) | 一种基于调用链的并发控制的方法、装置及控制节点 | |
US6757836B1 (en) | Method and apparatus for resolving partial connectivity in a clustered computing system | |
US20050132154A1 (en) | Reliable leader election in storage area network | |
US20050108389A1 (en) | Network endpoint health check | |
JP2005209201A (ja) | 高可用性クラスタにおけるノード管理 | |
EP2998877A2 (fr) | Serveur comprenant une pluralité de modules | |
US11438250B2 (en) | Distributed monitoring in clusters with self-healing | |
Kim | ROAFTS: A middleware architecture for real-time object-oriented adaptive fault tolerance support | |
CN108282243A (zh) | 一种适用于主从式时间同步方法的时钟源可靠性保障机制 | |
CN110971662A (zh) | 一种基于Ceph的两节点高可用实现方法及装置 | |
CN112838944B (zh) | 诊断及管理、规则确定及部署方法、分布式设备、介质 | |
CN113422664B (zh) | 一种多时钟源高可靠时间同步方法 | |
Dadgar et al. | Lifeguard: Local health awareness for more accurate failure detection | |
US9323629B2 (en) | Method for managing path failures of OSEK networks | |
WO2013103520A1 (en) | Reliable compute engine, method and apparatus | |
CN111064613B (zh) | 一种网络故障检测方法及装置 | |
EP2698949B1 (en) | METHOD AND SYSTEM FOR SETTING DETECTION FRAME TIMEOUT DURATION OF ETHERNET NODEs | |
CN109117294B (zh) | 适用于证券交易系统的故障检测方法及装置 | |
CN114036129A (zh) | 一种减小数据丢失的数据库切换方法 | |
Wang et al. | Optimal consensus achievement for the internet of things based on fog computing within dual faulty transmission media | |
JPH07114520A (ja) | 冗長資源の管理方法及びそれを用いた分散型フォールトトレラントコンピュータシステム | |
Hall et al. | FlexRay BRAIN fusion a FlexRay-based braided ring availability integrity network | |
Chandrapal et al. | A scalable multi-level distributed system-level diagnosis | |
CN112328375B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |