微服务异常的三种场景和处理方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微服务异常的三种场景和处理方法相关的知识,希望对你有一定的参考价值。

参考技术A 异常的三种场景:

1、服务僵死,微服务发生OOM之类的错误,导致微服务无法继续提供服务

2、服务性能差,微服务内部事务处理慢,导致大量CloseWait连接

3、服务异常,节点事务处理失败比率太高

三种场景的运维监控:

第一种,监控日志OOM错误、监控JVM内存使用情况(jstat)指令

第二种,监控网络连接CloseWait状态连接数,超出一定的比率,该节点评估为问题节点,监控事务处理日志,如果大量超出预期,判定为问题节点

第三种,统计事务处理日志,应用错误类型的事务失败的比率统计,超出容忍则判定为失败节点

三种场景的运维处理:

Step1、隔离微服务,一旦判定为失败节点立即隔离该微服务,SpringCloud直接修改该微服务在Eureka中的状态即可 curl -X PUT http://eurekaserver:port/microservice/xxxxx/status?value=OUT_OF_SERVICE

Step2、保存现场,对于OOM类型的错误尤其重要,使用命令包括:jmap、jstack、kill -3等

Step3、告警和处理(我们还是人工处理的)

样本数据异常值处理的三种方法

1.3sigma异常值识别

数据需要服从正态分布,正负3∂的概率是99.7%,那么距离平均值3∂之外的值出现的概率为P(|x-u| 3∂) = 0.003,属于极个别的小概率事件。如果数据不服从正态分布,也可以用远离平均值的多少倍标准差来描述。

 2.IQR异常值识别

四分位距(IQR)就是上四分位与下四分位的差值。而我们通过IQR的1.5倍为标准,规定:超过(上四分位+1.5倍IQR距离,或者下四分位-1.5倍IQR距离)的点为异常值。

箱体图是一种比较常见的异常值检测方法,一般取所有样本的25%分位点Q1和75%分位点Q3,两者之间的距离为箱体的长度IQR,可认为小于Q1-1.5IQR或者大于Q3+1.5IQR的样本值为异常样本。

 3.MAD异常值识别方法

MAD(median absolute deviation)绝对中位差。
在统计学中,MAD是对单变量数值型数据的样本偏差的一种鲁棒性测量,即是用来描述单变量样本在定量数据中可变的一种标准。

假定数据服从正态分布,让异常点(outliers)落在两侧的 50% 的面积里,让正常值落在中间的 50% 的区域里。

 4.处理异常值的方法

异常值的数据通常将其重新赋值,有以下方法,分别可以设置为:

空值、平均值、中位数、众数、0值、随机数等。

以上是关于微服务异常的三种场景和处理方法的主要内容,如果未能解决你的问题,请参考以下文章

python中try except处理程序异常的三种常用方法

python_python中try except处理程序异常的三种常用方法

SpringMVC处理异常的三种方式

样本数据异常值处理的三种方法

样本数据异常值处理的三种方法

样本数据异常值处理的三种方法