故事
今天中午知乎又一次宕机,访问返回502错误,如下图所示:
高可用标准
那服务既然挂了,我们来聊聊如何在微服务中如何保障他能够不挂呢?首先我们来看看业界的高可用标准,一般常见的概括如下:
5个9的SLA在一年内只能是5分钟的不可用时间,5分钟啊,如果按一年只出1次故障,你也得在五分钟内恢复故障,感觉还是有点厉害。
什么是高可用?
那我们在做高可用之前,先通过维基百科了解一下到底什么是真正的高可用呢?
系统无中断地执行其功能的能力,代表系统的可用性程度,是进行系统设计时的准则之一。
这个难点或是重点在于“无中断”,要做到 7 x 24 小时无中断无异常的服务提供。
为什么需要高可用?
一套对外提供服务的系统是需要硬件,软件相结合,但是我们的硬件总是会出故障,软件会有 Bug,硬件会慢慢老化,网络总是不稳定,软件会越来越复杂和庞大。
除了硬件软件在本质上无法做到“无中断”,外部环境也可能导致服务的中断,例如断电,地震,火灾,光纤被挖掘机挖断,这些影响的程度可能更大。
如何保障服务的高可用?
高可用是一个比较复杂的命题,基本上在所有的处理中都会涉及到高可用,所有在设计高可用方案也涉及到了方方面面。这中间将会出现的细节是多种多样的,所以我们需要对这样一个微服务高可用方案进行