1. 程式人生 > >dubbo教程-06-dubbo-admin 控制檯的搭建過程

dubbo教程-06-dubbo-admin 控制檯的搭建過程

寫在前面

hello 大家好歡迎大家
來到御風大世界
本次課是我們dubbo系列課程的第6課
在這次課我們將為大家演示
如何編譯自己的 dubbo-admin
並且部署執行這個dubbo-admin

dubbo-admin 是用來幹嘛的?

dubbo-admin 是dubbo的控制檯web程式
可以利用瀏覽器 來 進行 dubbo的一些效能監控
服務治理 降級 分組
還有就是一些引數的設定
整個服務平臺的管理功能
他是一個 dubbo 中的 子 專案
打包以後是一個 war 包
可以部署到 tomcat等容器
大概長這個樣子

imagepng

我本來想去 github 下載這個原始碼的
不過遺憾的時候 沒有找到 dubbo admin
於是我看了下issue
是不是別人也有這樣的問題

imagepng

結果是這樣的
現在的這個東西叫做 incubator-dubbo-ops

他是一個由Apache 維護的新的dubbo的管理軟體
我們看下他的具體介紹

Dubbo控制檯

前端部分

後端部分

  • 標準spring boot工程

生產環境配置

  1. 下載程式碼: git clone https://github.com/apache/incubator-dubbo-ops.git

  2. 在 dubbo-admin-backend/src/resources/application-production.properties中指定註冊中心地址

  3. 構建

    • mvn clean package
  4. 啟動 mvn --projects dubbo-admin-backend spring-boot:run

  5. 訪問 http://localhost:8080


開發環境配置

  • 執行dubbo admin backend
    dubbo admin backend是一個標準的spring boot專案, 可以在任何java IDE中執行它
  • 執行dubbo admin frontend
    dubbo admin frontend由npm管理和構建,在開發環境中,可以單獨執行: npm run dev
  • 頁面訪問
    訪問 http://localhost:8081, 由於前後端分開部署,前端支援熱載入,任何頁面的修改都可以實時反饋,不需要重啟應用。
  • 跨域問題
    為了方便開發,我們提供了這種前後端分離的部署模式,主要的好處是支援前端熱部署,在這種模式下,前端會通過8080埠訪問後端的restful api介面,獲取資料, 這將導致跨域訪問的問題。因此我們在dubbo-admin-frontend/config/index.js添加了支援跨域訪問的配置,當前端通過npm run dev單獨啟動時,這些配置將被啟用,允許跨域訪問

本地測試

首先我們 下載他的原始碼

git clone https://github.com/apache/incubator-dubbo-ops.git

imagepng

接著我們用IDEA來開啟他

imagepng

我們發現他是一個 前後端分離的 應用哦
這一點 真的很牛逼
越來越跟上潮流了

我們首先讓程式執行起來
- 在 dubbo-admin-backend/src/resources/application-production.properties中指定註冊中心地址

可能你會遇到下面的錯誤 是因為我們的 maven版本不行
我們升級下maven版本

[ERROR] Failed to execute goal com.github.eirslett:frontend-maven-plugin:1.6:install-node-and-npm (install node and npm) on project dubbo-admin-frontend: The plugin com.github.eirslett:frontend-maven-plugin:1.6 requires Maven version 3.1.0 -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginIncompatibleException
[ERROR] 
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR]   mvn <goals> -rf :dubbo-admin-frontend

我們升級到 最新的 maven

imagepng

你會在 執行命令
mvn clean package 的過程中看到這樣一句話
我們正在下載 和 生成 node 環境

[INFO] Installing node version v9.11.1
[INFO] Downloading https://nodejs.org/dist/v9.11.1/node-v9.11.1-win-x64.zip to D:\luckincoffee\env\apache-maven-3.6.0\resp\com\github\eirslett\node\9.11.1\node-9.11.1-win-x64.zip
[INFO] No proxies configured
[INFO] No proxy was configured, downloading directly
[INFO] Unpacking D:\luckincoffee\env\apache-maven-3.6.0\resp\com\github\eirslett\node\9.11.1\node-9.11.1-win-x64.zip into D:\githubTest\incubator-dubbo-ops\dubbo-admin-frontend\node\tmp
[INFO] Copying node binary from D:\githubTest\incubator-dubbo-ops\dubbo-admin-frontend\node\tmp\node-v9.11.1-win-x64\node.exe to D:\githubTest\incubator-dubbo-ops\dubbo-admin-frontend\node\node.exe

中途可能會出現一些 異常情況
嘗試 關閉你的 佔用資料夾 或者 git 客戶端 (這個自己根據自己情況來)

然後 你再次 執行 mvn clean package
就會構建成功的

[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for dubbo-admin 0.0.1-SNAPSHOT:
[INFO] 
[INFO] dubbo-admin ........................................ SUCCESS [  0.935 s]
[INFO] dubbo-admin-frontend ............................... SUCCESS [03:12 min]
[INFO] dubbo-admin-backend ................................ SUCCESS [01:10 min]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  04:23 min
[INFO] Finished at: 2018-11-28T15:35:47+08:00
[INFO] ------------------------------------------------------------------------
[WARNING] The requested profile "nexus" could not be activated because it does not exist.

因為我們的 這個管理程式 是 前後端分離的
前端需要 執行在 node 環境之上

maven 在構建的 時候 會同時執行 node 相關命令的
並且 第一次構建完畢之後
node 進行 就會執行起來的
所以這個時候 我們需要 執行我們的後端程式

找到這個類
imagepng

直接點選執行就好了

如果你出現 編譯錯誤的話 可能需要調節 目標 jdk版本
我是IDEA 我是這樣調節的

imagepng

我視訊裡面也有講解 可以看下

然後我們的程式會啟動 開啟瀏覽器
imagepng

接下來我們啟動我們之前的 provider consumer
注意 因為我們之前的 tomcat 也是 8080 所以 我們需要修改埠然後再啟動
啟動以後我們就可以在 dubbo-admin 檢視和管理我們的服務了

我們這裡輸入 * 點選搜尋
imagepng

我嘗試了
除了 這個 功能可以用之外 其他的都還是在開發階段
好吧 我們只能期待了
此時我只想說
看看人家springcloud

還是用老版本的吧

我們來到 這個地址
https://github.com/apache/incubator-dubbo/releases
下載老版本的 dubbo 發行版本

imagepng

然後我們解壓他 找到 dubbo-admin

imagepng

同樣的 我們把他 載入到 IDEA

然後 用maven工具構建他
我實話 說一句 這個過程真的有點長
你可以去我的公眾號 下載 我已經編譯好的 dubbo-admin.war
關注公號 , 回覆文字 dubbo 就可以下載了

找到我們的配置檔案
它預設的配置是這樣的
imagepng

我們啟動專案
看到了熟悉的控制檯 關鍵還是中文的

imagepng

接下來就可以開始愉快的玩耍了

imagepng

後記

我們對比了新的控制檯 和 老的控制檯
新的控制檯 好像更加牛逼了
最起碼 介面做起來很吊的樣子
我們對他充滿期待
老的控制檯 如果是用到生產環境中的話
我們可以在網上找到的資源也會相應的多一些
這一點我覺得很不錯的
如果大家對於這篇文章有什麼不理解的地方可以留言告訴我
也可以看我的視訊
視訊教程:https://www.bilibili.com/video/av36799192/
課程原始碼:https://github.com/ibywind/dubbo-learn
關注公眾號 檢視更多技術乾貨
還可加群 , 眾多好基友在等你