【On Nacos】快速上手Nacos

曉雙發表於2022-06-25
如果大家想要了解更多的 Nacos 教程,歡迎 star 《On Nacos》開源專案。基於 Nacos 2.x 的入門、原理、原始碼、實戰介紹,幫助開發者快速上手 Nacos。

安裝包

安裝

步驟一:可以通過 https://github.com/alibaba/nacos/releases 找到對應的版本,下載打包好的 Nacos。可使用以下命令下載對應的 Nacos版本。目前下載的是2.1.0 版本,可使用以下命令:

wget https://github.com/alibaba/nacos/releases/download/2.1.0/nacos-server-2.1.0.tar.gz

步驟二:下載完壓縮包以後需要通過命令進行解壓:

tar -xzf nacos-server-2.1.0.tar.gz

步驟三:cd 到 nacos 目錄下,先來介紹下目錄結構

.
|____LICENSE
|____bin                                 // nacos 的啟動、停止指令碼
| |____startup.sh
| |____startup.cmd
| |____shutdown.sh
| |____shutdown.cmd
|____target                              // nacos 服務端 jar 包
| |____nacos-server.jar
|____NOTICE
|____conf                                // naocs 配置檔案、sql指令碼、叢集配置等
| |____1.4.0-ipv6_support-update.sql
| |____schema.sql
| |____nacos-mysql.sql
| |____application.properties.example
| |____nacos-logback.xml
| |____cluster.conf.example
| |____application.properties

步驟四:單機模式啟動 Nacos

Linux/Unix/Mac

啟動命令( -m standalone 表示單機模式啟動):

sh startup.sh -m standalone

如果您使用的是ubuntu系統,或者執行指令碼報錯提示[[符號找不到,可嘗試如下執行:

bash startup.sh -m standalone

Windows

啟動命令( -m standalone 表示單機模式啟動):

startup.cmd -m standalone

出現以下日誌說明已經啟動 naocs 了,詳細的日誌要看 nacos/logs/start.out。

nacos is starting with standalone
nacos is starting,you can check the /Users/lixiaoshuang/nacos-related/nacos/logs/start.out

步驟五:通過瀏覽器訪問:http://127.0.0.1:8848/nacos 登入nacos 控制檯,預設的賬戶名和密碼是:nacos、nacos。

https://tva1.sinaimg.cn/large/e6c9d24ely1h3jghe1b57j215u0u0div.jpg

備註:單機模式啟動預設是不需要 MySQL 的,如果想要使用 MySQL 可以修改配置中的資料來源資訊

配置管理

通過 curl 命令呼叫 Nacos 的 Open API 來快速體驗一下 Nacos 的配置管理功能。

釋出配置

curl -X POST "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test&content=Hello Nacos"

通過 curl 命令釋出完配置後,可以在通過控制檯配置管理-配置列表中檢視到配置資訊。

https://tva1.sinaimg.cn/large/e6c9d24ely1h3jh75hwdhj22300tgtcu.jpg

獲取配置

curl -X GET "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test"

https://tva1.sinaimg.cn/large/e6c9d24ely1h3jh8xya7ej21fa0eq761.jpg

服務註冊&發現

通過 curl 命令呼叫 Nacos 的 Open API 來快速體驗一下 Nacos 的服務發現功能。

服務註冊

curl -X POST 'http://127.0.0.1:8848/nacos/v1/ns/instance?serviceName=nacos.naming.serviceName&ip=20.18.7.10&port=8080'

執行完 curl 命令後 ,可以在控制檯服務管理-服務列表中檢視到註冊的服務資訊。

https://tva1.sinaimg.cn/large/e6c9d24ely1h3jhexgudnj223i0quwie.jpg

服務發現

curl -X GET 'http://127.0.0.1:8848/nacos/v1/ns/instance/list?serviceName=nacos.naming.serviceName'

https://tva1.sinaimg.cn/large/e6c9d24ely1h3jhi77yujj21no0ki0y3.jpg

使用 MySQL

如果想要 Nacos 使用 MySQL 來做底層儲存的話,首先需要找到 nacos/conf 目錄下的 nacos-mysql.sql 。執行 sql 指令碼建立 nacos 相關庫表。

然後就只需要修改 application.properties 檔案,首先 cd 到 nacos/conf 目錄下,用 vim 命令修改 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=nacos
# db.password.0=nacos

將註釋放開,修改 db.url.0 的資料庫連結為實際要連的資料庫地址,修改對應的 user、password。

#*************** 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=root
db.password.0=12345678

當修改完以上配置以後,在通過 nacos/bin 目錄下的啟動指令碼啟動 nacos 即可:

sh startup.sh -m standalone

除錯原始碼

步驟一:通過 git 命令將 nacos 倉庫 clone 到本地

git clone https://github.com/alibaba/nacos.git

步驟二:使用idea 開啟 nacos 原始碼

https://tva1.sinaimg.cn/large/e6c9d24ely1h3jl16bygzj21bg0u0got.jpg

步驟三:使用 mvn clean compile -U -Dmaven.test.skip=true 命令編譯下專案

https://tva1.sinaimg.cn/large/e6c9d24ely1h3jlbydm93j20yi0u0dn0.jpg

步驟四:找到 com.alibaba.nacos.Nacos 啟動類,在 idea 啟動時新增 VM 引數-Dnacos.standalone=true,然後再啟動,就可以除錯 nacos 原始碼啦。

https://tva1.sinaimg.cn/large/e6c9d24ely1h3jllyxo7sj219c0u0tbp.jpg

相關文章