Spring Cloud 2024 正式发布,王炸级更新!!

大家好,我是R哥。

2024 年都接近尾声了,Spring Cloud 2024 正式版才刚刚发布,真是姗姗来迟啊。

Spring Cloud 2024 从里程碑版本到正式版本,一共发布了 4 次版本:

  • 2024.0.0
  • 2024.0.0-RC1
  • 2024.0.0-M2
  • 2024.0.0-M1

来看看最新的版本情况:

Spring Cloud 2024,代号:Moorgate,关于版本的命名、代号,发布时间是不是很奇怪?

其实 Spring Cloud 最新的版本命名方式早已经变更了,以后就是 YEAR.x 这种命名方式了,不清楚的可以看下我之前写的两篇文章:

比如我举两个例子:

Spring Cloud 2024.0.0 中的 2024 是指 Spring Cloud 2024.x 版本线,2023.0.0 则是指 2023 这个版本线的第 1 个版本,而不是指某个年份发布的版本。

如果没有意外,Spring Cloud 2025.x 将会在 2025 年 12 月份正式发布,也一样会经历里程碑版本、候选版本,最后发布正式版本,这需要一个周期。

新特性解读

Spring Cloud 2024.0.0 是一个大版本,来看看更新了啥。

系统环境

Spring Cloud 2024.0.0 基于以下环境进行构建:

所以,这也是 Spring Cloud 2024.0.0 的最低依赖要求,其实JDK 和 Spring 版本是跟 Spring Boot 版本走的,升级请小心兼容性。

模块升级

Spring Cloud 2024.0.0 更新了以下核心模块:

模块 版本
Spring Cloud Vault 4.2.0
Spring Cloud Bus 4.2.0
Spring Cloud Task 3.2.0
Spring Cloud Zookeeper 4.2.0
Spring Cloud Kubernetes 3.2.0
Spring Cloud Function 4.2.0
Spring Cloud Commons 4.2.0
Spring Cloud Openfeign 4.2.0
Spring Cloud Circuitbreaker 3.2.0
Spring Cloud Starter Build 2024.0.0
Spring Cloud Stream 4.2.0
Spring Cloud Consul 4.2.0
Spring Cloud Gateway 4.2.0
Spring Cloud Contract 4.2.0
Spring Cloud Config 4.2.0
Spring Cloud Build 4.2.0
Spring Cloud Netflix 4.2.0

Spring Cloud CircuitBreaker

之前的版本有一个问题:

CircuitBreaker 实例只支持全局禁用 TimeLimiter,或者必须定义一个自定义的长时间超时配置,即使实例不需要考虑超时问题,或者已经有超时配置,也需要使用该自定义配置。

Spring Cloud 2024.0.0 支持对所有 CircuitBreaker 实例,按组或实例级别禁用 TimeLimiter,可控制的颗粒度更小了。

Spring Cloud Config

更新内容如下:

  • 修复一个 S3 协议的后端存储,对于多个应用程序名称的行为有所不同的问题。
  • 支持在环境存储库中使用多标签,服务器端会处理多标签,无需客户端介入。
  • 支持使用给定的字符集存储和接收资源。
  • 添加对 MongoDB 环境存储库支持。

Spring Cloud Gateway

更新内容如下:

  • 支持缓存网关过滤器(filters),以避免在每一个请求中进行排序。
  • 支持在 HttpClientProperties 中配置 SslBundles 参数。
  • 支持 Netty 的 HTTP Client 连接池的 leasing 策略配置。
  • 支持在 MVC 服务器中实现 ModifyResponseBody。
  • 使用了新的 Spring Boot HTTP 客户端自动配置框架,配置更简单方便了。
  • Webflux Java DSL 添加了一个嵌套布尔谓词的方法。
  • 支持向路由添加启用标志。
  • 在 Grafana 模板中添加了 QPS、延迟等指标。
  • 修复了与多个路由一起使用的同一个 redis rate limiter bucket。

Spring Cloud Kubernetes

更新内容如下:

  • 添加对配置观察器(watcher)的支持,以关闭应用程序并刷新应用程序。

Spring Cloud Netflix

更新内容如下:

  • 添加对 RestClient 的支持,并成为了 Netflix Eureka 的默认 HTTP 客户端。

Spring Cloud Commons

更新内容如下:

  • 添加对负载平衡 RestTemplateBuilder 的支持。
  • 支持无需 KeyStore 就可以创建一个 TrustStore。

Spring Cloud Bus

更新内容如下:

  • 添加了一个关闭事件、端点,以及监听器。

Spring Cloud OpenFeign

更新内容如下:

  • ignorecase 字段添加到 Spring 分页,以与 SortHandlerMethodArgumentResolverSupport::parseIgnoreCase 进行兼容。

