中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SpringCloud如何整合Nacos配置中心

發布時間:2021-12-22 16:56:54 來源:億速云 閱讀:335 作者:小新 欄目:大數據

這篇文章給大家分享的是有關SpringCloud如何整合Nacos配置中心的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

1.傳統配置方式

  • application.properties文件中定義兩個配置:
member.nickname = "悟空聊架構"
member.age = "18"
  • 示例控制器中定義私有變量nickname和age,@value代表從配置中取值
@Value("${member.nickname}")
private  String nickname;

@Value("$member.age")
private  Integer age;
  • 示例控制器中定義方法:獲取nick和age的值
@RequestMapping("/test-local-config")
public R testLocalConfig() {
   return R.ok().put("nickname", nickname).put("age", age);
}
  • 測試結果
SpringCloud如何整合Nacos配置中心  
mark

總結:從配置文件中獲取配置。

這種方式的缺點是什么呢?如果要修改配置參數,則需要重新啟動服務。如果服務很多,則需要重啟所有服務,非常不方便。

有沒有什么辦法不停服務修改配置而且使其生效呢?

答案:有的,用Spring Cloud Alibaba的Nacos 組件就可以完成。

2.引入Nacos依賴

PassJava-Common項目的pom.xml文件引入Spring Cloud Alibaba Nacos Config依賴

<dependency>
   <groupId>com.alibaba.cloud</groupId>
   <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

3.配置Nacos元數據

  • passjava-member 添加 /src/main/resources/bootstrap.properties 配置文件(注意:bootstrap.properties 優先級高于其他配置文件)

  • 配置 Nacos Config 元數據

SpringCloud如何整合Nacos配置中心  
bootstrap.properties
spring.application.name=passjava-member
spring.cloud.nacos.config.server-addr=127.0.0.1:8848

4.Nacos后臺新增配置

Data ID: passjava-member.properties

Group: DEFAULT_GROUP

配置格式:

member.nick="悟空"
member.age=10
SpringCloud如何整合Nacos配置中心  
Nacos后臺新增配置

5.開啟動態刷新配置功能

添加注解@RefreshScope開啟動態刷新配置功能

@RefreshScope
@RestController
@RequestMapping("member/sample")
publicclass SampleController {}

可以從控制臺看到日志信息:

Refresh keys changed: [member.age]
2020-04-19 23:34:07.154  INFO 8796 --- [-127.0.0.1_8848] c.a.nacos.client.config.impl.CacheData   : [fixed-127.0.0.1_8848] [notify-ok] dataId=passjava-member.properties, group=DEFAULT_GROUP, md5=df136e146c83cbf857567e75acb11e2b, listener=com.alibaba.cloud.nacos.refresh.NacosContextRefresher$1@4f49b78b
2020-04-19 23:34:07.154  INFO 8796 --- [-127.0.0.1_8848] c.a.nacos.client.config.impl.CacheData   : [fixed-127.0.0.1_8848] [notify-listener] time cost=529ms in ClientWorker, dataId=passjava-member.properties, group=DEFAULT_GROUP, md5=df136e146c83cbf857567e75acb11e2b, listener=com.alibaba.cloud.nacos.refresh.NacosContextRefresher$1@4f49b78b

member.age 更新了,通知了member服務,刷新了配置。

對應的配置id為passjava-member.properties,分組為DEFAULT_GROUP

監聽器為com.alibaba.cloud.nacos.refresh.NacosContextRefresher

6.測試結果

訪問:http://localhost:10000/member/sample/test-local-config

結果:nickname和age和Nacos后臺配置一致

結論:只用在Nacos后臺改配置即可實時修改配置。

注意:Nacos的配置項優先級高于application.propertite里面的配置。

SpringCloud如何整合Nacos配置中心  
測試結果

7.命名空間

我們現在有5個微服務,每個微服務用到的配置可能都不一樣,那不同微服務怎么樣獲取自己微服務的配置呢?

這里可以用到命名空間,我們針對每個微服務,都創建一個命名空間。

  • 創建命名空間

    SpringCloud如何整合Nacos配置中心    
    創建命名空間
# 創建5個命名空間
passjava-channel
passjava-content
passjava-member
passjava-question
passjava-study
SpringCloud如何整合Nacos配置中心  
命名空間
  • 命名空間下創建配置

    我們打開配置列表菜單,可以看到有五個命名空間。

    SpringCloud如何整合Nacos配置中心    
    命名空間下創建配置

選中passjava-channel命名空間,然后新增配置項,與之前新增配置的步驟一致,也可以通過克隆命名空間來克隆配置。

SpringCloud如何整合Nacos配置中心  
克隆配置
  • 修改指定的命名空間

    bootstrap.properties配置命名空間

    spring.cloud.nacos.config.namespace=passjava-member
  • 測試配置是否生效

    修改passjava-member.properties的配置內容

    SpringCloud如何整合Nacos配置中心    
    passjava-member.properties

    重啟member服務

    訪問方法:/member/sample/test-local-config

    執行結果:

    {
       "msg": "success",
       "code": 0,
       "nickname": "\"悟空member\"",
       "age": 30
    }

    說明獲取的是passjava-member命名空間的配置

8.分組

如果我們有多套環境,比如開發環境,測試環境,生產環境,每一套環境的配置參數不一樣,那配置中心該如何配置呢?

我們可以使用配置中心的分組功能。每一套環境都是一套分組。

  • 首先創建一套dev環境配置項,然后克隆配置到test和prod環境
SpringCloud如何整合Nacos配置中心  
dev環境
SpringCloud如何整合Nacos配置中心  
dev、test、prod分組
  • bootstrap.properties配置當前使用的分組:prod
spring.cloud.nacos.config.group=prod
  • 測試獲取生產環境配置

    {
       "msg": "success",
       "code": 0,
       "nickname": "\"悟空-prod\"",
       "age": 10
    }

    可以看到獲取到的是prod分組的配置

9.多配置集

我們可以將application.yml文件中的datasource、mybatis-plus等配置進行拆解,放到配置中心。group可以創建3套,dev/test/prod。

1.配置中心新建datasource.yml 配置

SpringCloud如何整合Nacos配置中心  
datasource.yml 配置

2.配置中心新建mybatis.yml 配置

SpringCloud如何整合Nacos配置中心  
mybatis.yml配置

3.配置中心新建more.yml 配置

SpringCloud如何整合Nacos配置中心  
more.yml配置

4.克隆dev環境配置到test和prod環境

SpringCloud如何整合Nacos配置中心  
mark

5.bootstrap.properties增加nacos配置,application.yml注釋配置

spring.application.name=passjava-member
spring.cloud.nacos.config.server-addr=127.0.0.1:8848

spring.cloud.nacos.config.namespace=passjava-member
spring.cloud.nacos.config.group=prod

spring.cloud.nacos.config.extension-configs[0].data-id=datasource.yml
spring.cloud.nacos.config.extension-configs[0].group=dev
spring.cloud.nacos.config.extension-configs[0].refresh=true

spring.cloud.nacos.config.extension-configs[1].data-id=mybatis.yml
spring.cloud.nacos.config.extension-configs[1].group=dev
spring.cloud.nacos.config.extension-configs[1].refresh=true

spring.cloud.nacos.config.extension-configs[2].data-id=more.yml
spring.cloud.nacos.config.extension-configs[2].group=dev
spring.cloud.nacos.config.extension-configs[2].refresh=true

6.測試配置是否生效

  • 測試passjava-member.properties和more.yml配置是否生效

請求url:http://localhost:10000/member/sample/test-local-config

返回配置的nick和age,且端口是10000,且member服務注冊到注冊中心

{
   "msg": "success",
   "code": 0,
   "nickname": "\"悟空-prod1\"",
   "age": 22
}
  • 測試datasource.yml和mybatis.yml配置是否生效

請求url:http://localhost:10000/member/member/list

返回數據庫查詢結果

{
   "msg": "success",
   "code": 0,
   "page": {
       "totalCount": 0,
       "pageSize": 10,
       "totalPage": 0,
       "currPage": 1,
       "list": []j
   }
}

說明以上配置都生效了。

感謝各位的閱讀!關于“SpringCloud如何整合Nacos配置中心”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

无为县| 唐海县| 红河县| 青田县| 景泰县| 泊头市| 云林县| 息烽县| 衢州市| 江达县| 肇庆市| 鸡东县| 抚宁县| 江津市| 海盐县| 仲巴县| 襄汾县| 奉新县| 饶阳县| 建宁县| 会东县| 墨竹工卡县| 分宜县| 洛宁县| 南雄市| 丹寨县| 吴忠市| 南投县| 合水县| 石嘴山市| 馆陶县| 板桥市| 静宁县| 盐亭县| 大悟县| 垦利县| 大兴区| 白河县| 铜鼓县| 科技| 兴宁市|