Spring Cloud Alibaba Nacos搭建服務註冊發現和配置中心

碼農雲帆哥發表於2020-12-27

一、Nacos簡介

   Nacos是阿里雲中介軟體團隊開源的一個專案。Nacos 致力於幫助您發現、配置和管理微服務。Nacos 提供了一組簡單易用的特性集,幫助您快速實現動態服務發現、服務配置、服務後設資料及流量管理。
   Nacos 幫助您更敏捷和容易地構建、交付和管理微服務平臺。 Nacos 是構建以“服務”為中心的現代應用架構 (例如微服務正規化、雲原生正規化) 的服務基礎設施。
在這裡插入圖片描述
Nacos 的關鍵特性包括:

  • 服務發現和服務健康監測
  • 動態配置服務
  • 動態 DNS 服務
  • 服務及其後設資料管理

二、安裝Nacos-server

1、預備環境準備

   Nacos 依賴 Java 環境來執行。如果您是從程式碼開始構建並執行Nacos,還需要為此配置 Maven環境,請確保是在以下版本環境中安裝使用:

  • 64 bit JDK 1.8+;下載 & 配置。
  • Maven 3.2.x+;下載 & 配置。

2、下載安裝包

從該地址下載Nacos編譯後的壓縮包並解壓:https://github.com/alibaba/nacos/releases
目前最新版本2.0.0預發行版,推薦使用1.3.2穩定版本。

3、啟動伺服器

  • Linux/Unix/Mac
    啟動命令(standalone代表著單機模式執行,非叢集模式):
sh startup.sh -m standalone
  • Windows
    啟動命令(standalone代表著單機模式執行,非叢集模式):
cmd startup.cmd -m standalone

伺服器啟動後,瀏覽器訪問地址:http://localhost:8848/nacos/
(使用者名稱和密碼都是nacos)
在這裡插入圖片描述
在這裡插入圖片描述

三、啟動服務發現

  接下來,講一下如何在您的 Spring Cloud 專案中啟用 Nacos 的服務發現功能。配置服務,從而服務可以通過 Nacos 的服務註冊發現功能將其服務註冊到 Nacos server 上。

1、引入依賴

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    <version>${latest.version}</version>
</dependency>

注意:版本 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 版本。

2、配置檔案

  application.yml中配置 Nacos server 的地址和應用名。

spring:
  application:
    name: nacos-demo
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848

3、開啟服務註冊發現功能

  通過 Spring Cloud 原生註解 @EnableDiscoveryClient 開啟服務註冊發現功能。

@SpringBootApplication
@EnableDiscoveryClient
public class NacosDemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(NacosDemoApplication.class, args);
    }
}

4、啟動服務

  啟動服務,然後到Nacos server檢視是否註冊成功。
在這裡插入圖片描述

四、啟動配置管理

1、引入依賴

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    <version>${latest.version}</version>
</dependency>

注意:版本 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 版本。

2、配置檔案

  bootstrap.yml中配置 Nacos server 的地址和應用名。

spring:
  application:
    name: nacos-demo
  cloud:
    nacos:
      config:
        server-addr: localhost:8848
        file-extension: yml

說明:之所以需要配置 spring.application.name ,是因為它是構成 Nacos 配置管理 dataId欄位的一部分。

3、獲取Nacos server的配置資訊

  在Nacos server上增加配置資訊(配置管理->配置列表->新增配置)。
在這裡插入圖片描述
在這裡插入圖片描述
在服務專案中嘗試獲取Nacos server的配置資訊。

@SpringBootApplication
public class NacosDemoApplication {
    public static void main(String[] args) {
        ConfigurableApplicationContext applicationContext = SpringApplication.run(NacosDemoApplication.class, args);
        String userName = applicationContext.getEnvironment().getProperty("user.name");
        String userPassword = applicationContext.getEnvironment().getProperty("user.password");
        System.err.println("user name :" + userName + "; password: " + userPassword);
    }

}

重新啟動專案,發現控制檯輸出取到了Nacos server的配置資訊。
在這裡插入圖片描述

五、總結

  Nacos功能相當強大,既可以做服務發現,又能做配置管理,並且開源專案還在維護中,相信隨著版本的不斷更新迭代,一定會更強大更穩定。

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

相關文章