目錄
- 一、什么是Nacos?
- 二、Nacos能干嗎?
- 三、Nacos關鍵特性
- 四、Nacos中的基本概念
- 五、如何安裝部署Nacos?
- 六、Nacos資料持久化
一、什么是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網路不行所以就直接在碼云拉原始碼了,
git clone https://gitee.com/mirrors/Nacos.git
后面腳手架使用的全部版本是1.1.0版本所有我這里切換對應版本進行打包
#切換到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登陸后頁面展示如下

配置管理則是我們在程式中使用的配置如SpringBoot讀取的properties都可以存放在這里,
服務管理根據名字就清楚是對注冊到Nacos上的服務進行管理的功能啦,
集群管理則指是Nacos集群而不是應用程式集群,
命名空間是此做多環境以及多租戶(多個用戶共同使用nacos)資料(配置和服務)隔離的,相當于SpringBoot 組態檔中的spring.profiles,
六、Nacos資料持久化
當我們使用默認配置啟動Nacos時,所有組態檔都被Nacos保存在了內置的資料庫中,
在0.7版本之前,在單機模式時nacos使用嵌入式資料庫實作資料的存盤,不方便觀察資料存盤的基本情況,0.7版本增加了支持mysql資料源能力;如果使用內嵌資料庫,注定會有存盤上限,且無法移植,
在Nacos的conf目錄下nacos-mysql.sql創建一個資料庫運行腳本,然后在application.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的配置管理就顯得多余了,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/38589.html
標籤:Java
