第 11 章:2026 年的现实提醒(选型)
本章目标:了解 Eureka 当下的处境,以及做新项目时该怎么选注册中心。
11.1 Eureka 现状
- Eureka 2.x 官方已停止开源维护。
- 但1.x(Spring Cloud Netflix Eureka)依旧稳定、学习价值很高,中小项目仍在大量使用。
- 学 Eureka 的意义在于:它把"注册 / 心跳 / 拉取 / 负载均衡"这套通用思想讲得最清楚,学会它,其他注册中心一通百通。
11.2 主流替代品
| 产品 | 特点 | 适合 |
|---|---|---|
| Nacos(阿里) | 注册中心 + 配置中心二合一,国内最火 | 国内新项目首选 |
| Consul(HashiCorp) | 功能全,健康检查强,多数据中心 | 需要强健康检查/跨机房 |
| Kubernetes Service Discovery | K8s 原生,Service/DNS 自带发现 | 已经上 K8s 的团队 |
11.3 Eureka → Nacos 概念对照(迁移无缝)
| Eureka 概念 | Nacos 对应 | 说明 |
|---|---|---|
| Eureka Server | Nacos Server | 都是注册中心 |
@EnableEurekaServer | 直接下载 Nacos 启动 | Nacos 是独立服务端 |
| eureka-client 依赖 | nacos-discovery依赖 | 换个 starter |
defaultZone地址 | server-addr地址 | 配置项换名字 |
| 心跳 / 剔除 | 心跳 / 健康检查 | 机制类似 |
| 自我保护(AP) | Nacos 支持 AP/CP 切换 | Nacos 更灵活 |
概念是相通的:注册、心跳、拉取、负载均衡。 学会 Eureka,再学 Nacos 一天就上手。
11.4 选型建议(一句话)
- 学习 / 中小项目:Eureka 足够,简单直接。
- 国内新项目:优先 Nacos(顺便解决配置中心)。
- 已上 K8s:直接用 K8s 自带的服务发现。
全书完 · 学完自测 + 参考答案
1. 服务之间为什么不直接写 IP,而要用"服务名"?
因为 IP 会随扩容、重启、迁移而变。用服务名,地址由注册中心动态维护,IP 变了调用方无感知。
2. Eureka 靠什么知道一个服务"还活着"?多久剔除?
靠心跳(默认每 30 秒一次)。默认 90 秒收不到心跳就剔除。
3. 消费者为什么本地要缓存一份服务列表?
为了性能(不用每次调用都问总台)和可用性(总台短暂故障时仍能靠缓存调用)。
4. "自我保护"是在保护什么,体现了 Eureka 的什么取舍?
保护"因网络抖动而暂时失联"的服务不被误删。体现 AP 取舍:宁可信息不那么准,也要保证系统可用。
5. 一个 Eureka Server 挂了怎么办?
搭集群(多个 Server 互相注册同步),客户端配多个 Server 地址,一个挂了自动切另一个。