1 背景
本次隆重发布的 Spring Cloud Alibaba 2021.0.1.0 版本在 Spring Cloud 2021.0.1、Spring Boot 2.6.3 的基础上对其中包括注册配置中心、分布式消息等在内的众多组件进行重大升级:
- Nacos:升级 Nacos 客户端到 1.4.2 版本,修复了 Nacos 1.4.1 所存在的相关问题,支持了 Nacos 服务发现失败容错等相关能力。
- RocketMQ:升级到了 4.9.2,并将之前项目中的 RocketMQ 单独分支融入到了项目主分支,跟随大版本一起发布迭代,使用户可在最新 Spring Cloud Alibaba 中直接使用 RocketMQ 新支持的批量消息、异步消息回调处理、Push 模式下指定消费起始位等众多新特性。
- Sentinel:升级到了 1.8.3,除了修复部分之前版本所存在的问题外,还提供了丰富的针对 FeignClient 的容错能力,支持针对全局 FeignClient 配置默认熔断规则,支持对单个 FeignClient 配置特定容错规则以及支持针对单个方法配置熔断规则等能力。
- Spring Boot:在Spring Boot 2.6.3 版本基础上,支持了 spring.config.import 的应用配置方式,方便用户更友好地在应用中配置和使用 Nacos 配置中心。
- 除了组件升级,另外也修复了很多之前版本所存在的问题,进一步提升了 Spring Cloud Alibaba 使用的稳定性与健壮性。
2 Nacos升级指南
2.1 升级操作
如果项目中需要使用 Spring Cloud Alibaba 2021.0.1.0 版本,请在项目中添加如下依赖:
<dependencyManagement>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.6.3</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>2021.0.1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2021.0.1.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencyManagement>
注意事项:spring-cloud-starter-alibaba-nacos-config 模块移除了 spring-cloud-starter-bootstrap 依赖,如果你想以旧版的方式使用,你需要手动加上该依赖,现在推荐使用 spring.config.import 方式引入配置。完成以上步骤就能无缝切换到 spring cloud alibaba 2021.0.1.0 版本。
2.2 新特性以及使用方式
2.2.1 支持 spring.config.import
这里假设有一个配置文件(bootstrap.yml),升级到新版本应该怎么配置呢?
spring:
cloud:
nacos:
config:
name: test.yml
group: DEFAULT_GROUP
server-addr: 127.0.0.1:8848
extension-configs:
- dataId: test01.yml
group: group_01
- dataId: test02.yml
group: group_02
refresh: false
这两个配置是等价的:
# application.yml
spring:
cloud:
nacos:
config:
group: DEFAULT_GROUP
server-addr: 127.0.0.1:8848
config:
import:
- optional:nacos:test.yml # 监听 DEFAULT_GROUP:test.yml
- optional:nacos:test01.yml?group=group_01 # 覆盖默认 group,监听 group_01:test01.yml
- optional:nacos:test02.yml?group=group_02&refreshEnabled=false # 不开启动态刷新
- nacos:test03.yml # 在拉取nacos配置异常时会快速失败,会导致 spring 容器启动失败
注意事项:
如果使用 spring.config.import 就不能使用 bootstrap.yml/properties 引入配置的方式了 !!!
如果引入了 spring-cloud-starter-alibaba-nacos-config,并且使用 import 方式导入配置, 项目启动时会自动检测是否引入了 nacos: 条目,如果没有 import nacos 条目,会出现错误。
上述解决办法如下:
你可以手动通设置 spring.cloud.nacos.config.import-check.enabled=false 关闭它,但是不建议这么做,这个功能可以帮助你检查是否引入多余依赖。
假如想保留以前的使用方式 (bootstrap引入配置),你只需要添加依赖 spring-cloud-starter-bootstrap 依赖,不需要修改一行代码。文章来源:https://www.toymoban.com/news/detail-481425.html
3 Nacos 容错能力
新增配置项 spring.cloud.nacos.discovery.failure-tolerance-enabled, 设置为 true (默认 false) 开启 nacos 服务发现失败容错能力,该功能会在 nacos 获取实例失败时返回上一次获取的实例,可以在 nacos server 网络不稳定时提供容错能力,不会导致请求全部挂掉。文章来源地址https://www.toymoban.com/news/detail-481425.html
到了这里,关于Spring Cloud Alibaba 2021.0.1.0之Nacos升级的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!