服务高可用性(High Availability, HA)是指在正常工作条件下以及发生故障时,服务仍能持续稳定地提供预期功能的能力。为了实现服务的高可用性,通常需要采取一系列技术和策略,确保服务在面对硬件故障、网络问题、软件错误等各种异常情况时,依然能够对外提供服务或快速恢复正常。
务可用性指标
服务的可用性通常用多少个9的指标来衡量,如下图所示,通常9越多代表可用性越高。
相信大家在工作中或多或少的都接触过服务可用性,下面就来接单介绍下服务可用性的一般策略,帮助大家在平时工作中提高服务可用性。
服务可用性策略
负载均衡
平时工作中肯定都用过负载均衡组件,最简单的 Nginx 中就使用了负载均衡,将请求分发到不同的机器上,避免大量请求请求到某几台机器,最后出现压垮机器的情况。
冗余设计
这一点也很关键,通常一个部署上线后部署在生产环境都会有很多机器,这样可以极大的提高服务可用性,某几台机器宕机了也不会影响整个服务。
其实好多开源组件都有冗余设计,比如Kafka、TiDB、MongoDB等组件中都存在冗余设计的影子。
健康检查和故障转移
服务的健康性至关重要,健康的服务才能对外提供服务,可以通过健康检查对服务的健康性进行评估,比如 S