首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【方向盘】Spring Cloud 2021.0.0正式发布,FeignClient调用结果可一键缓存

【方向盘】Spring Cloud 2021.0.0正式发布,FeignClient调用结果可一键缓存

作者头像
YourBatman
发布2021-12-22 10:01:00
1.3K0
发布2021-12-22 10:01:00
举报
文章被收录于专栏:BAT的乌托邦BAT的乌托邦

前言

北京时间2021-12-01,Spring Cloud 2021.0.0正式发布。话说,2021年都快过完了呀,怎么才第一个版本呢?如果对比去年2020.0.0版本发布时间是2020-12-22的话,发现还是有“进步”的哈。

【方向盘】Spring Cloud 2020.0.0正式发布,再见了Netflix

其实,Spring Cloud的发版速度慢是必然的,因为它下面的子项目实在太多了,并不像Spring Boot那样来得纯粹很好掌控。每个子项目都有自己的发版节奏,Spring Cloud协调融合在一起,还要依托于Spring Boot的版本升级而升级,需要做兼容测试,很难的呀!

所属专栏
相关下载
版本约定
  • Spring Framework 5.3.13
  • Spring Boot 2.6.1
  • Spring Cloud 2021.0.0

正文

Spring Cloud 2021.0.0版本的pom依赖:

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

值得注意的是,Spring Boot版本请使用2.6.1及以上,而非2.6.0。

尴尬不,这和Spring Cloud 2020.0.0依赖的最低Spring Boot版本为2.5.1而非2.5.0如出一辙。即使强如Spring技术团队都会因为bug导致出现这种“对不齐”的现象,洁癖患者看着着实有点小难受有木有。所以,程序员平时多多宽容自己O(∩_∩)O

老生常谈

关于Spring Cloud,每每都有些老生常谈的议题,很基础,但又不得不知,不得不提。

和Spring Boot的对应关系

Spring Cloud作为云计算框架,以Spring Boot作为基石,因此它和Spring Boot的版本对应关系非常重要

这是官方给出的对应关系图:

在这里插入图片描述
在这里插入图片描述

我把它整理为更为详细的表格:

Release Train

发布时间

Spring Boot版本

SC Commons版本

2021.0.x

2021-12

2.6.x

3.1.0

2020.0.x

2020-12

2.4.x,2.5.x(从2020.0.3起)

3.0.0

Hoxton

2019-07

2.2.x, 2.3.x (从SR5起)

2.2.x

Greenwich

2018-11

2.1.x

2.1.x

Finchley

2017-10

2.0.x

2.0.x

Edgware

2017-08

1.5.x

1.3.x

Dalston

2017-05

1.5.x

1.2.x

Brixton

2016-09

1.3.x

1.1.x

Angel

2016-05

1.2.x

1.0.x

按目前节奏,Spring Boot每年发布2个中版本、一个大版本升级,Spring Cloud保持每年一次大版本升级的用以匹配节奏。

版本管理

Spring Cloud管理着众多功能组件,整体上分为几大类。从源码处这里可以看出,以2021.0.0版本为例:

在这里插入图片描述
在这里插入图片描述

笔者制作成表格,方便你收藏:

模块

版本

核心组件

spring-cloud-commons-dependencies

3.1.0

spring-cloud-commons spring-cloud-contextspring-cloud-loadbalancerspring-cloud-starter

spring-cloud-netflix-dependencies

3.1.0

spring-cloud-starter-netflix-eureka-clientspring-cloud-starter-netflix-eureka-server

spring-cloud-openfeign-dependencies

3.1.0

spring-cloud-starter-openfeignfeign-bom:11.7feign-form-spring:3.8.0

spring-cloud-gateway-dependencies

3.1.0

spring-cloud-gateway-webfluxspring-cloud-gateway-mvcspring-cloud-gateway-serverspring-cloud-starter-gateway

spring-cloud-circuitbreaker-dependencies

2.1.0

resilience4j-bom:1.7.0spring-cloud-starter-circuitbreaker-resilience4jspring-cloud-starter-circuitbreaker-reactor-resilience4j

spring-cloud-config-dependencies

3.1.0

spring-cloud-starter-configspring-cloud-config-clientspring-cloud-config-serverspring-cloud-config-monitor

spring-cloud-stream-dependencies

3.2.1

spring-cloud-streamspring-cloud-stream-binder-kafka-streamsspring-cloud-starter-stream-rabbit

spring-cloud-task-dependencies

2.4.0

spring-cloud-starter-taskspring-cloud-task-batchspring-cloud-task-stream

spring-cloud-consul-dependencies

3.1.0

spring-cloud-starter-consulspring-cloud-starter-consul-busspring-cloud-starter-consul-configspring-cloud-starter-consul-discoveryspring-cloud-starter-consul-all

spring-cloud-sleuth-dependencies

3.1.0

