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