Java之SpringCloud Alibaba【一】【Nacos一篇文章精通系列】 | 跳轉(zhuǎn) |
---|---|
Java之SpringCloud Alibaba【二】【微服務(wù)調(diào)用組件Feign】 | 跳轉(zhuǎn) |
Java之SpringCloud Alibaba【三】【微服務(wù)Nacos-config配置中心】 | 跳轉(zhuǎn) |
Java之SpringCloud Alibaba【四】【微服務(wù) Sentinel服務(wù)熔斷】 | 跳轉(zhuǎn) |
Java之SpringCloud Alibaba【五】【微服務(wù) Sentinel整合openfeign進行降級】 | 跳轉(zhuǎn) |
Java之SpringCloud Alibaba【六】【Alibaba微服務(wù)分布式事務(wù)組件—Seata】 | 跳轉(zhuǎn) |
Java之SpringCloud Alibaba【七】【Spring Cloud微服務(wù)網(wǎng)關(guān)Gateway組件】 | 跳轉(zhuǎn) |
Java之SpringCloud Alibaba【八】【Spring Cloud微服務(wù)Gateway整合sentinel限流】 | 跳轉(zhuǎn) |
Java之SpringCloud Alibaba【九】【Spring Cloud微服務(wù)Skywalking】 | 跳轉(zhuǎn) |
一、Nacos-config配置中心
1、官方文檔
Nacos提供用于存儲配置和其他元數(shù)據(jù)的key/value存儲,為分布式系統(tǒng)中的外部化配置提供服務(wù)器端和客戶端支持。使用Spring Cloud Alibaba Nacos Confg,您可以在Nacos Server集中管理你
Spring Cloud應(yīng)用的外部屬性配置。
1.維護性 2.時效性 3.安全性
springcloud config對比
三大優(yōu)勢
- springcloud config大部分應(yīng)用場景結(jié)合git使用,動態(tài)變更還需要依賴Spring Cloud Bus消息總線來通過所有的客戶端變化
- springcloud config 大部分場景結(jié)果GIT使用,動態(tài)變更還需要SpringCloud Bus消息總線來通過所有客戶端變化
- nacos config 使用長輪詢更新配置,一但配置變動后,通知Provider 的過程非常迅速,從速度上秒殺springcloud原來的config幾條街
二、快速配置
訪問:http://192.168.180.128:8847/nacos/index.html#/login
1、Nacos-config基本操作
新增配置
點擊發(fā)布
編輯配置
查看修改的歷史信息
查看詳情
詳情和回滾等操作
監(jiān)聽查詢
創(chuàng)建新的命名空間
將配置文件克隆到其他命名空間當(dāng)中
用戶管理&角色管理
添加用戶
添加角色
權(quán)限管理
我們設(shè)置登出系統(tǒng)
2、Nacos配置中心使用
Nacos服務(wù)端初始化
1、啟動Nacos Server,啟動方式可見Nacos官網(wǎng)
2、啟動好Nacos之后,在Nacos添加如下配置
Data ID: nacos-config.properties
Group : DEFAULT_GROUP
配置格式:Properties
配置內(nèi)容:
user.name = 徐庶2
user.age = 11
Note 注意dataid是以properties(默認(rèn)的文件擴展名方式)為擴展名
客戶端使用方式
如果要在您的項目當(dāng)中使用Nacos來實現(xiàn)應(yīng)用的外部化配置,使用group ID為com.alibaba.cloud 和 artfact ID為spring-cloud-starter-alibaba-nacos-config的starter
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
現(xiàn)在就可以創(chuàng)建一個標(biāo)準(zhǔn)的SpringBoot應(yīng)用
@SpringBootApplication
public class ConfigApplication {
public static void main(String[] args) {
SpringApplication.run(ConfigApplication.class,args);
}
}
server:
port: 8050
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--Nacos config 依賴-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
</dependencies>
@SpringBootApplication
public class ConfigApplication {
public static void main(String[] args) {
ConfigurableApplicationContext applicationContext = SpringApplication.run(ConfigApplication.class, args);
String userName = applicationContext.getEnvironment().getProperty("user.name");
String userAge = applicationContext.getEnvironment().getProperty("user.age");
System.out.println("user name :"+userName +"; age: "+userAge);
}
}
在運行此Example之前,必須使用bootstarp.properties配置文件來配置Nacos Server地址,例如
spring:
application:
name: nacos-config
cloud:
nacos:
server-addr: 192.168.180.128:8847
3、Nacos客戶端 每10ms去 注冊中心 進行判斷 根據(jù)MD5
4、基于dataid 為yaml的文件擴展名方式
spring-cloud-starter-alibaba-nacos-config對于yaml格式也是完美支持的。這個時候只需要完成以下兩步:
1、在應(yīng)用的 bootstrap.properties配置文件中顯示的聲明dataid文件擴展名。如下所示
bootstrap.properties
spring.cloud.nacos.config.file-extension=yaml
user:
name: 徐庶-yaml
age: 11
我們發(fā)現(xiàn)拿不到配置信息了
需要修改對應(yīng)的配置信息,設(shè)置對應(yīng)讀取文件擴展名
# Nacos 客戶端 默認(rèn)是Properties 的文件擴展名 file-extension進行設(shè)置
config:
file-extension: yaml
# Nacos 客戶端 默認(rèn)是Properties 的文件擴展名 file-extension進行設(shè)置
config:
file-extension: yaml
#refresh-enabled: false nacos客戶端將無法感知配置的變化
重新運行項目
設(shè)置多個環(huán)境的application.yml的配置文件
application-dev.yml
上述輸出的配置信息當(dāng)中用戶名是剛剛的配置信息,但是年齡是讀取的依舊是舊的配置信息
設(shè)置namespace為dev
namespace: dev
我們可以看到讀取不到任何配置信息,因為我們沒有設(shè)置dev環(huán)境下的配置信息
克隆成功
5、支持自定義Group的配置
在沒有明確指定${spring.cloud.nacos.config.group}
配置的情況下,默認(rèn)使用的是DEFAULT_GROUP
。如果需要自定義自己的Group,可以通過以下配置來實現(xiàn):
spring.cloud.nacos.config.group=DEVELOP_GROUP
group: itbluebox
讀取不到對應(yīng)的信息
克隆并設(shè)置Group
又可以繼續(xù)讀取到對應(yīng)的配置信息
6、支持自定義擴展的Data id配置
Spring Cloud Alibaba Nacos Config從 0.2.1版本后,可支持自定義Data ld的配置。關(guān)于這部分詳細(xì)的設(shè)計可參考這里。一個完整的配置案例如下所示:
String userConfig = applicationContext.getEnvironment().getProperty("user.config");
System.out.println("user name :"+userName +"; age: "+userAge + "; userConfig:"+userConfig);
group: itbluebox
shared-configs:
- data-id: com.itblueboxmall.common.properties
refresh: true
#group:默認(rèn)是Default-group
- data-id: com.itblueboxmall.common2.properties
refresh: true
#group:默認(rèn)是Default-group
extension-configs[0]:
data-id: com.itblueboxmall.common03.properties
refresh: true
7、@RefreshScope【設(shè)置動態(tài)感知對應(yīng)配置變化】
@Value注解可以獲取到配置中心的值,但是無法動態(tài)感知修改后的值,需要利用@RefreshScope注解
@RestController
@RequestMapping("/config")
public class ConfigController {
@Value("${user.name}")
public String username;
@RequestMapping("/show")
public String show(){
return this.username;
}
}
http://localhost:8050/config/show
控制臺輸出的內(nèi)容變了
再次訪問對應(yīng)的接口沒有變化
http://localhost:8050/config/show
設(shè)置動態(tài)感知對應(yīng)配置變化文章來源:http://www.zghlxwxcb.cn/news/detail-568123.html
@RefreshScope
重新啟動運行項目
修改配置信息
控制臺輸出內(nèi)容變了
訪問:http://localhost:8050/config/show文章來源地址http://www.zghlxwxcb.cn/news/detail-568123.html
Java之SpringCloud Alibaba【一】【Nacos一篇文章精通系列】 | 跳轉(zhuǎn) |
---|---|
Java之SpringCloud Alibaba【二】【微服務(wù)調(diào)用組件Feign】 | 跳轉(zhuǎn) |
Java之SpringCloud Alibaba【三】【微服務(wù)Nacos-config配置中心】 | 跳轉(zhuǎn) |
Java之SpringCloud Alibaba【四】【微服務(wù) Sentinel服務(wù)熔斷】 | 跳轉(zhuǎn) |
Java之SpringCloud Alibaba【五】【微服務(wù) Sentinel整合openfeign進行降級】 | 跳轉(zhuǎn) |
Java之SpringCloud Alibaba【六】【Alibaba微服務(wù)分布式事務(wù)組件—Seata】 | 跳轉(zhuǎn) |
Java之SpringCloud Alibaba【七】【Spring Cloud微服務(wù)網(wǎng)關(guān)Gateway組件】 | 跳轉(zhuǎn) |
Java之SpringCloud Alibaba【八】【Spring Cloud微服務(wù)Gateway整合sentinel限流】 | 跳轉(zhuǎn) |
Java之SpringCloud Alibaba【九】【Spring Cloud微服務(wù)Skywalking】 | 跳轉(zhuǎn) |
到了這里,關(guān)于Java之SpringCloud Alibaba【三】【微服務(wù)Nacos-config配置中心】的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!