本系列是 Spring Cloud 微服務實戰系列教程。之前在 《Spring Cloud Eureka 入門 (一)服務註冊中心詳解》 聊過 Spring Cloud Eureka。那今天聊聊阿里開源的 Nacos ~
一、Nacos 是什麼?
先了解下 Spring Cloud Eureka 是基於 Netflix Eureka (Netflix 是 Java 實現的開源軟體)。服務治理(Eureka)包括服務註冊、服務發現和服務檢測監控等。
那 Nacos 致力於發現、配置和管理微服務。Nacos 提供了一組簡單易用的特性集,幫助您快速實現動態服務發現、服務配置、服務後設資料及流量管理。
簡而言之,Nacos 包含了微服務的配置管理 + 服務的註冊、發現等監控。微服務也包括了 Spring Cloud 的微服務實現。
Nacos 其特性重點包含了以下:
- 服務發現和服務健康監測
- 動態配置服務
- 動態 DNS 服務
- 服務及其後設資料管理
- 等等
官方圖如下:
二、如何本地部署和使用 Nacos
可以在 github 上 Nacos Release 版本列表中下載最新的穩定版本。地址:
https://github.com/alibaba/nacos/releases
當前穩定版本:2.0.3
2.1 環境準備
Nacos 依賴 Java 環境,所以如果從原始碼構建並執行 Nacos 需要配置如下:
- JDK 1.8+
- Maven 3.2+
- 64 bit OS 支援 Linux/Unix/Mac/Windows,推薦選用 Linux/Unix/Mac
如果本機部署的話,不需要從原始碼構建,則只需要下載編譯後的壓縮包和 JDK 1.8+ 環境即可
2.2 下載編譯後的壓縮包
在 https://github.com/alibaba/na... 地址中,下載 nacos-server-2.0.3.zip 壓縮包。然後執行一下解壓命令:
unzip nacos-server-2.0.3.zip
這樣目錄中會出現 Nacos 的專案目錄
2.3 啟動前配置
目錄結構如下:
nacos % ls -l
total 48
-rw-r--r--@ 1 qq staff 16583 3 18 2021 LICENSE
-rw-r--r--@ 1 qq staff 1305 5 14 2020 NOTICE
drwxr-xr-x@ 8 qq staff 256 12 3 14:25 bin
drwxr-xr-x@ 9 qq staff 288 7 27 14:18 conf
drwxr-xr-x 6 qq staff 192 12 3 14:43 data
drwxr-xr-x 35 qq staff 1120 12 3 14:25 logs
drwxr-xr-x@ 3 qq staff 96 7 28 19:28 target
進入 conf 目錄,目錄結構如下:
conf % ls -l
total 176
-rw-r--r--@ 1 qq staff 1224 6 18 10:39 1.4.0-ipv6_support-update.sql
-rw-r--r--@ 1 qq staff 9752 12 3 14:41 application.properties
-rw-r--r--@ 1 qq staff 9506 7 27 14:18 application.properties.example
-rw-r--r--@ 1 qq staff 670 3 18 2021 cluster.conf.example
-rw-r--r--@ 1 qq staff 31156 7 15 19:19 nacos-logback.xml
-rw-r--r--@ 1 qq staff 10660 6 18 10:39 nacos-mysql.sql
-rw-r--r--@ 1 qq staff 8795 6 18 10:39 schema.sql
這次部署,目錄中其中兩個檔案需要知曉:
- application.properties 配置檔案
- nacos-mysql.sql 資料庫 MySQL 庫表資訊檔案
1/ 建立資料庫 nacos 並執行 nacos-mysql.sql
本次測試用 MySQL 作為資料儲存,則需要在 MySQL 中新建資料庫 nacos,命令如下:
CREATE DATABASE nacos
然後再資料庫中執行建表和插入預設資料操作,具體看 nacos-mysql.sql 檔案。
2/ 修改 application.properties 配置檔案
然後開啟 application.properties 配置檔案,對應的地方改成如下:
#*************** Config Module Related Configurations ***************#
### If use MySQL as datasource:
spring.datasource.platform=mysql
### Count of DB:
db.num=1
### Connect URL of DB:
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.0=admin
db.password.0=123456
2.4 執行並使用 Nacos
以 Mac 本機為例,啟動下面命令:
cd nacos/bin
sh startup.sh -m standalone
standalone 代表著單機模式執行,非叢集模式
控制檯可以看到以下資訊:
nacos is starting with standalone
nacos is starting,you can check the /Users/qq/project/nacos/logs/start.out
那如何看 Nacos 日誌,從上面可見日誌輸出在 nacos/logs 目錄,檢視 start.out 日誌檔案執行如下命令:
tail -200f /Users/qq/project/nacos/logs/start.out
控制檯可以看到以下資訊:
,--.
,--.'|
,--,: : | Nacos 2.0.3
,`--.'`| ' : ,---. Running in stand alone mode, All function modules
| : : | | ' ,'\ .--.--. Port: 8848
: | \ | : ,--.--. ,---. / / | / / ' Pid: 2452
| : ' '; | / \ / \. ; ,. :| : /`./ Console: http://xxxx:8848/nacos/index.html
' ' ;. ;.--. .-. | / / '' | |: :| : ;_
| | | \ | \__\/: . .. ' / ' | .; : \ \ `. https://nacos.io
' : | ; .' ," .--.; |' ; :__| : | `----. \
| | '`--' / / ,. |' | '.'|\ \ / / /`--' /
' : | ; : .' \ : : `----' '--'. /
; |.' | , .-./\ \ / `--'---'
'---' `--`---' `----'
...
2021-12-04 15:25:18,201 INFO Tomcat started on port(s): 8848 (http) with context path '/nacos'
這說明部署成功,電腦執行 Nacos 很簡單,直接開啟瀏覽器,輸入地址:
http://localhost:8848/nacos/index.html
賬號密碼預設都為 nacos,如圖
如何關閉呢?
關閉命令:
sh shutdown.sh
控制檯會響應:
The nacosServer(4317) is running...
Send shutdown request to nacosServer(4317) OK
三、Nacos 小結
本文主要描述 Nacos 和 Nacos 的使用場景,然後本地部署 Nacos,達到可用狀態。如果需要伺服器部署,切記不能單機模式。Nacos 主要是微服務的配置中心和服務註冊中心。
後續系列文章,會結合 Spring Cloud 微服務實踐 Nacos 細節。
作者:泥瓦匠 (公號「程式設計師泥瓦匠」)出處:https://www.bysocket.com 歡迎轉載,也請保留這段宣告。謝謝!