概述
对于注册配置中心而言,高可用是非常关键的。注册配置中心是微服务体系中的核心依赖,当注册配置中心不可用时,整个微服务体系都将无法对外提供服务。
本文将介绍注册配置中心Nacos引擎的高可用最佳实践。遵照下述设置,将发挥注册配置中心最大的高可用能力。
版本推荐
spring-cloud:推荐使用2.2.6.RELEASE及以上版本。
dubbo:推荐使用2.7.12及以上版本。
spring-boot:推荐使用2.3.x及以下版本,2.4.x版本存在兼容问题,不推荐使用。
集群高可用
实例在开通时将提供以下选项,遵照这些选项进行设置,将提升集群的高可用能力。
- 多节点:提供多节点集群的选项。对于Nacos引擎而言,节点数为奇数(3,5,7,9)。集群节点数越多,可用性越高。
- 跨可用区:对于多节点的Nacos集群,可提供跨可用区部署。使用跨可用区部署时,节点的故障发生事件将相互独立,集群可用性将进一步提高。
注意您需要在开通实例时指定可用区模式为“多可用区部署”,才能触发跨可用区高可用能力。
此外,注册配置中心实例将提供额外的手段以提高集群的可用性,这些手段是实例自动附带的,默认为开启状态。这些手段包括:
- 服务进程保活。-Nacos引擎提供了进程保活机制对机器中的Nacos进程进行探测和自动拉起。
- 典型异常故障自愈。
- 服务可用性实时探活,极端情况下,不可用时自动告警,人工将介入恢复,保障可用性。
注册中心高可用
Nacos引擎提供了以下服务端机制来提高注册中心的高可用能力,这些能力默认为开启状态,您无需开启即可获得高可用能力提升:
- 服务端推空保护。当Nacos服务端在一定时间窗口检测到的不健康服务增量大于阈值时,服务端将进入推空保护模式,向客户端推送服务的旧数据,而不是空服务,以保障服务消费者不会获取到空服务信息,从而提高可用性。
- 客户端心跳上报,服务端定期驱逐不健康服务,以保证服务消费者获取到的服务数据的实时性。
配置中心高可用
开源Nacos提供了以下客户端机制来提高配置中心的高可用能力,这些能力默认为开启状态,您无需开启即可获得高可用能力提升:
配置本地缓存。当配置中心服务不可用时,客户端将从本地缓存中获取上一次成功获取到的配置数据。