spring-cloud-sleuth-bravespring-cloud-sleuth-zipkispring-cloud-starter-sleuth

spring-cloud-zookeeper-dependencies

spring-cloud-zookeeper-configspring-cloud-zookeeper-discoveryspring-cloud-starter-zookeeper-all

spring-cloud-cloudfoundry-dependencies

3.1.0

spring-cloud-cloudfoundry-discoveryspring-cloud-starter-cloudfoundry

spring-cloud-bus-dependencies

3.1.0

spring-cloud-starter-bus-amqpspring-cloud-starter-bus-kafkaspring-cloud-starter-bus-stream

spring-cloud-contract-dependencies

3.1.0

spring-cloud-contract-wiremockspring-cloud-contract-specspring-cloud-contract-spec-java<spring-cloud-contract-spec-kotlinspring-cloud-contract-stub-runner

spring-cloud-function-dependencies

3.2.1

spring-cloud-function-contextspring-cloud-starter-function-webspring-cloud-starter-function-webfluxspring-cloud-function-deployerspring-cloud-function-adapter-awsspring-cloud-function-adapter-azurespring-cloud-function-adapter-gcpspring-cloud-function-adapter-openwhisk

spring-cloud-vault-dependencies

3.1.0

spring-cloud-vault-config-awsspring-cloud-vault-config-consulspring-cloud-vault-config-databasespring-cloud-vault-config-rabbitmq

spring-cloud-kubernetes-dependencies

3.1.0

kubernetes-client-bom:5.9.0io.kubernetes:client-java:13.0.0io.kubernetes:client-java-spring-integration:13.0.0istio-clientspring-cloud-kubernetes-client-configspring-cloud-kubernetes-client-discoveryspring-cloud-kubernetes-fabric8-istiospring-cloud-kubernetes-fabric8-loadbalancerspring-cloud-starter-kubernetes-fabric8-all

发现没,如果团队正在使用kubernetes,那么spring-cloud-kubernetes也将是不错的解决方案哦,类似于Netflix的全家桶嘛。

当前支持的版本

Pivotal公司(Spring的母公司)对核心产品有个OSS支持协议,简而言之:主要版本提供3年支持,Spring Cloud作为Java领域云计算框架遵循了此协议。

特别注意:这里指的主要版本才是3年,主要版本可不常有的哦

每每新版本发布,就会有一些老版本需要退位让贤。2021.0.0版本已发布,各版本的官方支持情况如下:

  • 2021.0版本:他不算一个主要版本,但作为2020.0这个主要版本的升级版,是当前最被推荐使用的
  • 2020.0版本:他是一个主要版本。按计划会支持到2023年12月份
  • Hoxton版本:(支持Spring Boot 2.2.x和2.3.x)作为Finchley发行系列的一个次要版本,它的常规维护将持续到2021年6月底。从2020-07开始进入到特殊维护期(不加新功能,只改紧急bug),2021-12月底就只会发布重大错误/安全补丁了。2022-2-28彻底结束支持
  • Greenwich版本 :(支持Spring Boot 2.1.x)2020-01就停止维护了,2020年过完就结束生命周期
  • Finchley版本 :(支持Spring Boot 2.0.x)它是一个主要版本的开始,2018年发布,2021年过完生命周期也就结束了
  • 更老版本 :嗯,忘了吧

新特性

作为主要版本2020.0.0的常规升级版本,这次动作肯定没有上个版本那么大,稍微关注下即可。

Spring Cloud Commons

支持为每个Load-balancer(负载均衡器)配置参数,相关代码在LoadBalancerClientsProperties这里。

在这里插入图片描述
在这里插入图片描述

该特性同时也添加到了Gateway、Contract 和Openfeign项目中。

Spring Cloud Config

集成了AWS Secrets Manager、AWS Parameter Store 和 GCP Secret Manager。

这个没啥好说的,毕竟我天朝里配置中心,真有使用Spring Cloud Config的吗?

Spring Cloud Gateway

作为Spring Cloud非常非常亮眼、常用的组件,这个升级还是可圈可点的:功能更丰富了。

  • 支持 Redis 路由存储库。也就是新增的RedisRouteDefinitionRepository这个实现类喽
  • 支持 HTTP 2。
  • 支持 gRPC。

Spring Cloud Openfeign

支持@Cachable缓存注解,这个必须点赞,很方便很实用!

支持此新功能的核心API为:FeignCachingInvocationHandlerFactory,复用了Spring Cache的能力。

总结

本次Spring Cloud升级点并不多,可能刺激不到你的神级。但或许这也是好事呀,毕竟每次搞那么大的话,真升不动了,躺平走起。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-12-20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 正文
    • 老生常谈
      • 和Spring Boot的对应关系
      • 版本管理
      • 当前支持的版本
    • 新特性
      • Spring Cloud Commons
      • Spring Cloud Config
      • Spring Cloud Gateway
      • Spring Cloud Openfeign
  • 总结
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档