大家好,我是 Java陈序员
。
在开发中,Nacos 作为一款非常流行的微服务配置中心、注册中心,在构建微服务项目时往往会使用到它。
但是对于个人开发者而言,云服务器资源有限,往往无法撑起 Nacos 服务的高内存使用!
今天,给大家介绍一款轻量级的 Nacos 服务,功能平替,占用资源极低!
关注微信公众号:【Java陈序员】,获取开源项目分享、AI副业分享、超200本经典计算机电子书籍等。
项目简介
r-nacos
—— 一个用 Rust 实现的轻量、快速、稳定、高性能的 Nacos 服务,包含注册中心、配置中心、Web 管理控制台功能,支持单机、集群部署。
架构图
对比 Nacos
r-nacos
相较于 Java Nacos 来说,提供相同功能,设计上完全兼容最新版本 Nacos 面向 Client SDK 的协议,Nacos 服务应用可以无缝平迁到 r-nacos
. 但是 r-nacos
启动更快、占用系统资源更小、性能更高。
由于 r-nacos
资源占用率低: 包 10M 出头不依赖、JDK、运行时 CPU 小于 0.5%、小于 5M(具体和实例有关),十分适合用于替换个人资源云服务部署的 Nacos.
性能压测
r-nacos
的性能还是非常好的,如下是官方提供的性能压测结果表,可以参考下。
项目截图
配置列表
服务列表
用户管理
命名空间
数据迁移
系统监控
快速上手
安装运行
方式 1:下载二进制包运行
# 解压 tar -xvf rnacos-x86_64-apple-darwin.tar.gz # 运行 ./rnacos
方式 2: 通过 Docker 运行
# stable是最新正式版本号,也可以指定镜像版本号,如: qingpan/rnacos:v0.4.0 docker pull qingpan/rnacos:stable docker run --name mynacos -p 8848:8848 -p 9848:9848 -p 10848:10848 -d qingpan/rnacos:stable
方式 3: 通过 docker-compose 运行
# 集群部署样例,数据目录: ./data version: '3.8' services: nacos: image: qingpan/rnacos:stable container_name: nacos ports: - "8848:8848" - "9848:9848" - "10848:10848" volumes: - /data/software/rnacos:/io:rw environment: - RNACOS_INIT_ADMIN_USERNAME=admin - RNACOS_INIT_ADMIN_PASSWORD=admin - RNACOS_HTTP_PORT=8848 restart: always
方式 4: 下载源码编译运行
git clone https://github.com/r-nacos/r-nacos.git cd r-nacos cargo build --release cargo run --release
启动服务后可以在浏览器通过 http://127.0.0.1:10848/rnacos/
访问 r-nacos
控制台。
初始用户名/密码:admin/admin
.
除了以上几种部署安装方式外,官方还提供了 cargo 编译安装、MacOS 支持通过 brew 安装、K8s安装 等方式,以及集群部署,对应的安装可参考官方文档。
客户端使用
r-nacos
安装运行好后,Java 服务客户端仍可使用 Nacos 原来的集成方式,只需将配置中心、注册中心的地址指向为 r-nacos
服务地址,无缝衔接~
配置中心 Http API 示例
# 设置配置 curl -X POST 'http://127.0.0.1:8848/nacos/v1/cs/configs' -d 'dataId=t001&group=foo&content=contentTest' # 查询 curl 'http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=t001&group=foo'
注册中心 Http API 示例
# 注册服务实例 curl -X POST 'http://127.0.0.1:8848/nacos/v1/ns/instance' -d 'port=8000&healthy=true&ip=192.168.1.11&weight=1.0&serviceName=nacos.test.001&groupName=foo&metadata={"app":"foo","id":"001"}' curl -X POST 'http://127.0.0.1:8848/nacos/v1/ns/instance' -d 'port=8000&healthy=true&ip=192.168.1.12&weight=1.0&serviceName=nacos.test.001&groupName=foo&metadata={"app":"foo","id":"002"}' curl -X POST 'http://127.0.0.1:8848/nacos/v1/ns/instance' -d 'port=8000&healthy=true&ip=192.168.1.13&weight=1.0&serviceName=nacos.test.001&groupName=foo&metadata={"app":"foo","id":"003"}' # 查询服务实例 curl "http://127.0.0.1:8848/nacos/v1/ns/instance/list?&namespaceId=public&serviceName=foo%40%40nacos.
从功能上来说 r-nacos
是可以平替 Nacos 的,而且它占用内存资源非常低,十分适用于个人开发者使用,感兴趣的可以尝试体验下~
项目地址:https://github.com/nacos-group/r-nacos
最后
推荐的开源项目已经收录到 GitHub
项目,欢迎 Star
:
https://github.com/chenyl8848/great-open-source-project
或者访问网站,进行在线浏览:
https://chencoding.top:8090/#/
大家的点赞、收藏和评论都是对作者的支持,如文章对你有帮助还请点赞转发支持下,谢谢!
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。