Nacos作為服務(wù)配置中心辫秧。
1.使用:
- 在項(xiàng)目中引入相關(guān)依賴:需注意nacos、springboot被丧、spring-cloud盟戏、spring-cloud-alibaba版本對應(yīng)關(guān)系
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
- 2.項(xiàng)目bootstrap.yml配置
spring:
application:
name: consumer
cloud:
nacos:
config:
server-addr: 127.0.0.1:8848
file-extension: yaml
namespace: e7a8ccc6-10df-46cd-88a0-cf54157e8ace
group: spmp
server:
port: 8899
-
nacos server端發(fā)布配置
nacos server端對data Id配置
需注意:namespace, group, dataId绪妹,dataId擴(kuò)展名(.yaml)均與bootstrap.yml中的配置相同。
-
- 測試
構(gòu)建測試類
- 測試
@RestController()
@RequestMapping("/something")
@RefreshScope //@RefreshScope 實(shí)現(xiàn)配置自動(dòng)更新
public class SaySomethingController {
@Value("${something:0}")
private Integer something;
@GetMapping("/getSomething")
public Integer getSomething(){
return something;
}
}
- 5.結(jié)果
2. 作用
在應(yīng)用開發(fā)中邮旷,我們通常要在生產(chǎn)、測試蝇摸、開發(fā)環(huán)境之間不斷的切換配置文件婶肩,手動(dòng)地在不同環(huán)境不同版本間去切換配置文件顯然是一種出錯(cuò)概率較大的做法,同時(shí)效率也不夠高貌夕。我們希望將不同環(huán)境律歼、版本之間的配置信息存儲(chǔ)起來,我們只需要在項(xiàng)目中寫明希望發(fā)布的版本和環(huán)境啡专,讓系統(tǒng)去讀取到對應(yīng)的配置文件险毁。注冊中心主要的工作就是做這么一件事情,通過namespace:group:service這樣一個(gè)三元組们童,將配置文件隔離開來畔况。如namespace按環(huán)境、service按servicename + 版本號(hào)來劃分慧库。當(dāng)服務(wù)連接至配置中心的時(shí)候问窃,拉取到對應(yīng)的配置文件,然后像從本地配置文件讀取一樣去初始化應(yīng)用完沪。
配置中心的第二個(gè)作用是:支持自定義擴(kuò)展的 Data Id 配置域庇,解決多個(gè)應(yīng)用間配置共享的問題,又可以支持一個(gè)應(yīng)用有多個(gè)配置文件覆积。假設(shè)應(yīng)用a和b有一部分相同的配置听皿,那么我們可以將這部分共享的配置信息單獨(dú)拎出來作為一個(gè)Data Id,然后各自不同的配置信息各自創(chuàng)建Data Id.在應(yīng)用中配置a和b的自定義擴(kuò)展Data Id配置即可,這樣少寫一部分重復(fù)的配置宽档。
第三個(gè)作用是: 支持應(yīng)用中可動(dòng)態(tài)刷新尉姨, 感知到最新的配置值,如例子中的@RefreshScope吗冤, 在應(yīng)用中感知到配置值的刷新之后又厉,自動(dòng)更新value。