Spring Cloud Stream

更新内容如下:

  • 确保 BindingServiceProperties.bindings 的线程安全性。
  • 支持在 Supplier 中使用 PostProcessing 的能力。
  • 更改 DefaultBinderFactory 类的 getBinder 方法中 synchronized 的使用,以实现虚拟线程兼容。

Spring Cloud 最新维护版本

Spring Cloud 支持的版本情况,以及对应的 Spring Boot、子模块版本如下表所示。

模块 * 2025.0 (Northfields)* 2024.0 (Moorgate) 2023.0 (Leyton) 2022.0 (Kilburn)
spring-boot 3.5.x 3.4.x 3.3.x/3.2.x 3.1.x/3.0.x
spring-cloud-bus 4.3.x 4.2.x 4.1.x 4.0.x
spring-cloud-circuitbreaker 3.3.x 3.2.x 3.1.x 3.0.x
spring-cloud-commons 4.3.x 4.2.x 4.1.x 4.0.x
spring-cloud-config 4.3.x 4.2.x 4.2.x 4.1.x
spring-cloud-consul 4.3.x 4.2.x 4.1.x 4.0.x
spring-cloud-contract 4.3.x 4.2.x 4.1.x 4.0.x
spring-cloud-function 4.3.x 4.2.x 4.1.x 4.0.x
spring-cloud-gateway 4.3.x 4.2.x 4.1.x 4.0.x
spring-cloud-kubernetes 3.3.x 3.2.x 3.1.x 3.0.x
spring-cloud-netflix 4.3.x 4.2.x 4.1.x 4.0.x
spring-cloud-openfeign 4.3.x 4.2.x 4.1.x 4.0.x
spring-cloud-stream 4.3.x 4.2.x 4.1.x 4.0.x
spring-cloud-task 3.3.x 3.2.x 3.1.x 3.0.x
spring-cloud-vault 4.3.x 4.2.x 4.1.x 4.0.x
spring-cloud-zookeeper 4.3.x 4.2.x 4.1.x 4.0.x

需要注意的是:

正常维护中的版本中有 Spring Cloud 2023+ 了,2022 及之前的版本已经彻底结束生命周期了,官方不再提供维护支持了,非必要,新项目尽量不要再使用了。

总结

Spring Cloud 2024.0.0 更新了不少功能啊,各个模块都得到了升级和加强,特别是对 Spring Cloud GatewaySpring Cloud Config 这两个模块的更新非常大。

如果你问我有没有必要升级最新版本,对于想尝鲜的小伙伴是可以升级的,企业级生产项目就没有必要升级了,也许还有一堆 bug 呢,提前了解下吧。

Maven 依赖给大家奉上:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>2024.0.0</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

Spring Cloud 依赖管理采用的是 import 导入方式,里面管理了许多子模块依赖,统一引入管理,使用时只需要引入对应依赖的坐标即可,不需要再指定子模块的版本号。

另外,学 Spring Cloud 必须先掌握 Spring Boot,如果你还没用过 Spring Boot,今天我就送你一份 《Spring Boot 学习笔记》这个很全了,包括底层实现原理及代码实战,非常齐全,助你快速打通 Spring Boot 的各个环节。

Spring Boot 理论和实战源码仓库:

https://github.com/javastacks/spring-boot-best-practice

你们用的哪个 Spring Cloud 版本呢?欢迎留言分享~

好了,今天的分享就到这里了,后面我会更新更多好玩的 Java 技术文章和最新的技术资讯,关注公众号Java技术栈第一时间推送,不要走开哦。

最后,打个小广告,如果你想系统学习 Spring Cloud 微服务,可以报名R哥出品的《Spring Cloud 微服务实战课程》,已支持全新的 Spring Cloud 2023 版本,一次订阅,永久免费更新。

Spring Cloud 无疑是现在 Java 微服务事实上的标准,完全基于 Spring Boot 构建,依赖 Spring 生态体系,可以很好的与各种 Spring 生态项目无缝对接。

所以,不管是职场提升还是面试跳槽Spring Cloud 都是必备技能

版权声明: 本文系公众号 "Java技术栈" 原创,转载、引用本文内容请注明出处,抄袭、洗稿一律投诉侵权,后果自负,并保留追究其法律责任的权利。

更多文章推荐:

1.Spring Boot 3.x 教程,太全了!

2.2,000+ 道 Java面试题及答案整理(2024最新版)

3.免费获取 IDEA 激活码的 7 种方式(2024最新版)

觉得不错,别忘了随手点赞+转发哦!

posted @ 2024-12-05 15:20  Java技术栈  阅读(152)  评论(0编辑  收藏  举报