Nacos作為一款非常流行的微服務註冊中心,我們在構建微服務專案時往往會使用到它。最近發現一款輕量級的Nacos專案r-nacos,佔用記憶體極低,效能也很強大,分享給大家。本文就以我的mall-swarm微服務電商實戰專案為例,來聊聊它在專案中的使用。
r-nacos簡介
r-nacos是一款使用rust實現的nacos服務,對比阿里的nacos來說,可以提供相同的註冊中心和配置中心功能。同時它佔用的記憶體更小,效能也很優秀,能提供更穩定的服務。
下面是r-nacos管理控制檯使用的效果圖,大家可以參考下:
mall-swarm專案簡介
由於之後我們需要用到mall-swarm專案,這裡簡單介紹下它。 mall-swarm專案(11k+star)是一套微服務商城系統,基於2024最新微服技術棧,涵蓋Spring Cloud Alibaba、Spring Boot 3.2、JDK17、Kubernetes等核心技術。mall-swarm在電商業務的基礎整合了註冊中心、配置中心、監控中心、閘道器等系統功能。
- Github地址:https://github.com/macrozheng/mall-swarm
- Gitee地址:https://gitee.com/macrozheng/mall-swarm
- 教程網站:https://cloud.macrozheng.com
專案演示:
安裝
r-nacos支援Windows下的exe檔案安裝,也支援Linux下的Docker環境安裝,這裡以Docker安裝為例。
- 首先透過如下命令下載r-nacos的Docker映象:
docker pull qingpan/rnacos:stable
- 安裝完成後透過如下命令執行r-nacos容器;
docker run --name rnacos -p 8848:8848 -p 9848:9848 -p 10848:10848 -d qingpan/rnacos:stable
- 接下來就可以訪問r-nacos的控制檯了,預設管理員賬號密碼為
admin:admin
,訪問地址:http://192.168.3.101:10848/rnacos/
專案實戰
接下來就以我的mall-swarm微服務電商實戰專案為例,來講解下它的使用。由於mall-swarm專案中各個服務的配置與執行都差不多,這裡以mall-admin模組為例。
- 首先我們需要下載mall-swarm專案的程式碼,下載完成後修改專案的
bootstrap-dev.yml
檔案,將其中的nacos連線地址改為r-nacos的地址,專案地址:https://github.com/macrozheng/mall-swarm
spring:
cloud:
nacos:
discovery:
server-addr: http://192.168.3.101:8848
config:
server-addr: http://192.168.3.101:8848
file-extension: yaml
- 接下來在r-nacos的
配置列表
中新增mall-admin-dev.yaml
配置,該配置下專案的config
目錄下;
- 之後把mall-admin模組執行起來,此時在
r-nacos
的服務列表
功能中就可以看到註冊好的服務了;
- 接下來把其他模組的配置也新增到r-nacos的配置列表中去;
- 再執行其他模組,最終
服務列表
顯示如下;
- 之後透過閘道器就可以訪問到mall-swarm專案的線上API文件了,訪問地址:http://localhost:8201/doc.html
- 這裡我們再把mall-swarm專案的後臺管理系統前端專案
mall-admin-web
給執行起來;
- 最後我們再把mall-swarm專案的前臺商城系統前端專案
mall-app-web
給執行起來,發現都是可以正常從閘道器呼叫API的。
其他使用
r-nacos除了提供了基本的註冊中心和配置中心功能,還提供了一些其他的實用功能,這裡我們一起來了解下。
- 如果你想新增一些其他訪問的使用者,或者修改admin使用者的資訊,可以使用
使用者管理
功能;
- 如果你想對r-nacos中配置資訊進行匯入匯出,可以使用
資料遷移
功能;
- 如果你想對r-nacos中的執行狀態進行監控,你可以使用
系統監控
功能,監控還是挺全的。
效能壓測
r-nacos的效能還是非常好的,這裡有個r-nacos官方提供的效能壓測結果表,大家可以參考下。
對比Nacos
個人感覺對比阿里的nacos,佔用的記憶體資源減少了非常多,執行不到10M記憶體,而nacos需要900M,伺服器資源不寬裕的小夥伴可以嘗試下它。
總結
今天以我的mall-swarm微服務電商實戰專案為例,講解了r-nacos的使用。從功能上來說r-nacos是完全可以替代nacos的,而且它佔用記憶體資源非常低,效能也很強大,感興趣的小夥伴可以嘗試下它!
專案地址
https://github.com/nacos-group/r-nacos