20 服务端出现故障时该如何应对?
在专栏前面我讲过,单体应用改造成微服务的一个好处是可以减少故障影响范围,故障被局限在一个微服务系统本身,而不是整个单体应用都崩溃。那么具体到一个微服务系统,如果出现了故障,应该如何处理呢?
首先,我先来带你回顾一下微服务系统可能出现故障的种类,主要有三种故障。
- 集群故障。根据我的经验,微服务系统一般都是集群部署的,根据业务量大小而定,集群规模从几台到甚至上万台都有可能。一旦某些代码出现bug,可能整个集群都会发生故障,不能提供对外提供服务。
- 单IDC故障。现在大多数互联网公司为了保证业务的高可用性,往往业务部署在不止一个IDC。然而现实中时常会发生某个IDC的光缆因为道路施工被挖断,导致整个IDC脱网。
- 单机故障。顾名思义就是集群中的个别机器出现故障,这种情况往往对全局没有太大影响,但会导致调用到故障机器上的请求都失败,影响整个系统的成功率。
在我的实践过程中,这三种故障都经常遇到,因此相应的处理手段也可谓驾轻就熟,下面就把我应对故障的实战经验分享给你,希望对你有所帮助。
集群故障
一般而言,集群故障的产生原因不外乎有两种:一种是代码bug所导致,比如说