Nacos 從開源到現在已經18個releases了,更新很快,社區也很活躍,光釘釘群的人數那也是好多,每次點個查看全部成員的按鈕,我的釘釘就要卡死,也有可能我沒更新最新的版本。
前面寫了一段時間的Sentinel,最近還是打算學習下Nacos,目前不用也沒關系,關鍵是先要體驗下,知道這個框架的優點,對技術選型來說很重要。
Github地址:https://github.com/alibaba/nacos
記得Star下哦。。。
其實Nacos的官方文檔已經很詳細了,而且是中文版,對國內的開發來說簡直是福音。這其實就牽扯到另一個問題,就是既然這么詳細了,還有必要寫這些文章嗎?
這個嘛主要是自己學習過程中的積累,也許我在這個過程中會遇到一些問題,也許這些問題對某些剛接觸的人來說有用,這就夠了。除了官方文檔之外其實還有很多大牛也寫了很多文章,咱們應該多向這些樂於分享的人學習。
詳細介紹
Nacos主要用於 服務發現和服務健康監測,動態配置服務,動態 DNS 服務等場景。
下圖是官方提供的,通過下圖可以全面的了解Nacos。
特性大圖:要從功能特性,非功能特性,全面介紹我們要解的問題域的特性訴求
架構大圖:通過清晰架構,讓您快速進入 Nacos 世界
業務大圖:利用當前特性可以支持的業務場景,及其最佳實踐
生態大圖:系統梳理 Nacos 和主流技術生態的關系
優勢大圖:展示 Nacos 核心競爭力
戰略大圖:要從戰略到戰術層面講 Nacos 的宏觀優勢
快速體驗
很多框架為了讓使用者快速體驗,都會提供一個快速啟動包,簡單方便。
我們可以在https://github.com/alibaba/nacos/releases頁面下載你需要的版本包:
Windows上下載zip包就可以了,linux上下載tar包。以Windows為例,解壓之后進入bin目錄,直接運行startup.cmd腳本即可啟動Nacos服務。Linux/Unix/Mac上執行sh startup.sh -m standalone啟動服務,standalone代表着單機模式運行,非集群模式。
默認的賬號密碼是 nacos/nacos,登陸之后可以看到主頁面。
Spring Boot 集成配置管理
由於是第一篇文章,咱們先從配置這塊學起,首先體驗下配置在Spring Boot中如何集成,詳細的后面再一一進行介紹。
加入依賴:
<dependency>
<groupId>com.alibaba.boot</groupId>
<artifactId>nacos-config-spring-boot-starter</artifactId>
<version>0.2.1</version>
</dependency>
注意:版本 0.2.x.RELEASE對應的是 Spring Boot 2.x 版本,版本 0.1.x.RELEASE 對應的是 Spring Boot 1.x 版本。
通過下面的地址查看版本列表:
https://mvnrepository.com/artifact/com.alibaba.boot/nacos-config-spring-boot-starter
在Nacos后台新建一個配置:
Data ID:Nacos 中的某個配置集的 ID。配置集 ID 是組織划分配置的維度之一。Data ID 通常用於組織划分系統的配置集。一個系統或者應用可以包含多個配置集,每個配置集都可以被一個有意義的名稱標識。Data ID 通常采用類 Java 包(如 com.taobao.tc.refund.log.level)的命名規則保證全局唯一性。此命名規則非強制。
在啟動類上指定Data ID:
@NacosPropertySource(dataId = "nacos-springboot", autoRefreshed = true)
@SpringBootApplication
public class NacosSpringBootApp {
public static void main(String[] args) {
SpringApplication.run(NacosSpringBootApp.class, args);
}
}
測試代碼:
@RestController
public class ConfigController {
@NacosValue(value="${name}", autoRefreshed=true)
private String name;
@GetMapping("/name")
public String getName() {
return this.name;
}
}
使用@NacosValue來注入配置,autoRefreshed默認為false, 在后台改了是不會刷新值的,需要設置成true才可以刷新。
第一篇文章就到這里,更多特性,我們后面一一講解。