所有分类
  • 所有分类
  • 未分类

Nacos–续期与自我保护

简介

本文介绍Nacos的服务续期与自我保护。

续期

服务的健康检查分为两种模式:

1.客户端上报模式(临时实例 (ephemeral=true) 

客户端通过心跳上报的方式告知nacos 注册中心健康状态(默认心跳间隔5s,nacos将超过15s未收到心跳的实例设置为不健康,超过30s将实例删除)。

2. 服务端主动检测(持久化实例(ephemeral=true) 

nacos主动检查客户端的健康状态(默认时间间隔20s,健康检查失败后会设置为不健康,不会立即删除)。

为什么nacos有两种心跳机制?

对于临时实例(如:应用实例),健康检查失败,则直接删除。作用:1. 服务实时删除,尽可能保证请求到正常的服务上 2. 可以动态扩容或者收缩应用数量。

对于持久化实例(如:数据库),健康检查失败,会设置为不健康状态。它的优点就是可以实时的监控到实例的健康状态,便于后续的告警和扩容等一系列处理。

自我保护

nacos也有自我保护机制,即:保护阈值。保护阈值是:当前健康实例数/当前服务总实例数,值为0-1之间的浮点类型。

正常情况下nacos 只有健康的实例,但在高并发场景,如果只返回健康实例的话,流量洪峰到来可能直接打垮剩下的健康实例,产生雪崩效应。

保护阈值存在的意义在于当服务A健康实例数/总实例数 < 保护阈值时,Nacos会把该服务所有的实例信息(健康的+不健康的)全部提供给消费者,消费者可能访问到不健康的实例,请求失败,但这样远比造成雪崩要好。牺牲了请求,保证了整个系统的可用。

保护阈值详见:Nacos-保护阈值-作用/详解 – 自学精灵

0

评论0

请先

显示验证码
没有账号?注册  忘记密码?

社交账号快速登录