<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          SpringCloud+Nacos實現(xiàn)服務配置中心(Hoxton版本)

          共 6233字,需瀏覽 13分鐘

           ·

          2021-04-14 17:19

          點擊上方藍色字體,選擇“標星公眾號”

          優(yōu)質(zhì)文章,第一時間送達

            作者 |  懸鈴木pp

          來源 |  urlify.cn/7BJV3a

          76套java從入門到精通實戰(zhàn)課程分享

          關于 Nacos Spring Cloud 的詳細文檔請參看:Nacos Config和Nacos Discovery。

          通過 Nacos Server 和 spring-cloud-starter-alibaba-nacos-config 實現(xiàn)配置的動態(tài)變更。

          通過 Nacos Server 和 spring-cloud-starter-alibaba-nacos-discovery 實現(xiàn)服務的注冊與發(fā)現(xiàn)。

           

          前提條件

          首先下載安裝一個nacos server,然后啟動nacos server。下載和安裝流程查看https://www.cnblogs.com/ying-z/p/14630738.html

           

          新建配置

          可以通過兩種方式新建配置。

          方式一:訪問Nacos Server頁面手動創(chuàng)建。

          首先登錄Nacos Server,地址一般為http://127.0.0.1:8848/nacos/index.html。

          然后進入配置列表,點擊新增配置按鈕,進入新增配置頁面。

           

           

           

           

           注意:

          這里我創(chuàng)建Data Id為nacos-config.properties的配置文件,其中Group為默認的DEFAULT_GROUP,配置文件的格式也相應的選擇Properties,配置內(nèi)容中添加配置nacos.config=hello_nacos,如圖所示。

           

           

           方式二:通過調(diào)用Nacos Open API向Nacos Server發(fā)布配置:dataId為nacos-config.properties,內(nèi)容為nacos.config=hello_nacos

          curl -X POST "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos-config.properties&group=DEFAULT_GROUP&content=nacos.config=hello_nacos"


          創(chuàng)建服務應用 

          (1)使用SpringBoot,創(chuàng)建一個名為nacos-config的子工程。

          (2)pom.xml文件添加如下依賴。

          <parent>
              <groupId>org.springframework.boot</groupId>
              <artifactId>spring-boot-starter-parent</artifactId>
              <version>2.2.5.RELEASE</version>
              <relativePath/> <!-- lookup parent from repository -->
          </parent>
          <dependencyManagement>
              <dependencies>
                <!-- 聲明Spring cloud的版本為Hoxton.SR3-->
                <dependency>
                  <groupId>org.springframework.cloud</groupId>
                  <artifactId>spring-cloud-dependencies</artifactId>
                  <version>Hoxton.SR3</version>
                  <type>pom</type>
                  <scope>import</scope>
                </dependency>
                <!-- 聲明Spring cloud alibaba版本為2.1.0.RELEASE -->
                <dependency>
                  <groupId>com.alibaba.cloud</groupId>
                  <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                  <version>2.2.1.RELEASE</version>
                  <type>pom</type>
                  <scope>import</scope>
                </dependency>
              </dependencies>
          </dependencyManagement>
          <dependencies>
              <!-- 聲明nacos-discovery依賴 -->
              <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
              </dependency>
              <!-- 聲明nacos-config依賴 -->
              <dependency>
                  <groupId>com.alibaba.cloud</groupId>
                  <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
              </dependency>
          </dependencies>

          備注:如果不需要注冊該服務,也可以去掉nacos-discovery依賴。

          注意:版本2.1.x.RELEASE 對應的是 Spring Boot 2.1.x 版本。版本 2.0.x.RELEASE 對應的是 Spring Boot 2.0.x 版本,版本 1.5.x.RELEASE 對應的是 Spring Boot 1.5.x 版本。

          更多版本對應關系參考:版本說明 Wiki

          (3)修改application.properties添加相關配置

          server.port=9002
          spring.application.name=nacos-config
          spring.application.cloud.nacos.discovery.server-addr=127.0.0.1:8848

          (4)創(chuàng)建配置文件,文件名為bootstrap.properties。并在bootstrap.properties中配置Nacos server的地址和應用名。

          注意:文件名是bootstrap.xxx,而不是application或者其他。因為Nacos同Spring Cloud Config一樣,在項目初始化時,要保證先從配置中心進行配置拉取,拉取配置之后,才能保證項目的正常啟動。SpringBoot中配置文件的加載是存在優(yōu)先級順序的,bootstrap優(yōu)先級高于application。

          這里的配置文件類型可以根據(jù)個人習慣選擇,我這里用的時properties類型,配置內(nèi)容如下:

          #服務名稱
          spring.application.name=nacos-config
          #指定注冊中心的地址。如果你不需要注冊該服務,也可以去掉該項,并刪除discovery依賴。
          spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
          #指定配置中心的地址。
          spring.cloud.nacos.config.server-addr=127.0.0.1:8848
          #指定配置中心中配置文件的格式。
          #spring.cloud.nacos.config.file-extension=properties

          之所以需要配置spring.application.name,是因為它是構(gòu)成Nacos配置管理dataId字段的一部分。 

          在Nacos-Server配置管理,其中Data ID它的定義規(guī)則是: 

          ${prefix}-${spring.profile.active}.${file-extension}

          prefix:默認為spring.application.name的值,也可以通過配置項spring.cloud.nacos.config.prefix來配置。

          spring.profile.active:即為當前環(huán)境對應的profile,詳情可以參考 Spring Boot文檔。可以通過配置項spring.profile.active來配置。當spring.profile.active為空時,對應的連接符 - 也將不存在,dataId的拼接格式變成 ${prefix}.${file-extension}。

          file-exetension:為配置內(nèi)容的數(shù)據(jù)格式,可以通過配置項spring.cloud.nacos.config.file-extension來配置。目前只支持properties和yaml類型。

          (5)創(chuàng)建對外接口ConfigController,從nacos中讀取配置。

          @RefreshScope
          @RestController
          public class ConfigController {
              @Value("${nacos.config}")
              private String configValue;

              @RequestMapping("/config/get")
              public String get() {
                  return configValue;
              }
          }

          @RefreshScope:Spring Cloud的原生注解,可以使當前類下的配置支持動態(tài)更新。

          @Value:通過@Value注解,去讀取key為nacos.config的配置的值,并通過/config/get接口返回。

          到此代碼部分的工作已經(jīng)完成。

           

          啟動服務進行測試

          (1)保證Nacos-Server已經(jīng)啟動。

          (2)檢查Nacos-Server中配置列表中是否已經(jīng)添加相應的配置文件。

          (3)啟動nacos-config項目。

          (4)啟動成功后在Nacos控制臺中可以看到我們注冊的服務。

          (5)此時調(diào)用接口進行測試http://127.0.0.1:9002/config/get,可以看到返回結(jié)果。

           

           此時說明已經(jīng)成功讀取到配置。

          (6)下面我將Nacos-Server上的配置修改為hello_lars,看看能否動態(tài)更新。修改Nacos-Server上的配置后,刷新http://127.0.0.1:9002/config/get頁面,結(jié)果更新為新的配置了。

           

          可以看到我通過Nacos-server的控制臺進行配置的修改,客戶端服務nacos-config也相應的進行熱更新。





          粉絲福利:Java從入門到入土學習路線圖

          ??????

          ??長按上方微信二維碼 2 秒


          感謝點贊支持下哈 

          瀏覽 26
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  校花被日视频网站 | a免费视频 | 婷婷国产在线视频 | 成人在线中文字幕视频 | 伊人婷婷五月天 |