SpringCloudAlibaba(三):使用Nacos作為配置中心

之前提到了這次從php技術(shù)棧遷移到j(luò)ava技術(shù)棧要解決的一個(gè)問題就是集中化配置管理。

我們?yōu)槭裁磿?huì)有配置中心的需求?

  1. 配置管理變更較為方便
  2. 合理控制配置的權(quán)限內(nèi)容

Nacos 控制臺(tái)增加配置文件

  1. 進(jìn)入Nacos管理界面,在【配置管理】-【配置列表】功能頁面點(diǎn)擊右上角的 + 號(hào)。
  2. 進(jìn)入 新建配置 頁面,填寫要新增的配置內(nèi)容

WARN:Data ID的默認(rèn)擴(kuò)展名為properties,如果需要使用yaml格式則需要指明是 .yaml

  1. 發(fā)布配置
    配置完成后點(diǎn)擊發(fā)布,即可在配置列表中看到剛才新增的配置

創(chuàng)建Nacos Config客戶端

  1. 新建項(xiàng)目,由于使用SpringCloudAlibaba直接引用相關(guān)依賴
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
  1. 創(chuàng)建應(yīng)用主類并且實(shí)現(xiàn)一個(gè)HTTP接口
  • 啟動(dòng)類
@SpringBootApplication
public class NacosConfigApplication {
    public static void main(String[] args) {
        SpringApplication.run(NacosConfigApplication.class,args);
    }
}
  • Controller
@RefreshScope
@RestController
@RequestMapping("/config")
public class ConfigController {
    @Value("${useLocalCache:false}")
    private boolean useLocalCache;

    @Value("${name}")
    private String name;

    @RequestMapping("/get")
    public boolean get() {
        return useLocalCache;
    }

    @RequestMapping("/name")
    public String name(){
        return name;
    }
}

@RefreshScope在這里的作用就是讓配置內(nèi)容支持動(dòng)態(tài)刷新,也就是當(dāng)應(yīng)用運(yùn)行中,我們在Nacos控制臺(tái)修改了配置之后這里也會(huì)動(dòng)態(tài)的更新。

  1. 項(xiàng)目bootstrap.properties配置服務(wù)名稱與Nacos地址
# 配置中心url
spring.cloud.nacos.config.server-addr=localhost:8848
# 配置中心展現(xiàn)的服務(wù)名稱
spring.application.name=nacos-config-example
#配置文件類型[TEXT,JSON,XML,YAML,HTML,Properties]
![](https://upload-images.jianshu.io/upload_images/7556614-e8819cd96f944fa6.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
spring.cloud.nacos.config.file-extension=properties
# 配置分組,當(dāng)前的業(yè)務(wù)基本選擇為某些的GROUP,可以基于業(yè)務(wù)來劃分不同的分組.
spring.cloud.nacos.config.group=DEFAULT_GROUP
# 默認(rèn)選擇的配置環(huán)境,當(dāng)前把環(huán)境劃分為4套, dev[開發(fā)環(huán)境],test[測試環(huán)境],pre[預(yù)發(fā)環(huán)境],prod[生產(chǎn)環(huán)境]
spring.profiles.active=dev

WARN 多環(huán)境配置中需要指定Nacos namespace的id,而不是指定namespace的名稱

  1. 啟動(dòng)應(yīng)用程序并進(jìn)行驗(yàn)證
  • 啟動(dòng)應(yīng)用
  • 發(fā)送請求測試配置是否生效
  • 修改配置進(jìn)行進(jìn)行動(dòng)態(tài)刷新
    進(jìn)入Nacos控制臺(tái)修改配置信息,name修改為bigData 再次進(jìn)行測試

再次發(fā)送請求

至此使用Nacos作為配置中心已經(jīng)完全搞定,并且也實(shí)現(xiàn)了多環(huán)境的配置。多環(huán)境有幾種方式實(shí)現(xiàn),但是我依然習(xí)慣使用namespace的方式來實(shí)現(xiàn)。
源碼:

https://github.com/CainGao/SpringCloudAlibabaExample  
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容