spring boot 是快速构建独立应用的脚手架,spring cloud 才是支撑微服务拆分、通信与治理的核心框架;集成需分层落地:先建 eureka 注册中心(匹配 spring boot 3.2.x 与 spring cloud 2023.0.x),再让业务服务注册发现,接着用 openfeign 实现声明式调用,最后补全网关、熔断、配置中心等生产级组件。

Spring Boot 本身不是微服务框架,它只是快速构建独立 Spring 应用的脚手架;真正支撑微服务拆分、通信与治理的是 Spring Cloud。集成的关键不在于堆砌依赖,而在于按分布式系统逻辑分层落地:先有注册中心,再让服务注册发现,接着实现可靠调用与容错,最后补上网关和配置管理。
搭一个可用的服务注册中心(Eureka)
所有微服务要能互相识别和寻址,必须依赖统一的“通讯录”。Eureka 是轻量、成熟、社区支持充分的注册中心选型。
- 新建独立模块,引入 spring-cloud-starter-netflix-eureka-server,注意版本需匹配 Spring Boot 3.2.x(如 Spring Cloud 2023.0.x)
- 启动类添加 @EnableEurekaServer 注解
- application.yml 中配置:
server.port: 8761<br>eureka.client.register-with-eureka: false<br>eureka.client.fetch-registry: false
这样它只作为服务端运行,不把自己注册为普通服务
让业务服务注册并相互发现
每个业务模块(如 user-service、order-service)仍是标准 Spring Boot 应用,但需接入服务治理体系。
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- 在业务模块中添加 spring-cloud-starter-netflix-eureka-client
- 配置注册地址:
eureka.client.service-url.defaultZone: http://localhost:8761/eureka/
- 启动后访问 http://localhost:8761,即可看到已注册的服务列表
- 服务间调用不再写死 IP+端口,改用服务名(如 user-service),由 Eureka 动态解析真实地址
用 OpenFeign 实现声明式远程调用
避免手写 RestTemplate + 负载均衡逻辑,Feign 把 HTTP 调用封装成本地接口调用,更简洁、可读性更强。
- 调用方模块引入 spring-cloud-starter-openfeign
- 启动类加 @EnableFeignClients
- 定义接口并标注:
@FeignClient("user-service")<br>public interface UserClient {<br> @GetMapping("/users/{id}")<br> UserDTO getUser(@PathVariable Long id);<br>} - 注入 UserClient 直接调用,底层自动完成服务寻址、负载均衡与请求封装
补全生产级基础设施
网关、熔断、配置中心不是锦上添花,而是保障微服务稳定运行的必需组件。
- API 网关(Spring Cloud Gateway):统一入口,负责路由、鉴权、限流、跨域,不处理业务逻辑
- 熔断降级(Resilience4j):替代已停更的 Hystrix,提供熔断、重试、隔离等能力,防止故障雪崩
- 配置中心(Spring Cloud Config 或 Nacos):集中管理各服务的配置,支持动态刷新,避免重启生效
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










