SpringCloud-Eureka 第 11 章:2026 年的现实提醒(选型)

第 11 章:2026 年的现实提醒(选型)

本章目标:了解 Eureka 当下的处境,以及做新项目时该怎么选注册中心。


11.1 Eureka 现状

  • Eureka 2.x 官方已停止开源维护。
  • 但1.x(Spring Cloud Netflix Eureka)依旧稳定、学习价值很高,中小项目仍在大量使用。
  • 学 Eureka 的意义在于:它把"注册 / 心跳 / 拉取 / 负载均衡"这套通用思想讲得最清楚,学会它,其他注册中心一通百通。

11.2 主流替代品

产品特点适合
Nacos(阿里)注册中心 + 配置中心二合一,国内最火国内新项目首选
Consul(HashiCorp)功能全,健康检查强,多数据中心需要强健康检查/跨机房
Kubernetes Service DiscoveryK8s 原生,Service/DNS 自带发现已经上 K8s 的团队

11.3 Eureka → Nacos 概念对照(迁移无缝)

Eureka 概念Nacos 对应说明
Eureka ServerNacos 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 地址,一个挂了自动切另一个。