引言
Spring Cloud Alibaba 是 Spring Cloud 和 Alibaba 集團聯合推出的開源微服務架構,旨在為 Java 開發者提供一種簡單、易用、高效的微服務解決方案。Nacos 是一個面向雲原生應用的動态服務發現、配置管理和服務管理平台,提供了服務注冊與發現、配置管理、動态 DNS 服務、服務及流量管理等功能,是一個優秀的服務注冊中心和配置中心。
本文将介紹 Spring Cloud Alibaba 整合 Nacos 的實戰操作,包括 Nacos 的安裝和部署,以及 Spring Cloud Alibaba 的依賴配置和使用。通過本文的學習,讀者可以了解 Spring Cloud Alibaba 和 Nacos 的基本概念和使用方法,掌握微服務架構中服務注冊和配置管理的基本技能。
目錄
一、Nacos 的安裝和部署
1.1 下載下傳 Nacos
1.2 安裝 Nacos
1.3 部署服務
二、Spring Cloud Alibaba 的依賴配置
2.1引入依賴
2.2 配置檔案
三、Spring Cloud Alibaba 的使用
3.1 服務注冊和發現
3.2 配置管理
四、總結
一、Nacos 的安裝和部署
1.1 下載下傳 Nacos
Nacos 官網提供了多種下載下傳方式,包括源碼編譯、Docker 鏡像、二進制包等,讀者可以根據自己的需求選擇下載下傳方式。
這裡我們選擇下載下傳二進制包的方式進行安裝,可以在官網下載下傳頁面選擇對應版本的壓縮包進行下載下傳。目前最新版本為 2.0.3,下載下傳位址為:
Release 2.0.3 (July 28, 2021) · alibaba/nacos · GitHub
1.2 安裝 Nacos
将下載下傳好的壓縮包解壓到任意目錄,進入解壓目錄下的 bin 目錄,執行以下指令即可啟動 Nacos:
複制代碼sh startup.sh -m standalone
執行成功後,可以在浏覽器中通路 http://localhost:8848/nacos,進入 Nacos 的控制台界面。
1.3 部署服務
在 Nacos 控制台界面中,可以建立服務、配置資料等。下面我們以建立服務為例進行示範。
點選左側菜單欄的“服務管理”,在右側頁面中選擇“建立服務”,填寫服務名和服務位址等資訊,點選“建立”按鈕即可完成服務的建立。
二、Spring Cloud Alibaba 的依賴配置
2.1引入依賴
在項目的 pom.xml 檔案中,添加 Spring Cloud Alibaba 的依賴配置:
xml複制代碼<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.2.1.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<!-- Nacos 服務注冊和發現 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!-- Nacos 配置管理 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>php
<version>2.2.1.RELEASE</version>
</dependency>
</dependencies>
在這裡,我們引入了 Spring Cloud Alibaba 的 Nacos 服務注冊和發現以及配置管理的依賴。
2.2 配置檔案
在項目的 application.properties 或 application.yml 檔案中,添加 Nacos 相關的配置資訊:
ini複制代碼# Nacos 服務注冊和發現
spring.cloud.nacos.discovery.server-addr=localhost:8848
# Nacos 配置管理
spring.cloud.nacos.config.server-addr=localhost:8848
spring.cloud.nacos.config.namespace=8f13df4e-fdc1-4a61-bfad-422d19b59f9a # 命名空間
spring.cloud.nacos.config.shared-dataids=example-config # 共享的配置檔案 ID
spring.cloud.nacos.config.shared-dataids-refresh-interval=3000 # 共享的配置檔案重新整理間隔
在這裡,我們配置了 Nacos 的服務位址、命名空間和共享的配置檔案 ID 等資訊。
三、Spring Cloud Alibaba 的使用
3.1 服務注冊和發現
在 Spring Cloud Alibaba 中,可以通過 @EnableDiscoveryClient 注解啟用服務注冊和發現的功能。例如:
less複制代碼@SpringBootApplication
@EnableDiscoveryClient
public class ExampleServiceApplication {
public static void main(String[] args) {
SpringApplication.run(ExampleServiceApplication.class, args);
}
}
在這裡,我們啟用了服務注冊和發現的功能,并使用 @SpringBootApplication 注解标記了應用程式的入口類。
3.2 配置管理
在 Spring Cloud Alibaba 中,可以通過 @RefreshScope 和 @Value 注解來實作配置管理的功能。例如:
less複制代碼@RestController
@RefreshScope
public class ExampleController {
@Value("${example.config}")
private String exampleConfig;
@GetMapping("/example")
public String getExampleConfig() {
return exampleConfig;
}
}
在這裡,我們使用 @RefreshScope 注解将 ExampleController 類标記為可重新整理的 bean,使用 @Value 注解注入了 example.config 配置項的值。當配置項的值發生變化時,使用 @GetMapping 注解的 getExampleConfig 方法會傳回最新的配置值。
四、總結
本文介紹了 Spring Cloud Alibaba 整合 Nacos 的實戰操作,包括 Nacos 的安裝和部署,以及 Spring Cloud Alibaba 的依賴配置和使用。通過本文的學習,讀者可以了解 Spring Cloud Alibaba 和 Nacos 的基本概念和使用方法,掌握微服務架構中服務注冊和配置管理的基本技能。
值得注意的是,在實際的開發中,可能會遇到更加複雜的微服務架構和業務場景。是以,讀者在學習和使用 Spring Cloud Alibaba 和 Nacos 的過程中,應該根據具體的需求和場景進行合理的配置和使用,以達到最佳的效果和性能。
作者:陳書予
連結:https://juejin.cn/post/7241145428091535415