將Dubbo註冊到Nacos,與DubboAdmin的部署

2023-07-25 12:01:13

王有志,一個分享硬核Java技術的互金摸魚俠
加入Java人的提桶跑路群:共同富裕的Java人

本文是《從 0 開始學 Dubbo》系列文章中應用篇的番外篇。

在這篇文章中我會和大家一起部署單機模式的 Nacos,並將 Dubbo 的註冊中心從 Zookeeper 遷移到 Nacos 上。另外,為了在只啟動 Dubbo 服務提供者的場景下進行測試,我們會部署一個 Dubbo Admin 服務。

部署 Nacos

Nacos 的部署非常簡單,可以下載 Nacos 原始碼編譯後啟動,或者直接使用 Nacos 官方提供的安裝包。具體過程請參考官方檔案:Nacos 快速開始

我是在 IDEA 中直接啟動的 Nacos,只需要稍微修改 Nacos 子模組 consle 的 application.properties 檔案的一項鑑權相關的設定即可:

Nacos 的啟動類同樣位於子模組 console 中:

到此,我們就可以在 IDEA 中啟動 Nacos 服務了,正常啟動後可以通過 localhost:8848/nacos 存取 Nacos 的 Web 管理端:

除了從 IDEA 中啟動,也可以選擇通過 Maven 命令打包後啟動專案:

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

打包後的壓縮包位於 /nacos/distribution/target 下,我這裡打包的版本是 2.2.1-RC-develop:

上傳到伺服器解壓專案後,同樣需要處理鑑權相關的設定,然後就可以正常啟動 Nacos 專案:

# Linux
sh startup.sh -m standalone

# Windows
startup.cmd -m standalone

Tips:Nacos 預設賬戶密碼是「nacos」。

切換 Nacos

Nacos 部署成功後,我們就可以切換 Dubbo 服務的註冊中心了,首先是在 POM 檔案中引入dubbo-registry-nacos依賴(同時可以移除dubbo-dependencies-zookeeper-curator5依賴):

<dependency>
  <groupId>org.apache.dubbo</groupId>
  <artifactId>dubbo-registry-nacos</artifactId>
  <version>3.2.2</version>
</dependency>

接著修改 application.properties 檔案中註冊中心的設定:

dubbo:
  registry:
    address: nacos://106.75.33.232:8848

至此註冊中心的遷移就完成了,直接啟動修改後的 Dubbo 專案,並開啟 Nacos 的管理端,就可以看到我們的服務已經註冊到了 Nacos 上:

部署 Dubbo Admin

最後,我們來部署一個 Dubbo Admin 服務,用來在不啟動服務使用方的場景下,測試服務提供方的服務。目前 Dubbo Admin 正在通過 Go 重構,因此我們需要將分支 refactor-with-go 切換到 master(master 為 Java 構建的分支,如果你能夠熟練部署 Go 專案,可以不切換)。

Dubbo Admin 需要修改的內容並不多,主要修改註冊中心,Dubbo Admin 的埠號,以及 Dubbo 的 protocol 埠號,首先是註冊中心的設定,Dubbo Admin 預設使用的註冊中心是 Zookeeper,我們修改為 Nacos 的設定:

# centers in dubbo2.7, if you want to add parameters, please add them to the url
#admin.registry.address=zookeeper://127.0.0.1:2181
#admin.config-center=zookeeper://127.0.0.1:2181
#admin.metadata-report.address=zookeeper://127.0.0.1:2181

# nacos config, add parameters to url like username=nacos&password=nacos
admin.registry.address=nacos://127.0.0.1:8848?group=DEFAULT_GROUP&namespace=public
admin.config-center=nacos://127.0.0.1.232:8848?group=dubbo
admin.metadata-report.address=nacos://127.0.0.1:8848?group=dubbo

接著是修改 Dubbo Admin 的埠號和 Dubbo 的 protocol 埠號:

#compress
server.port=8090
server.compression.enabled=true
server.compression.mime-types=text/css,text/javascript,application/javascript
server.compression.min-response-size=10240

#dubbo config
dubbo.application.name=dubbo-admin
dubbo.registry.address=${admin.registry.address}

至此,我們就可以啟動 Dubbo Admin 的服務了,Dubbo Admin 的啟動類在子模組 dubbo-admin-server 中:

啟動後,我們可以看到如下 Web 管理端頁面:

可以看到,Dubbo Admin 提供了非常非常多的功能,不過我們這裡主要使用的是服務測試的功能:

至於 DUbbo Admin 提供的其它功能該如何使用,就留給大家來自行探索了。

Tips

  • 生產環境中,一臺伺服器上通常只會部署一個服務,所以不存在埠號衝突;
  • 同樣的,可以使用 Maven 命令mvn clean package打包 Dubbo Admin 服務後啟動;
  • Dubbo Admin 的預設賬戶密碼是「root」。

如果本文對你有幫助的話,還請多多點贊支援。如果文章中出現任何錯誤,還請批評指正。最後歡迎大家關注分享硬核 Java 技術的金融摸魚俠王有志,我們下次再見!