Nacos源碼之二——閱讀源碼第一步, 本地啟動 Nacos


版權聲明:本文為博主原創文章,遵循 CC 4.0 by-sa
版權協議,轉載請附上原文出處鏈接和本聲明。
本文鏈接: http://blog.shiyi.online/articles/2019/08/20/1566289182119.html

 

前言

在我們去閱讀 Nacos 源碼之前,我們得先了解 Nacos 是干嘛的,以及怎么用,這樣有利於我們更容易去理解源碼;

查看 Nacos 的官方文檔,我們知道 Naocs 主要有一下特性:

  • 配置中心
  • 服務注冊與發現
  • ...

Nacos 有給我們提供管理界面,用來方便配置數據;我們先把整個 Nacos 源碼克隆下來,本地啟動;熟悉一下如何使用它

啟動 Nacos 項目

1.克隆 Nacos 源碼

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

導入到 Idea 中
image.png

2.配置 Mysql 數據源

Nacos 內置嵌入式 derby 數據庫,但是它只適合開發測試中使用,也不利於我們觀察數據;所以我們更改一下數據庫為 Mysql

在使用 Mysql 之前,需要先建立 nacos_config 的數據庫 sql 文件在模塊 distribution 中的 conf/nacos-mysql.sql ; 執行一下這個文件;

在模塊 nacos/distribution 中添加 Mysql 的配置文件

## 數據庫為mysql 
spring.datasource.platform=mysql 
## 數據庫編號 因為可能配置有多數據源 主從 
db.num=1 
db.url.0=jdbc:mysql://XX.XX.XXX.XX:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true db.user.0=name 
db.password.0=password

image.png

3.將項目打包發布

執行打包命令

mvn -Prelease-nacos clean install -U -Dmaven.test.skip=true

image.png

打包完畢,執行啟動腳本

sh distribution/target/nacos-server-{version}/nacos/bin/startup.sh -m standalone

image.png

 

這里 -m standalon e 表示單機模式啟動,還有其他可選的參數有:

  • -f [config/naming]
    啟動模式 支持只啟動某一個模塊,config:配置中心; naming:服務注冊與發現,不設置時所有模塊都會啟動

  • -s 后面接服務包名字; 默認值是 nacos-server
    就是可以指定啟動的 Jar 包名;
    image.png

    檢查啟動是否成功

image.png


啟動成功之后,就可以訪問管理后台了
http://localhost:8848/nacos/index.html 登陸賬戶密碼都是: nacos
登陸之后的管理后台
image.png

如果剛剛啟動的時候加了參數 -f config 那么現在看到的只有配置管理命名空間兩個菜單欄了
使用的詳細解釋可以參考官方文檔 控制台手冊

Nacos 配置中心數據庫表結構說明

tenant_info 租戶信息表(命名空間表)

Nacos 基於 Namespace 幫助用戶邏輯隔離多個命名空間,這可以幫助用戶更好的管理測試、預發、生產等多環境服務和配置,讓每個環境的同一個配置(如數據庫數據源)可以定義不同的值。

這個命名空間的數據就是存在表 tenant_info
tenant_info

字段 備注
id 主鍵自增
kp (Todo...)定值 1
tenant_id 命名空間 id,是一個 UUID 字符串
tenant_name 命名空間名字
tenant_desc 命名空間描述
create_source 創建人
gmt_create 創建時間
gmt_modified 修改時間

(kp,tenant_id) 組成唯一約束

config_info 配置信息表

所有配置的數據都存在這個表中;

字段 描述
id 自增主鍵
data_id 數據 ID

TODO.....

如何本地調試 Jar 包方式啟動的源碼

由於上面的啟動方式,我們可能不能進行本地 Debug;但是我們可以在啟動的時候開啟 Debug 端口,通過遠程監聽 Debug 端口來進行 Debug;

那么我們先修改一下啟動腳本,打開調試端口修改
文件 distribution/target/nacos-server-{version}/nacos/bin/startup.sh

# 加入調試端口 6666調試端口隨意設置 
JAVA_DEBUG_OPTS="-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=6666,server=y,suspend=n" 
echo "$JAVA ${JAVA_DEBUG_OPTS} ${JAVA_OPT} " > ${BASE_DIR}/logs/start.out 2>&1 & 
nohup $JAVA ${JAVA_DEBUG_OPTS} ${JAVA_OPT} nacos.nacos >> ${BASE_DIR}/logs/start.out 2>&1 &

image.png

重新啟動

先把項目停止
sh distribution/target/nacos-server-{version}/nacos/bin/shutdown.sh
然后重新啟動
sh distribution/target/nacos-server-1.1.3/nacos/bin/startup.sh -m standalone

啟動成功,檢查調試端口是否打開
image.png


已經有一個 6666 的端口在 LISTEN 中了;

配置調試
在 Idea 中新建一個 remote 啟動;
image.png


image.png

啟動調試
啟動調試; 打一個斷點,然后管理后端操作一下;看下效果
image.png

調試成功

項目啟動了,也調試成功了; 那么我們就可以方便的開始閱讀源碼了!

Nacos 系列文章在公眾號 : 進擊的老碼農(jjdlmn) 中連載;
請關注公眾號獲取最新系列文章



作者:shirenchuang
鏈接:https://ld246.com/article/1566289201322
來源:鏈滴
協議:CC BY-SA 4.0 https://creativecommons.org/licenses/by-sa/4.0/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM