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:8848config:server-addr: http://192.168.3.101:8848file-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