王有志,一個分享硬核Java技術的互金摸魚俠
加入Java人的提桶跑路群:共同富裕的Java人
本文是《從 0 開始學 Dubbo》系列文章中應用篇的番外篇。
在這篇文章中我會和大家一起部署單機模式的 Nacos,並將 Dubbo 的註冊中心從 Zookeeper 遷移到 Nacos 上。另外,為了在只啟動 Dubbo 服務提供者的場景下進行測試,我們會部署一個 Dubbo Admin 服務。
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 部署成功後,我們就可以切換 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 正在通過 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:
如果本文對你有幫助的話,還請多多點贊支援。如果文章中出現任何錯誤,還請批評指正。最後歡迎大家關注分享硬核 Java 技術的金融摸魚俠王有志,我們下次再見!