使用 nacos 搭建注冊中心及配置中心


本文為博主原創,轉載請注明出處:

  在分布式微服務框架中,現在都流行使用 nacos 作為分布式框架的注冊中心與配置中心。當我們搭建一套spring boot 框架的時候,默認會將配置文件

放在 resources 的配置目錄下有bootstrap.yml 及application-dev.properties 配置文件進行管理,包括數據庫配置,端口配置等等。 

  現在使用 nacos 便可實現服務注冊 與 配置管理的功能。

  nacos 提供的中文網址連接如下:https://nacos.io/zh-cn/docs/quick-start-spring-boot.html

  具體步驟如下:

    1.在項目中引入nacos 以及spring boot web啟動的相關的依賴

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.5.RELEASE</version>
        <relativePath/>
    </parent>

    <properties>
        <java.version>1.8</java.version>
        <spring-boot.version>2.2.8.RELEASE</spring-boot.version>
        <spring-cloud.version>2.2.2.RELEASE</spring-cloud.version>
        <spring-nacos.version>2.2.1.RELEASE</spring-nacos.version>
    </properties>

    <dependencies>
        <!--web啟動-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>${spring-boot.version}</version>
        </dependency>
        <!--nacos-config-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
            <version>${spring-nacos.version}</version>
        </dependency>
        <!--nacos-discovery-->
       <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            <version>${spring-nacos.version}</version>
        </dependency>

    </dependencies>

 

  2.在項目配置 bootstrap.yml 文件中配置配置中心

  其中有一個默認組group的屬性,如果不配其默認值為 DEFAULT_GROUP 

spring:
  application:
    # 服務名稱盡量用-,不要用_,不要用特殊字符
    name: test2
  cloud:
    nacos:
      config:
        server-addr: 127.0.0.1:8848
        file-extension: yaml

  3.本地安裝並啟動 nacos

    nacos 默認的用戶名和密碼都為 nacos 。 在nacos 管理台進行配置中心的配置:

    配置管理 ---〉配置列表 ---- 〉點擊加號 進行創建

 

點擊加號進行配置  

 

  dataId 為項目框架中 bootstrap.yml 中的 spring.application.name 的配置值。

之於項目中 為什么要配置 bootstrap.yml 中配置application.name  以及項目啟動如何匹配對應的配置文件列表,其緣由在nacos 中文網址給了說明:

 

進行啟動,通過觀察項目啟動的端口號判斷是否正確使用配置中心的配置,若未正確加載,則項目啟動成功的端口號則為默認的8080,

若正確加載,則項目啟動的端口號為配置中心的端口號:

 

  4.配置中心使用命名空間區分環境

    spring boot 項目中,常使用 application-dev.properties, application-test.properties, application-prd.properties等方式指定不同環境下的配置文件。

  nacos配置中心可以創建命名空間,區分不同的環境類型。

 

 

創建之后,會在配置列表看到 dev 的 tab 列表

 

  在列表中創建對應的配置,我這邊創建的簡單的配置如下:

 

 

 

 

  在項目代碼的配置文件中指定命名空間以及 環境類型就可加載使用,在bootstrap.yaml中配置如下:

  namespace 的值為nacos 中命名空間的ID的值

spring:
  application:
    # 服務名稱盡量用-,不要用_,不要用特殊字符
    name: test1
  profiles:
    active: dev
  cloud:
    nacos:
      config:
        server-addr: 127.0.0.1:8848
        file-extension: yaml
        group: DEFAULT_GROUP
        namespace: 9f471483-5467-4077-81ae-b7ddb6cf2248

  本地項目啟動加載配置,通過啟動日志觀察服務端口便可判斷配置是否加載:

  

 

注意事項:

  1.在配置過程中,需要注意 pom中的 spring-boot-starter-parent 與  spring-boot-starter-web 兩者的版本號相差不能太大,相差太大,容易導致啟動報錯,某些類 ClassNotFoundException等

  2.需要在項目的配置文件中指定項目名稱

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM