Cloud Alibaba --Nacos


Cloud  Alibaba --Nacos

 

簡單一句話:Nacos就是注冊中心 + 配置中心的組合,相當於Eureka + config + Bus;

Nacos官網:https://nacos.io/zh-cn/docs/what-is-nacos.html

下載安裝:github下載太慢,推薦百度網盤下載(1.1.4):

zip:

鏈接:https://pan.baidu.com/s/1pJL1dmABECVpPAwyFDJvqg
提取碼:4otz

gz:

鏈接:https://pan.baidu.com/s/1EJYpX-1ZwSRezIFfNQUQ0Q
提取碼:vsmz

安裝完成啟動Nacos

 

訪問:http://localhost:8848/nacos

 默認賬號:nacos; 密碼:nacos

 

一、Nacos服務注冊與發現

maven依賴

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

其他項目可能用上的依賴:

 <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
View Code

 

yml配置:

server:
  port: 9001


spring:
  application:
    name: cloud-alibaba-nacos-provider
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848
management:
  endpoints:
    web:
      exposure:
        include: '*'

有關Nacos Discovery Starter配置的更多信息

組態 默認值 描述

服務器地址

spring.cloud.nacos.discovery.server-addr

 

Nacos服務器偵聽器的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地址。

注冊IP地址

spring.cloud.nacos.discovery.ip

 

最高優先級

注冊端口

spring.cloud.nacos.discovery.port

-1

默認情況下將自動檢測。不需要配置。

命名空間

spring.cloud.nacos.discovery.namespace

 

一個典型的場景是隔離針對不同環境的服務注冊,例如測試和生產環境之間的資源(配置,服務等)隔離。

快捷鍵

spring.cloud.nacos.discovery.access-key

 

阿里雲帳戶訪問密鑰

密鑰

spring.cloud.nacos.discovery.secret-key

 

阿里雲賬戶密鑰

元數據

spring.cloud.nacos.discovery.metadata

 

您可以使用地圖格式為服務定義一些元數據

日志文件名

spring.cloud.nacos.discovery.log-name

   

集群名稱

spring.cloud.nacos.discovery.cluster-name

DEFAULT

Nacos的群集名稱

終點

spring.cloud.nacos.discovery.endpoint

 

特定服務在特定區域中的域名。您可以使用該域名動態檢索服務器地址

是否集成色帶

ribbon.nacos.enabled

true

在大多數情況下設置為true

啟用Nacos手表

spring.cloud.nacos.discovery.watch.enabled

true

設置為false以關閉手表

 

啟動類添加:@EnableDiscoveryClient

 

 

 服務提供者(provider)與服務消費者配置基本一樣參照上面,只是配置的服務名字不一樣

spring-cloud-starter-alibaba-nacos-discovery 默認集成了Ribbon

 因此服務消費者(consumer)可以通過RestTemplate + ribbon 做負載調用服務

 

二、Nacos config 統一配置中心

maven依賴:

 

 <!--alibaba-nacos-config-->
        <dependency>
            <groupId> com.alibaba.cloud </groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>

 

bootstrap.yml:

server:
  port: 3377


spring:
  application:
    name: nacos-config-client
  cloud:
    nacos:
      discovery:
       # nacos 服務注冊中心地址
        server-addr: localhost:8848
      config:
      # nacos 作為配置中心的地址
        server-addr: localhost:8848
        # 指定yaml格式的配置方式
        file-extension: yaml

 

application.yml

spring:
  profiles:
    active: dev

啟動類添加:@EnableDiscoveryClient

controller:

@RestController
@RefreshScope // 支持Nacos的動態刷新功能
public class ConfigClientController {

    @Value("${config.info}")
    private String configInfo;

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

 

在Nacos中添加配置文件:

Data ID文件命名規范:

 

 

 

 啟動項目看看能不能獲取到配置信息:

自定義命名空間:

命名空間用於隔離不同租戶的配置。在不同的命名空間中,組和數據ID可以相同。命名空間的典型場景是隔離不同環境的配置,例如,開發/測試環境與生產環境(配置和服務等)之間的隔離。

如果未指定名稱空間,則使用Nacos的“公共”名稱空間${spring.cloud.nacos.config.namespace}。您還可以通過以下方式指定自定義名稱空間:

spring.cloud.nacos.config.namespace = b3404bc0-d7dc-4855-b519-570ed34b62d7

此配置必須在bootstrap.properties文件中。的值spring.cloud.nacos.config.namespace是名稱空間的ID,可以從Nacos控制台中檢索ID的值。添加配置時,請勿選擇其他名稱空間。否則,將無法正確檢索配置。

 

 nacos config更多配置參數如下:

組態 默認值 描述

服務器地址

spring.cloud.nacos.config.server-addr

 

Nacos服務器偵聽器的IP和端口

來自Nacos配置的Dataid

spring.cloud.nacos.config.name

 

首先使用前綴,然后使用名稱,最后使用spring.application.name

來自Nacos配置的Dataid

spring.cloud.nacos.config.prefix

 

首先使用前綴,然后使用名稱,最后使用spring.application.name

編碼nacos配置內容

spring.cloud.nacos.config.encode

 

編碼nacos配置內容

GROUP for Nacos配置

spring.cloud.nacos.config.group

DEFAULT_GROUP

GROUP for Nacos配置

nacos config dataId的后綴,也是config內容的文件擴展名。

spring.cloud.nacos.config.fileExtension

properties

nacos config dataId的后綴,以及config內容的文件擴展名(現在支持屬性或yaml(yml))

從nacos獲取配置超時

spring.cloud.nacos.config.timeout

3000

從nacos獲取配置超時

終點

spring.cloud.nacos.config.endpoint

 

終點

命名空間

spring.cloud.nacos.config.namespace

 

命名空間

快捷鍵

spring.cloud.nacos.config.accessKey

 

阿里雲帳戶訪問密鑰

密鑰

spring.cloud.nacos.config.secretKey

 

阿里雲賬戶密鑰

Nacos Server的上下文路徑

spring.cloud.nacos.config.contextPath

 

Nacos Server的上下文路徑

集群名稱

spring.cloud.nacos.config.clusterName

 

集群名稱

共享配置的Dataid

spring.cloud.nacos.config.sharedDataids

 

共享配置的數據標識,用“,”分隔

共享配置的動態刷新dataid

spring.cloud.nacos.config.refreshableDataids

 

共享配置的動態刷新數據標識,用“,”分隔

自定義dataid

spring.cloud.nacos.config.extConfig

 

這是一個列表,由ConfigPOJO 建立Config具有3個屬性dataIdgrouprefresh

 

自定義組:

{spring.cloud.nacos.config.group}未定義配置時,默認情況下使用DEFAULT_GROUP 。如果需要定義自己的組,則可以在以下屬性中進行定義:

spring.cloud.nacos.config.group = DEVELOP_GROUP

 


免責聲明!

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



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