阿里Nacos初體驗

Nacos 從開源到如今已經18個releases了,更新很快,社區也很活躍,光釘釘羣的人數那也是好多,每次點個查看所有成員的按鈕,個人釘釘就要卡死,也有可能我沒更新最新的版本。linux

前面寫了一段時間的Sentinel,最近仍是打算學習下Nacos,目前不用也不要緊,關鍵是先要體驗下,知道這個框架的優勢,對技術選型來講很重要。git

Github地址:github.com/alibaba/nac…github

記得Star下哦。。。spring

其實Nacos的官方文檔已經很詳細了,並且是中文版,對國內的開發來講簡直是福音。這其實就牽扯到另外一個問題,就是既然這麼詳細了,還有必要寫這些文章嗎?springboot

這個嘛主要是本身學習過程當中的積累,也許我在這個過程當中會遇到一些問題,也許這些問題對某些剛接觸的人來講有用,這就夠了。除了官方文檔以外其實還有不少大牛也寫了不少文章,我們應該多向這些樂於分享的人學習。bash

詳細介紹

Nacos主要用於 服務發現和服務健康監測,動態配置服務,動態 DNS 服務等場景。架構

下圖是官方提供的,經過下圖能夠全面的瞭解Nacos。app

Nacos 地圖

特性大圖:要從功能特性,非功能特性,全面介紹咱們要解的問題域的特性訴求 架構大圖:經過清晰架構,讓您快速進入 Nacos 世界 業務大圖:利用當前特性能夠支持的業務場景,及其最佳實踐 生態大圖:系統梳理 Nacos 和主流技術生態的關係 優點大圖:展現 Nacos 核心競爭力 戰略大圖:要從戰略到戰術層面講 Nacos 的宏觀優點框架

快速體驗

不少框架爲了讓使用者快速體驗,都會提供一個快速啓動包,簡單方便。spring-boot

咱們能夠在github.com/alibaba/nac…頁面下載你須要的版本包:

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 版本。

經過下面的地址查看版本列表:

mvnrepository.com/artifact/co…

在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才能夠刷新。

第一篇文章就到這裏,更多特性,咱們後面一一講解。

猿天地
相關文章
相關標籤/搜索