1. 程式人生 > >SpringCloud Alibaba Nacos 服務治理中心

SpringCloud Alibaba Nacos 服務治理中心

[TOC] ##### 一、什麼是Nacos? 英文全稱Dynamic Naming and Configuration Service,Na為naming/nameServer即註冊中心,co為configuration即註冊中心,service是指該註冊/配置中心都是以服務為核心。服務在nacos是一等公民 ##### 二、Nacos能幹嗎? Nacos根據官網介紹致力於發現、配置和管理微服務。Nacos既能作為SpringCloud中的Erueka元件又能作為SpringCloud中的Config元件並且Nacos 提供了一組簡單易用的特性集,幫助您快速實現動態服務發現、服務配置、服務元資料及流量管理。 ##### 三、Nacos關鍵特性 Nacos 支援基於 DNS 和基於 RPC 的服務發現。 - 服務發現和服務健康監測 - 動態配置服務 - 動態 DNS 服務 - 服務及其元資料管理 ##### 四、Nacos中的基本概念 **服務:**通過預定義介面網路訪問的提供給客戶端的軟體功能。 **配置:**在系統開發過程中,開發者通常會將一些需要變更的引數、變數等從程式碼中分離出來獨立管理,以獨立的配置檔案的形式存在。目的是讓靜態的系統工件或者交付物(如 WAR,JAR 包等)更好地和實際的物理執行環境進行適配。配置管理一般包含在系統部署的過程中,由系統管理員或者運維人員完成。配置變更是調整系統執行時的行為的有效手段。 **名稱空間:**用於進行租戶粒度的配置隔離。不同的名稱空間下,可以存在相同的 Group 或 Data ID 的配置。Namespace 的常用場景之一是不同環境的配置的區分隔離,例如開發測試環境和生產環境的資源(如配置、服務)隔離等。 **服務註冊中心:**儲存服務例項和服務負載均衡策略的資料庫。 **服務發現:** 在計算機網路上,(通常使用服務名)對服務下的例項的地址和元資料進行探測,並以預先定義的介面提供給客戶端進行查詢。 ##### 五、如何安裝部署Nacos? `通過官方直接下載釋出版本:https://github.com/alibaba/nacos/releases/download/1.1.0/nacos-server-1.1.0.tar.gz解壓即可執行` 這裡通過原始碼編譯形式進行安裝,也可以直接在官網釋出版本中找到適應的版本進行使用。 由於我這裡訪問github網路不行所以就直接在碼雲拉原始碼了。 ```shell git clone https://gitee.com/mirrors/Nacos.git ``` 後面腳手架使用的全部版本是`1.1.0`版本所有我這裡切換對應版本進行打包 ```shell #切換到1.1.0標籤 git checkout 1.1.0 #進入Nacos目錄,進行打包 mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U #打包好後Nacos\distribution\target目錄中會出現一個zip和tar #nacos-server-1.1.0.tar.gz #nacos-server-1.1.0.zip ``` 我這裡直接使用zip壓縮包在windows環境下進行使用,解壓後目錄如下 ``` bin 存放可執行指令碼 conf 執行時的配置 plugins 外掛 target 打包後的jar包 ``` windows環境下執行bin目錄下的startup.cmd即可,等待啟動完成後訪問:http://localhost:8848/nacos 如果使用Linux系統執行則`sh startup.sh -m standalone`代表著單機模式執行。 預設登陸賬號與密碼為:nacos\nacos登陸後頁面展示如下 ![](https://images.cnblogs.com/cnblogs_com/SimpleWu/1837046/o_200828094732Nacos%20%E4%B8%BB%E7%95%8C%E9%9D%A2.png) 配置管理則是我們在程式中使用的配置如SpringBoot讀取的properties都可以存放在這裡。 服務管理根據名字就清楚是對註冊到Nacos上的服務進行管理的功能啦。 叢集管理則指是Nacos叢集而不是應用程式叢集。 名稱空間是此做多環境以及多租戶(多個使用者共同使用nacos)資料(配置和服務)隔離的,相當於SpringBoot 配置檔案中的spring.profiles。 ##### 六、Nacos資料持久化 當我們使用預設配置啟動Nacos時,所有配置檔案都被Nacos儲存在了內建的資料庫中。 在0.7版本之前,在單機模式時nacos使用嵌入式資料庫實現資料的儲存,不方便觀察資料儲存的基本情況。0.7版本增加了支援mysql資料來源能力;如果使用內嵌資料庫,註定會有儲存上限,且無法移植。 在Nacos的conf目錄下nacos-mysql.sql建立一個數據庫執行指令碼,然後在application.properties增加以下配置: ```properties spring.datasource.platform=mysql db.num=1 db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC db.user=root db.password=123456 ``` 然後建立的配置會持久化到配置的資料庫中。 `Nacos註冊中心/配置中心二合一我覺得非常好用,比起SpringCloud 需要Eureka於Config兩個服務。不過二合一也並非優點,打個簡單的比方在不需要配置中心的情況下Nacos的配置管理就顯得多餘