惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - Franky
Microsoft Azure Blog
Microsoft Azure Blog
阮一峰的网络日志
阮一峰的网络日志
宝玉的分享
宝玉的分享
量子位
N
Netflix TechBlog - Medium
M
MIT News - Artificial intelligence
GbyAI
GbyAI
Apple Machine Learning Research
Apple Machine Learning Research
博客园_首页
博客园 - 叶小钗
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
酷 壳 – CoolShell
酷 壳 – CoolShell
T
Tailwind CSS Blog
Y
Y Combinator Blog
L
LangChain Blog
The Cloudflare Blog
T
The Blog of Author Tim Ferriss
U
Unit 42
Martin Fowler
Martin Fowler
aimingoo的专栏
aimingoo的专栏
G
Google Developers Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
月光博客
月光博客

博客园 - koushr

hls k8s常用命令 k8s 1.18.0安装 mysql json函数 group by的列、where的列的有效性 go基础第六篇:sync包 doris脚本 es es语法 veo ride 枫叶互动 极光矩阵 富途 移卡科技 nginx高可用 k8s第一篇:k8s集群架构组件 架构设计第二篇:支付模块架构设计 可观测性体系设计第一篇:可观测性体系基本概念 架构设计第一篇:点赞模块功能设计 ES高级第一篇:倒排索引 山海星辰 python第一篇:基础语法 pulsar基础第二篇:命令行 pulsar基础第一篇:pulsar安装及基本概念 clickhouse第三篇:安装 clickhouse第二篇:MergeTree引擎 clickhouse第一篇:引擎 redis高阶第一篇:令牌桶算法限流 http2.0 gin入参多次获取
nacos
koushr · 2026-04-05 · via 博客园 - koushr

作为注册中心,nacos默认使用客户端主动上报心跳,服务端如果长时间没收到某一个实例的心跳,则会先标记此实例为不健康,之后再剔除该实例。服务启动时,要调用nacos的注册接口(/nacos/v1/ns/instance),入参ephemeral要设为true,表示这是临时实例,需要心跳。客户端会定期(默认是5s执行一次)向服务端发送请求(/nacos/v1/ns/instance/beat),心跳内容包括serviceName、ip、port。服务端收到心跳后,会更新实例的最后心跳时间,并标记实例为健康状态。服务端内部有一个定时任务(5s执行一次),若实例的最后心跳时间距现在超过15s,则服务端会标记此实例为不健康状态。若超过30s,则会剔除此实例。nacos有保护机制,当大量实例unhealthy时,不会立即全部删除。

zookeeper和nacos的心跳方式不一样,zookeeper是靠session+watch,consul是靠ttl+http检查。

如果ephemeral为false,则客户端不会主动向服务端发送心跳。

作为注册中心,nacos集群是AP。同步采用distro协议。客户端注册到某个nacos节点,比如A,A节点会本地写入实例数据,并异步同步给其他节点,实现最终一致性。

作为配置中心,nacos集群是CP,即是强一致性的。同步基于Raft协议,各节点分为leader、follower,leader收到写请求后,会先写本地日志,然后同步给followers,如果超过半数节点写入成功,则返回成功,否则返回失败。

综上,Nacos 采用AP+CP混合架构:服务注册基于Distro协议实现最终一致(AP),配置中心基于Raft协议实现强一致(CP),在可用性与一致性之间做了业务级别的权衡。Nacos的AP和CP不能通过配置切换。