当前位置: 首页 > news >正文

Spring Cloud 2025 正式发布,你的灾难要来了

Spring Cloud 2025.0.0 正式版

Spring Cloud 2025.0.0 “Northfields” 于 2025年5月29日正式发布,完全兼容 Spring Boot 3.5.0。本版本在微服务架构的多个核心组件上进行了重要改进和功能增强。

版本兼容性

• Spring Boot: 3.5.0
• 发布代号: Northfields
• 主要变更: 包含破坏性变更,不支持平滑升级(尤其整合Spring Cloud Alibaba 的)

Spring Cloud Gateway 重大更新

新增功能

  1. Function & Stream 处理器集成

Gateway 现在原生支持 spring-cloud-function 和 spring-cloud-stream 处理器:

spring:cloud:gateway:routes:-id:function-routeuri:function://myFunctionpredicates:-Path=/api/process/**-id:stream-routeuri:stream://myStreamProcessorpredicates:- Path=/api/stream/**

技术优势:

• 支持函数式编程模型处理请求

• 集成消息驱动架构 (Kafka, RabbitMQ)

• 简化 Serverless 和事件驱动架构实现

  1. Bucket4j 限流器支持

WebFlux 版本新增 Bucket4j 令牌桶算法支持:

spring:cloud:gateway:server:webflux:routes:-id:rate-limited-routeuri:http://backend-servicefilters:-name:Bucket4jRateLimitargs:capacity:100refill-rate:10refill-period: PT1S

重要弃用

  1. WebClientRouting 基础设施

    • 状态: 已弃用,5.0 版本将移除

    • 影响: 依赖此基础设施的路由逻辑需要迁移

    • 建议: 使用 Gateway 提供的标准路由机制

  2. 模块和启动器重命名,为明确区分 Web 技术栈和工作模式,引入新的命名规范:

旧版名称新版名称说明
spring-cloud-gateway-serverspring-cloud-gateway-server-webfluxWebFlux 服务器模式
spring-cloud-gateway-server-mvcspring-cloud-gateway-server-webmvcWebMVC 服务器模式
spring-cloud-starter-gateway-serverspring-cloud-starter-gateway-server-webfluxWebFlux 启动器
spring-cloud-starter-gateway-server-mvcspring-cloud-starter-gateway-server-webmvcWebMVC 启动器
spring-cloud-gateway-mvcspring-cloud-gateway-proxyexchange-webmvcWebMVC 代理交换
spring-cloud-gateway-webfluxspring-cloud-gateway-proxyexchange-webfluxWebFlux 代理交换

破坏性变更

X-Forwarded-* 头部默认禁用

出于安全考虑,X-Forwarded-* 和 Forwarded 头部功能默认禁用。

配置受信任代理:

# WebFlux 版本
spring:cloud:gateway:server:webflux:trusted-proxies:"192\\.168\\..*|10\\..*"# WebMVC 版本
spring:cloud:gateway:mvc:trusted-proxies: "192\\.168\\..*|10\\..*"

安全影响: 防止恶意伪造代理头部,需要显式配置信任边界。但如果下游业务有依赖此请求头,请及时处理。

Spring Cloud Config 增强

AWS S3 YAML Profile 支持

Config Server 现在支持从 S3 读取 profile 特定的 YAML 文件:

spring:cloud:config:server:awss3:bucket: my-config-bucketregion: us-west-2

配置结构示例:

s3://my-config-bucket/
├── application.yaml
├── application-dev.yaml
├── application-prod.yaml
└── application-test.yaml

Config Server 将根据激活的 profile 自动加载对应配置文件。

Spring Cloud Kubernetes 更新

组合配置源支持

Kubernetes ConfigMap 和 Secret 现在可作为组合配置源:

spring:cloud:kubernetes:config:sources:-name:app-confignamespace:default-name:db-secretnamespace:defaultexplicit-prefix: database

配置优先级:

1. 命令行参数
2. 系统属性
3. Kubernetes ConfigMap/Secret
4. application.yaml
5. 默认值

Spring Cloud Circuitbreaker 新特性

响应式隔离支持

新增对响应式编程模式支持:

@Component
publicclassReactiveService {@Resourceprivate ReactiveCircuitBreakerFactory circuitBreakerFactory;public Mono<String> callExternalService() {return circuitBreakerFactory.create("external-service").run(webClient.get().uri("/api/data").retrieve().bodyToMono(String.class),throwable -> Mono.just("fallback-response"));}}

配置示例:

