天天看點

【Nacos】內建注冊中心功能

添加依賴

沒有引入SpringCloud依賴

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>Finchley.SR1</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-alibaba-dependencies</artifactId>
            <version>0.2.2.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    </dependency>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.2</version>
        <optional>true</optional>
    </dependency>
</dependencies>
           

已經引入SpringCloud依賴,隻是整合Nacos

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
           

添加配置

bootstrap.yml

spring:
  application:
    name: act-model-web
  cloud:
    nacos:
      discovery:
        server-addr: ${NACOS_HOST:act-nacos}:${NACOS_PORT:8769}
        //服務注冊的IP
        ip: ${REGISTER_IP}
        //網卡名,不配置則取第一塊網卡名
        network-interface: ${NETWORK}
  profiles:
    active: dev


           

其他配置項

配置項 Key 預設值 說明
服務端位址 spring.cloud.nacos.discovery.server-addr Nacos Server 啟動監聽的ip位址和端口
服務名 spring.cloud.nacos.discovery.service ${spring.application.name} 給目前的服務命名
權重 spring.cloud.nacos.discovery.weight 1 取值範圍 1 到 100,數值越大,權重越大
網卡名 spring.cloud.nacos.discovery.network-interface 當IP未配置時,注冊的IP為此網卡所對應的IP位址,如果此項也未配置,則預設取第一塊網卡的位址
注冊的IP位址 spring.cloud.nacos.discovery.ip 優先級最高
注冊的端口 spring.cloud.nacos.discovery.port -1 預設情況下不用配置,會自動探測
命名空間 spring.cloud.nacos.discovery.namespace 常用場景之一是不同環境的注冊的區分隔離,例如開發測試環境和生産環境的資源(如配置、服務)隔離等。
AccessKey spring.cloud.nacos.discovery.access-key 當要上阿裡雲時,阿裡雲上面的一個雲賬号名
SecretKey spring.cloud.nacos.discovery.secret-key 當要上阿裡雲時,阿裡雲上面的一個雲賬号密碼
Metadata spring.cloud.nacos.discovery.metadata 使用Map格式配置,使用者可以根據自己的需要自定義一些和服務相關的中繼資料資訊
日志檔案名 spring.cloud.nacos.discovery.log-name
叢集 spring.cloud.nacos.discovery.cluster-name DEFAULT 配置成Nacos叢集名稱
接入點 spring.cloud.nacos.discovery.enpoint UTF-8 地域的某個服務的入口域名,通過此域名可以動态地拿到服務端位址
是否內建Ribbon ribbon.nacos.enabled true 一般都設定成true即可

添加注解

在啟動類上添加@EnableDiscoveryClient,開啟服務發現功能子產品

大坑

注意Sring Cloud和Spring Boot以及Nacos的版本對應問題,版本不相容回導緻項目啟動正常,但是服務未成功注冊到Nacos上(項目啟動日志上不出現o.s.c.a.n.registry.NacosServiceRegistry : nacos registry, act-ldsm-web 172.31.131.77:50001 register finished這一行日志)

版本對應關系

Spring Cloud Spring Boot Spring Cloud Alibaba
Greenwich 2.1.x 0.2.2(還沒有RELEASE)
Finchley 2.0.x 0.2.1
Edgware 1.5.x 0.1.1
Dalston 1.5.x 0.1.1

繼續閱讀