日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Nacos服务的注册,服务的调用,修改配置文件自动刷新和命名空间

發布時間:2025/3/15 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Nacos服务的注册,服务的调用,修改配置文件自动刷新和命名空间 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、nacos配置中心的配置

使用nacos作為配置中心,不需要再到遠端倉庫拉取配置文件。
詳細的nacos控制臺配置參見官方鏈接

二、服務的注冊

  • 創建項目并引入依賴
  • <!--引入nacos client的依賴--> <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency>
  • 配置注冊地址
  • server.port=8789 #指定當前服務端口 spring.application.name=nacosclient#指定服務名稱 spring.cloud.nacos.server-addr=localhost:8848#指定nacos服務地址 spring.cloud.nacos.discovery.server-addr=${spring.cloud.nacos.server-addr} #指定注冊中心地址 management.endpoints.web.exposure.include=*#暴露所有web端點
  • 加入啟動服務注冊注解
  • @SpringBootApplication @RefreshScope //實現nacos自動配置刷新 @EnableDiscoveryClient public class Application {public static void main(String[] args) {SpringApplication.run(Configclient9066Application.class, args);} }
  • 查看nacos的服務列表
  • 已經注冊到nacos上

    三、服務的調用(基于OpenFeign)

    參考另一篇文章

    四、修改配置文件自動刷新

    我們知道,以前基于springBus和git遠程倉庫的文件配置,如果配置文件有修改,我們都要手動發送一個refresh請求,手動刷新,而使用nacos作為配置中心,可以做到修改配置文件時自動刷新配置。默認情況下nacos已經實現了自動配置刷新功能,如果需要刷新配置直接在控制器中加入@RefreshScope注解即可。

    1.控制器加入@RefreshScope

    @RestController @RefreshScope //實現nacos自動配置刷新 @Slf4j public class TestController {@Value("${user.name}")private String name;@GetMapping("/test/test")public String test(){log.info("當前獲取配置中name為: [{}]",name);return "當前獲取配置中name為:"+name;} }
  • 配置文件告訴程序到遠程nacos服務器拉取配置信息
  • #nacos服務器鏈接 spring.cloud.nacos.server-addr=http://xxx.xxx.xxx.xxx:8848 spring.cloud.nacos.config.server-addr=${spring.cloud.nacos.server-addr} #設置group spring.cloud.nacos.config.group=DEFAULT_GROUP #服務名 spring.application.name=config spring.profiles.active=prod #配置文件格式 spring.cloud.nacos.config.file-extension=properties

    nacos配置文件:


    訪問:http://localhost:9066/test/test

    修改nacos配置文件

    再次訪問:

    這樣就實現了自動刷新

    五、命名空間

    namespace命名空間是nacos針對于企業級開發設計用來針對于不同環境的區分,比如正在企業開發時有測試環境,生產環境,等其他環境,因此為了保證不同環境配置實現隔離,提出了namespace的概念,默認在nacos中存在一個public命名空間所有配置在沒有指定命名空間時都在這個命名空間中獲取配置,在實際開發時可以針對于不能環境創建不同的namespace空間。默認空間不能刪除!
    一般來說,對于命名空間,我們有兩種分配形式:

    • 第一種:項目名稱作為命名空間,服務名稱作為group,dataid用來區分不同的生產環境
    • 第二種:生產環境作為命名空間,項目名作為group,dataid用來區分不同的服務名稱

    筆者在這里建議使用第二種,使用方式如下:

  • 命名空間,如下:筆者建立了3個命名空間,分別用于部署,開發和測試環境,對應的配置如下:


    可以看到筆者·分別配置了prod環境下,app1和app2兩個不同的項目的服務,也配置了dev環境下,app1和app2兩個不同的項目的服務。注意:users-dev、products-dev等配置文件的前綴,一定要與yaml中配置的服務名稱一致。#Nacos 默認會在啟動的時候去配置中心上讀取名為
  • ${spring.application.name}-${spring.profile.active}.${spring.cloud.nacos.config.file-extension}文件

    大致的遠程配置信息如下:

  • 引用不同的命名空間
    • 測試類
    @RestController @RefreshScope //實現nacos自動配置刷新 @Slf4j public class TestController {@Value("${user.name}")private String name;@GetMapping("/test/test")public String test(){log.info("當前獲取配置中name為: [{}]",name);return "當前獲取配置中name為:"+name;} }
    • 配置文件bootstrap.properties
    # config server addr spring.cloud.nacos.server-addr=http://xxx.xxx.xxx.xxx:8848 spring.cloud.nacos.config.server-addr=${spring.cloud.nacos.server-addr}#prod命名空間 spring.cloud.nacos.config.namespace=1238cda6-4a25-45ef-8945-d2323d77db53 #dev命名空間 #spring.cloud.nacos.config.namespace=23eaa036-ff00-4888-b411-cd0f483318a7#切換不同的項目 spring.cloud.nacos.config.group=app2#切換不同的微服務 spring.application.name=users#切換不同的環境 spring.profiles.active=prod#切換不同的配置文件后綴 spring.cloud.nacos.config.file-extension=properties

    訪問:localhost:9092/test/test

    接下來只要在配置文件中,切換不同的環境,不同的項目,不同的服務,就能得到不同的配置參數。

    六、將服務所有配置移至nacos

    以配置gateway為例:

    • properties方式
    # config server addr spring.cloud.nacos.server-addr=http://xxx:8848 spring.cloud.nacos.config.server-addr=${spring.cloud.nacos.server-addr} #Nacos 默認會在啟動的時候去配置中心上讀取名為 #${spring.application.name}-${spring.profile.active}.${spring.cloud.nacos.config.f#ile-extension}文件 #prod命名空間 spring.cloud.nacos.config.namespace=8fcc7735-0589-401b-bf38-b791c21f52d9 spring.cloud.nacos.discovery.namespace=8fcc7735-0589-401b-bf38-b791c21f52d9 #切換組(不同的app) spring.cloud.nacos.config.group=GATEWAY_TEST_GROUP #服務名稱 spring.application.name=gateway #切換不同的生產環境 spring.profiles.active=dev #指定的配置文件格式 spring.cloud.nacos.config.file-extension=yaml spring.cloud.nacos.config.enabled=true
    • yml方式(注意discovery和config都要配置addr和namespace)
    spring:application:name: gatewayprofiles:active: devcloud:nacos:config:namespace: "8fcc7735-0589-401b-bf38-b791c21f52d9"group: "GATEWAY_TEST_GROUP"file-extension: yamlenabled: trueserver-addr: xxx:8848discovery:namespace: "8fcc7735-0589-401b-bf38-b791c21f52d9"server-addr: xxx:8848

    遠程nacos的配置文件:

    這樣以后再配合nacos的配置自動刷新功能,就可以比較方便地修改項目配置了

    總結

    以上是生活随笔為你收集整理的Nacos服务的注册,服务的调用,修改配置文件自动刷新和命名空间的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。