1 背景
本次隆重發(fā)布的 Spring Cloud Alibaba 2021.0.1.0 版本在 Spring Cloud 2021.0.1、Spring Boot 2.6.3 的基礎上對其中包括注冊配置中心、分布式消息等在內(nèi)的眾多組件進行重大升級:
- Nacos:升級 Nacos 客戶端到 1.4.2 版本,修復了 Nacos 1.4.1 所存在的相關問題,支持了 Nacos 服務發(fā)現(xiàn)失敗容錯等相關能力。
- RocketMQ:升級到了 4.9.2,并將之前項目中的 RocketMQ 單獨分支融入到了項目主分支,跟隨大版本一起發(fā)布迭代,使用戶可在最新 Spring Cloud Alibaba 中直接使用 RocketMQ 新支持的批量消息、異步消息回調(diào)處理、Push 模式下指定消費起始位等眾多新特性。
- Sentinel:升級到了 1.8.3,除了修復部分之前版本所存在的問題外,還提供了豐富的針對 FeignClient 的容錯能力,支持針對全局 FeignClient 配置默認熔斷規(guī)則,支持對單個 FeignClient 配置特定容錯規(guī)則以及支持針對單個方法配置熔斷規(guī)則等能力。
- Spring Boot:在Spring Boot 2.6.3 版本基礎上,支持了 spring.config.import 的應用配置方式,方便用戶更友好地在應用中配置和使用 Nacos 配置中心。
- 除了組件升級,另外也修復了很多之前版本所存在的問題,進一步提升了 Spring Cloud Alibaba 使用的穩(wěn)定性與健壯性。
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 依賴,如果你想以舊版的方式使用,你需要手動加上該依賴,現(xiàn)在推薦使用 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 # 監(jiān)聽 DEFAULT_GROUP:test.yml
- optional:nacos:test01.yml?group=group_01 # 覆蓋默認 group,監(jiān)聽 group_01:test01.yml
- optional:nacos:test02.yml?group=group_02&refreshEnabled=false # 不開啟動態(tài)刷新
- nacos:test03.yml # 在拉取nacos配置異常時會快速失敗,會導致 spring 容器啟動失敗
注意事項:
如果使用 spring.config.import 就不能使用 bootstrap.yml/properties 引入配置的方式了 !!!
如果引入了 spring-cloud-starter-alibaba-nacos-config,并且使用 import 方式導入配置, 項目啟動時會自動檢測是否引入了 nacos: 條目,如果沒有 import nacos 條目,會出現(xiàn)錯誤。
上述解決辦法如下:
你可以手動通設置 spring.cloud.nacos.config.import-check.enabled=false 關閉它,但是不建議這么做,這個功能可以幫助你檢查是否引入多余依賴。
假如想保留以前的使用方式 (bootstrap引入配置),你只需要添加依賴 spring-cloud-starter-bootstrap 依賴,不需要修改一行代碼。文章來源:http://www.zghlxwxcb.cn/news/detail-481425.html
3 Nacos 容錯能力
新增配置項 spring.cloud.nacos.discovery.failure-tolerance-enabled, 設置為 true (默認 false) 開啟 nacos 服務發(fā)現(xiàn)失敗容錯能力,該功能會在 nacos 獲取實例失敗時返回上一次獲取的實例,可以在 nacos server 網(wǎng)絡不穩(wěn)定時提供容錯能力,不會導致請求全部掛掉。文章來源地址http://www.zghlxwxcb.cn/news/detail-481425.html
到了這里,關于Spring Cloud Alibaba 2021.0.1.0之Nacos升級的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!