spring cloud
·
Spring Cloud 简介
Spring Cloud 是一套基于 Spring Boot 的微服务架构工具集,用于快速构建分布式系统中的常见模式(如配置管理、服务发现、断路器、智能路由等)。它整合了 Netflix OSS、Consul、Zookeeper 等开源组件,提供了一套简化的开发体验。
核心组件
Spring Cloud Netflix
- Eureka:服务注册与发现组件,用于微服务的动态上下线管理。
- Ribbon:客户端负载均衡器,支持多种策略(如轮询、随机)。
- Feign:声明式 REST 客户端,简化服务间 HTTP 调用。
- Hystrix:熔断器,提供服务降级和故障隔离能力。
Spring Cloud Config
集中化配置管理,支持 Git、数据库等存储配置,动态刷新配置无需重启服务。
Spring Cloud Gateway
API 网关,替代 Zuul,支持动态路由、限流、鉴权等功能。
Spring Cloud Sleuth
分布式链路追踪,与 Zipkin 集成,用于监控微服务调用链。
快速入门示例
1. 创建 Eureka Server
添加依赖:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
配置 application.yml:
server:
port: 8761
eureka:
client:
register-with-eureka: false # 不向自身注册
fetch-registry: false
主类添加注解 @EnableEurekaServer。
2. 创建服务提供者
注册到 Eureka:
eureka:
client:
service-url:
defaultZone: http://localhost:8761/eureka/
主类添加 @EnableDiscoveryClient。
3. 使用 Feign 调用服务
定义接口:
@FeignClient(name = "service-provider")
public interface UserService {
@GetMapping("/user/{id}")
User getUser(@PathVariable Long id);
}
常见问题解决
服务注册失败
- 检查 Eureka Server 地址是否正确。
- 确认服务提供者的
spring.application.name唯一。
配置中心动态刷新失效
- 确保客户端添加
@RefreshScope注解。 - 调用
/actuator/refresh端点触发刷新。
Hystrix 熔断不生效
- 检查
@EnableCircuitBreaker是否启用。 - 确认
feign.hystrix.enabled=true(Feign 集成时需显式开启)。
版本选择建议
- Spring Cloud 2022.x(代号 Kilburn)需搭配 Spring Boot 3.x。
- Spring Cloud 2021.x(代号 Jubilee)兼容 Spring Boot 2.6.x~2.7.x。
参考资料
- 官方文档:Spring Cloud
- 代码示例:Spring Cloud Samples
更多推荐



所有评论(0)