resilience4j:bulkhead:instances:external-service:max-concurrent-calls: 10max-wait-duration: 1000ms

Spring Cloud Netflix 改进

Eureka 客户端增强

支持 Apache HTTP Client 5 的 RequestConfig 定制:

@Bean
public EurekaClientHttpRequestFactorySupplier customRequestFactorySupplier() {return () -> {RequestConfigrequestConfig= RequestConfig.custom().setConnectTimeout(5000).setSocketTimeout(10000).setConnectionRequestTimeout(3000).build();returnnewHttpComponentsClientHttpRequestFactory(HttpClients.custom().setDefaultRequestConfig(requestConfig).build());};
}

版本更新清单

所有模块已更新至最新版本以确保与 Spring Boot 3.5.0 兼容:

模块名称版本
Spring Cloud Config4.3.0
Spring Cloud Gateway4.3.0
Spring Cloud Kubernetes3.3.0
Spring Cloud Circuitbreaker3.3.0
Spring Cloud Netflix4.3.0
Spring Cloud Build4.3.0
Spring Cloud Openfeign4.3.0
Spring Cloud Stream4.3.0
Spring Cloud Commons4.3.0
Spring Cloud Contract4.3.0
Spring Cloud Consul4.3.0
Spring Cloud Vault4.3.0
Spring Cloud Function4.3.0
Spring Cloud Bus4.3.0
SSpring Cloud Zookeeper4.3.0
Spring Cloud Task3.3.0
Spring Cloud Starter Build2025.0.0

升级指南

前置条件

1. 升级 Spring Boot 至 3.5.02. Java 版本:必须使用 Java 17+

升级步骤

1. 更新 BOM 版本
<dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>2025.0.0</version><type>pom</type><scope>import</scope></dependency></dependencies>
</dependencyManagement>
2. Gateway 模块迁移
<!-- 旧依赖 -->
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId>
</dependency><!-- 新依赖 -->
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway-server-webflux</artifactId>
</dependency>
3. 配置属性迁移
# 旧配置
spring:cloud:gateway:routes:-id:exampleuri:http://example.com# 新配置  
spring:cloud:gateway:server:webflux:routes:-id:exampleuri: http://example.com
4. 安全配置更新
spring:cloud:gateway:server:webflux:trusted-proxies: "10\\..*|192\\.168\\..*"
5. Spring Cloud Alibaba 兼容性注意事项

如果您的项目集成了 Spring Cloud Alibaba 组件,需特别注意 Spring Cloud 2025.0.0 与 Spring Cloud Alibaba 2023.0.3 版本之间存在日志依赖冲突问题,可能导致应用启动失败。

解决方案:

1.显式排除冲突依赖并引入兼容版本
2.自行调整代码兼容适配
3.等待 Spring Cloud Alibaba 发布完全兼容的 2025.x 版本 (希望渺茫~ ~!)

相关文章:

  • 计算机磁盘旁黄色警示标志消除|BitLocker关闭方法
  • 【Android基础回顾】四:ServiceManager
  • 电子电路:什么是扩散电容?
  • 每日算法 -【Swift 算法】三数之和最接近目标值
  • 亲测解决The scripts pylupdate5.exe, pyrcc5.exe and pyuic5.exe which is not on PATH
  • CppCon 2015 学习:Concurrency TS Editor’s Report
  • <论文>(微软)WINA:用于加速大语言模型推理的权重感知神经元激活
  • 环境变量深度解析:从配置到内核的全链路指南
  • 策略梯度核心:Advantage 与 GAE 原理详解
  • dvwa12——XSS(Stored)
  • ObjectMapper 在 Spring 统一响应处理中的作用详解
  • 使用API有效率地管理Dynadot域名,查看域名市场中所售域名的详细信息
  • Spring Boot 使用 SLF4J 实现控制台输出与分类日志文件管理
  • ES 学习总结一 基础内容
  • Bug问题
  • qt ui 转python
  • 导航路径优化(一)——平滑
  • PX4 | 无人机关闭磁力计罗盘飞行(yaw estimate error报错解决方法)
  • Vue事件总线
  • windows命令行面板升级Git版本
  • b2b网站制作平台/广告开户
  • 程序员做网站给女朋友/长尾关键词排名推广
  • 上海网站公安备案号/私人做网站
  • 优化网站的软件下载/广告软文范例大全100
  • 怎样创建自己的公众号/优化排名 生客seo
  • 长沙有哪些做网站的公司/seo包年服务