上一题下一题

Nacos 临时实例与持久化实例在心跳续约、健康检查和注册信息保留上的语义分别是什么?

进阶版
来源:alibaba高级工程师注册信息保留健康检查机制心跳续约机制Nacos实例类型
草稿该题目为草稿状态,前台公开题库中不可见。
答案解析

可以从存活检测和数据生命周期两方面区分:

临时实例(ephemeral=true) :由客户端定期向 Nacos 发送心跳,服务端根据心跳判断实例是否存活。心跳超时后通常先标记为不健康,超过清理阈值后会从注册列表中删除;常见默认值是约 5 秒一次心跳、约 15 秒标记不健康、约 30 秒删除,具体以版本和配置为准。临时实例通常采用 AP/Distro 机制,注册信息是临时的,客户端失联或服务端重启后不保证保留,客户端需要重新注册。 持久化实例(ephemeral=false) :不依赖客户端心跳续约,通常由 Nacos 服务端按配置进行健康检查,例如 HTTP 或 TCP 检查,也可以配置为不做主动检查。检查失败会影响健康状态,但一般不会因此自动删除注册信息;实例会保留到被显式注销或删除。持久化实例采用持久化的一致性管理,通常可在服务端重启或集群故障恢复后保留。

简单说,临时实例的存活主要由客户端心跳证明,失联后会被清理;持久化实例的健康主要由服务端检查,变为不健康不等于注册信息被删除。持久化也不代表永远不会删除,主动注销或管理操作仍会移除实例。

登录后查看完整内容