1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        快速搭建 SpringCloud Alibaba Nacos 配置中心!

        共 5101字,需瀏覽 11分鐘

         ·

        2022-08-29 12:42

        作者 | 磊哥

        來源 | Java中文社群(ID:javacn666)

        轉(zhuǎn)載請(qǐng)聯(lián)系授權(quán)(微信ID:GG_Stone)

        Spring Cloud Alibaba 是阿里巴巴提供的一站式微服務(wù)開發(fā)解決方案,目前已被 Spring Cloud 官方收錄。而 Nacos 作為 Spring Cloud Alibaba 的核心組件之一,提供了兩個(gè)非常重要的功能:服務(wù)注冊(cè)中心(服務(wù)注冊(cè)和發(fā)現(xiàn))功能,和統(tǒng)一配置中心功能。

        Nacos 簡(jiǎn)介

        Nacos 致力于幫助開發(fā)者發(fā)現(xiàn)、配置和管理微服務(wù)。它提供了一組簡(jiǎn)單易用的特性集,幫助開發(fā)者快速實(shí)現(xiàn)動(dòng)態(tài)服務(wù)發(fā)現(xiàn)、服務(wù)配置、服務(wù)元數(shù)據(jù)及流量管理。

        Nacos 特性介紹

        Nacos 具有以下特性:

        • 服務(wù)發(fā)現(xiàn)和服務(wù)健康監(jiān)測(cè):支持基于DNS和基于RPC的服務(wù)發(fā)現(xiàn),支持對(duì)服務(wù)的實(shí)時(shí)的健康檢查,阻止向不健康的主機(jī)或服務(wù)實(shí)例發(fā)送請(qǐng)求。
        • 動(dòng)態(tài)配置服務(wù):動(dòng)態(tài)配置服務(wù)可以讓您以中心化、外部化和動(dòng)態(tài)化的方式管理所有環(huán)境的應(yīng)用配置和服務(wù)配置。
        • 動(dòng)態(tài) DNS 服務(wù):動(dòng)態(tài) DNS 服務(wù)支持權(quán)重路由,讓您更容易地實(shí)現(xiàn)中間層負(fù)載均衡、更靈活的路由策略、流量控制以及數(shù)據(jù)中心內(nèi)網(wǎng)的簡(jiǎn)單 DNS 解析服務(wù)。
        • 服務(wù)及其元數(shù)據(jù)管理:支持從微服務(wù)平臺(tái)建設(shè)的視角管理數(shù)據(jù)中心的所有服務(wù)及元數(shù)據(jù)。

        配置中心功能實(shí)現(xiàn)

        1.添加依賴

        創(chuàng)建一個(gè)新的 Spring Boot 項(xiàng)目,添加 nacos config 和 web(非必須)框架依賴,如下圖所示:

        PS:添加 web 依賴主要作用是為了方便后面代碼測(cè)試。

        如果是老項(xiàng)目,那么需要手動(dòng)添加 nacos config 的依賴,修改 pom.xml 文件,添加以下內(nèi)容:

        <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>

        2.配置 Nacos Config 信息

        在應(yīng)用的 /src/main/resources/ 目錄下,創(chuàng)建引導(dǎo)配置文件 bootstrap.yml(或 bootstrap.properties),添加以下 Nacos Config 配置信息:

        spring:
          application:
            name: nacosconfig # 項(xiàng)目名稱和 nacos DataId 相匹配
          cloud:
            nacos:
              config:
                server-addr: 127.0.0.1:8848 # nacos 地址和端口
                file-extension: yaml # 獲取配置文件的格式:yaml
                username: nacos # nacos 認(rèn)證用戶名
                password: nacos # nacos 認(rèn)證密碼
        server:
          port: 9001 # 項(xiàng)目啟動(dòng)端口

        3.編寫代碼讀取配置文件

        創(chuàng)建一個(gè)控制器,使用 @Value 注解讀取配置信息,讀取方式和 Spring Boot 讀取本地配置代碼一致:

        import org.springframework.beans.factory.annotation.Value;
        import org.springframework.web.bind.annotation.GetMapping;
        import org.springframework.web.bind.annotation.RestController;

        @RestController
        public class TestController {
            // 從 nacos 中讀取配置項(xiàng) config.info
            @Value("${config.info}")
            private String configInfo;

            @GetMapping("/getconfig")
            public String getConfigInfo(){
                return configInfo;
            }
        }

        4.Nacos 控制臺(tái)添加配置信息

        在 Nacos 控制臺(tái)創(chuàng)建并設(shè)置配置文件,執(zhí)行步驟如下所示。首先,在配置列表中點(diǎn)擊“添加”按鈕,如下圖所示:進(jìn)入配置頁面,新建 YAML 或 Properties 配置文件,如下圖所示:以上關(guān)鍵參數(shù)的含義和規(guī)則說明如下。

        ① Data ID

        Data ID 的拼接格式如下:

        {spring.profiles.active} . ${file-extension}

        其中

        • prefix 默認(rèn)為 spring.application.name 的值,也可以通過配置項(xiàng) spring.cloud.nacos.config.prefix 來配置。
        • spring.profiles.active 即為當(dāng)前環(huán)境對(duì)應(yīng)的 profile,當(dāng) active profile 為空時(shí),對(duì)應(yīng)的連接符 - 也將不存在,dataId 的拼接格式變成 {file-extension}
        • file-extension 為配置內(nèi)容的數(shù)據(jù)格式,可以通過配置項(xiàng) spring.cloud.nacos.config.file-extension 來配置。目前只支持 properties 類型。

        ② Group

        Group 分組選項(xiàng),主要是用來隔離不同的配置項(xiàng)目的,它的默認(rèn)值為 DEFAULT_GROUP,可以通過 spring.cloud.nacos.config.group 配置。

        配置好相應(yīng)的內(nèi)容之后,點(diǎn)擊底部的“發(fā)布”按鈕即可,添加成功之后會(huì)自動(dòng)返回配置列表,如下圖所示:啟動(dòng)項(xiàng)目,查看執(zhí)行結(jié)果如下圖所示:

        動(dòng)態(tài)刷新功能

        動(dòng)態(tài)刷新功能是指:在 Nacos 配置中心修改的配置內(nèi)容,在不重啟項(xiàng)目的前提下可以實(shí)時(shí)的讀取到。

        Nacos 默認(rèn)會(huì)為所有獲取數(shù)據(jù)成功的 Nacos 的配置項(xiàng)添加了監(jiān)聽功能,在監(jiān)聽到服務(wù)端配置發(fā)生變化時(shí)會(huì)實(shí)時(shí)觸發(fā) org.springframework.cloud.context.refresh.ContextRefresher 的 refresh 方法。

        如果需要對(duì) Bean 進(jìn)行動(dòng)態(tài)刷新,需要參照 Spring 和 Spring Cloud 規(guī)范,推薦給類添加 @RefreshScope 或 @ConfigurationProperties 注解。

        以上面的案例來說,如果需要添加動(dòng)態(tài)刷新功能,只需要在控制器上添加 @RefreshScope 注解即可,實(shí)現(xiàn)代碼如下:

          import org.springframework.beans.factory.annotation.Value;
          import org.springframework.cloud.context.config.annotation.RefreshScope;
          import org.springframework.web.bind.annotation.GetMapping;
          import org.springframework.web.bind.annotation.RestController;

        @RestController
        @RefreshScope // 開啟配置文件的動(dòng)態(tài)刷新
        public class TestController {
            // 從 nacos 中讀取配置項(xiàng) config.info
            @Value("${config.info}")
            private String configInfo;

            @GetMapping("/getconfig")
            public String getConfigInfo(){
                return configInfo;
            }

        }

        最終的實(shí)現(xiàn)結(jié)果如下:

        亮點(diǎn)功能介紹

        Nacos 配置中心有兩個(gè)很好用的功能:一個(gè)是修改配置時(shí)的內(nèi)容對(duì)比,讓您一眼就可以看出此次修改的配置內(nèi)容,防止誤操作;第二個(gè)是歷史版本一鍵回滾功能,讓您能夠輕松的實(shí)現(xiàn)溯源和回滾配置文件。

        1.配置文件對(duì)比

        在修改配置文件時(shí),會(huì)先出現(xiàn)一個(gè)配置文件的對(duì)比預(yù)覽頁面,如下圖所示:這樣您就可以清楚的看到此次修改和添加的具體配置信息了,從而減少了誤改的風(fēng)險(xiǎn)。

        2.歷史版本一鍵回滾

        Nacos 通過提供配置版本管理及其一鍵回滾能力,幫助用戶改錯(cuò)配置的時(shí)候能夠快速恢復(fù),降低微服務(wù)系統(tǒng)在配置管理上的一定會(huì)遇到的可用性風(fēng)險(xiǎn)。

        項(xiàng)目源碼

        https://gitee.com/mydb/spring-cloud-alibaba-example/tree/master/spring-cloud-nacos-config

        總結(jié)

        Nacos 作為 Spring Cloud Alibaba 的核心組件之一,提供了兩個(gè)非常重要的功能:注冊(cè)中心和配置中心功能。其中配置中心是將配置文件從本地化,變更為云端化的過程(Nacos 服務(wù)端),這樣既能保證配置文件的安全性,又能實(shí)時(shí)的修改、查看、回滾和動(dòng)態(tài)刷新配置文件了。

        參考文檔

        Nacos官方文檔:https://nacos.io/zh-cn/docs/what-is-nacos.html

        是非審之于己,毀譽(yù)聽之于人,得失安之于數(shù)。

        公眾號(hào):Java中文社群

        Java面試合集:https://gitee.com/mydb/interview


        往期推薦

        Spring Cloud Alibaba Nacos 的 2 種健康檢查機(jī)制!


        玩轉(zhuǎn)Nacos參數(shù)配置!多圖勿點(diǎn)


        SpringCloud Ribbon中的7種負(fù)載均衡策略!


        瀏覽 86
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            大鸡吧插逼的视频网站 | 翔田千里vs黑人播放 | 看美女草逼 | 精品久久免费看 | 曰韩特黄A级免费视频 | 撸一撸干一干 | 成人免费ZN码婬片在线观看免费 | 阿娇双腿岔开实干13分钟 | 丁香六月婷婷综合 | 庄思敏三级未删减电影 |