天天看點

Nacos 本地單機版部署步驟和使用 - Spring Cloud 系列教程

本系列是 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 本地單機版部署步驟和使用 - Spring Cloud 系列教程

二、如何本地部署和使用 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 下載下傳編譯後的壓縮包

位址中,下載下傳 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,如圖

Nacos 本地單機版部署步驟和使用 - Spring Cloud 系列教程
Nacos 本地單機版部署步驟和使用 - Spring Cloud 系列教程

如何關閉呢?

關閉指令:

sh shutdown.sh

控制台會響應:

The nacosServer(4317) is running...

Send shutdown request to nacosServer(4317) OK

三、Nacos 小結

本文主要描述 Nacos 和 Nacos 的使用場景,然後本地部署 Nacos,達到可用狀态。如果需要伺服器部署,切記不能單機模式。Nacos 主要是微服務的配置中心和服務注冊中心。

後續系列文章,會結合 Spring Cloud 微服務實踐 Nacos 細節。