Spring Cloud 微服务全栈实践
本文围绕 Spring Cloud 在微服务架构中的核心能力进行系统讲解。以理论为主、代码为辅,适合已有 Spring Boot 基础、准备或正在进行微服务实践的工程师。
1. 总览与定位
1.1 微服务背景与挑战
微服务将业务拆分为多个自治小服务,以独立的部署单元进行演进。它带来团队解耦与交付效率提升,但也引入了运行时治理难题:服务发现、配置分发、接口兼容、容错与复原、可观测性与容量规划、运维与安全合规等。没有系统化的治理能力,微服务成本将迅速攀升。
1.2 Spring Cloud 生态与版本矩阵
Spring Cloud 以'Release Train'方式管理版本,与 Spring Boot 存在严格兼容关系。现代常见组合为 Spring Boot 3.x 搭配 Spring Cloud 2022.x/2023.x。Netflix 系列的演进路径需要注意:
- Ribbon 与 Hystrix 已退役,替换为 Spring Cloud LoadBalancer 与 Resilience4j。
- Zuul 建议使用 Spring Cloud Gateway。
- Sleuth 迁移为 Micrometer Tracing(或 OpenTelemetry)。
1.3 微服务能力全景图
从运行时治理视角看,核心能力包括:
- 服务注册与发现:通过稳定服务名实现位置透明。
- 配置中心:集中化配置与动态刷新,降低手工同步与环境差异。
- 服务通信与网关:统一入口治理、鉴权与路由,提升一致性与安全性。
- 容错与限流:断路、降级、重试、舱壁隔离,避免级联故障。
- 可观测性:健康检查、指标、链路追踪、日志关联,构建监控与预警体系。
- 数据一致性:跨服务事务与事件驱动,保障业务正确性。
2. 服务注册与发现
2.1 核心概念与术语
- 服务注册表:保存服务实例与其网络位置(host/port)的数据库。
- 实例租约与心跳:客户端定期上报存活状态,注册中心维护租约;过期实例会被剔除。
- 发现与负载均衡:调用方依据服务名从注册表获取实例列表,并进行负载策略选择。
2.2 组件对比:Eureka / Consul / Nacos
- Eureka:偏高可用与最终一致性,Java 生态友好,部署与集成简便。
- Consul:强一致性、内置 KV 与健康检查、跨语言生态好,适合多栈团队。
- Nacos:服务发现与配置中心一体化,云原生友好,国内社区活跃,功能覆盖广。
选择策略:团队技术栈、治理习惯与基础设施优先。若需要'一体化服务发现 + 配置',可优先 Nacos;追求跨语言与一致性保障,可考虑 Consul;纯 Java 且希望轻松落地,可选 Eureka。
2.3 快速实践:Eureka Server 搭建
// RegistryApplication.java
@SpringBootApplication
@EnableEurekaServer
public class RegistryApplication {
public static void main(String[] args) {
SpringApplication.run(RegistryApplication.class, args);
}
}
# application.yml (Eureka Server)


