Nacos
你可能会说
服务一拆多,注册中心和配置中心还得各搭一套?
阿里开源的注册中心 + 配置中心,一个进程全包服务启动时来注册,调用方按服务名发现;配置统一放在平台上,改完推给客户端并支持灰度、回滚。Spring Cloud Alibaba 和 Dubbo 的默认搭档。它是运行时要一直开着的中间件,生产要搭集群,不是引个库就行。
也常被叫作Nacos Server注册中心
什么时候选它
- Java 微服务要服务注册与发现(Spring Cloud Alibaba / Dubbo)
- 多环境配置集中管理,要动态刷新、灰度和回滚
- 想少维护一套组件:注册中心和配置中心一个进程搞定
什么时候别选
- 单体应用,根本没有「服务在哪」的问题
- 已经用 K8s Service / ConfigMap 托管发现和配置
- 规模极小、只用 DNS 就能找到服务
容易混在一起 · 怎么分
Nacos≠Eureka
Eureka 只做注册发现、早已停止演进;Nacos 注册 + 配置一体,还能按场景选 AP 或 CP。
Nacos≠ZooKeeper
ZK 是偏 CP 的分布式协调组件,注册只是顺带用法;Nacos 对临时实例走 AP + Distro 协议,更适合服务发现。
Nacos≠K8s Service
K8s 用 Service/DNS 做发现、ConfigMap 管配置,不需要额外中间件;Nacos 适合 vm/自建和跨集群场景。
Q面试会问什么
- 问:AP 和 CP 怎么选?
答:临时实例走 AP(Distro 协议、最终一致,断网仍可用);持久实例走 CP(Raft,强一致,适合关键配置类数据)。 - 问:配置动态刷新怎么做到的?
答:客户端长轮询服务端,配置有变更就返回并推送;本地还有快照,服务端挂了也能用上一次的配置。 - 问:服务发现怎么扛大规模?
答:服务端变更主动推 + 客户端本地缓存,调用方不会每次都查注册中心。 - 问:和 Eureka / ZK 的本质区别?
答:治理模型不同:Eureka 单 AP、ZK 单 CP;Nacos 按数据类型分别提供 AP 和 CP,并把配置中心合进来。
延伸阅读 · 权威出处