RNACOS:用Rust实现的Nacos服务
RNACOS是一个使用Rust语言开发的Nacos服务实现,它继承了Nacos的所有核心功能,并在此基础上进行了优化和改进。作为一个轻量级、快速、稳定且高性能的服务,RNACOS不仅包含了注册中心、配置中心和Web管理控制台的功能,还支持单机和集群部署。
RNACOS的特点
- 兼容性:RNACOS在设计上完全兼容最新版本的Nacos客户端SDK协议,包括1.x的HTTP OpenApi和2.x的gRPC协议,使得使用Nacos服务的应用可以平滑迁移到RNACOS。
- 性能提升:与Java版本的Nacos相比,RNACOS提供了更快的启动速度、更低的系统资源占用、更高的性能和更稳定的运行。
- 文档支持:详细的使用说明和文档可以在RNACOS Docs中找到。
Docker Pulls 和 GitHub Downloads
RNACOS提供了多种安装和运行方式,包括从GitHub Releases下载二进制包、使用Docker镜像等。
https://github.com/nacos-group/r-nacos
适用场景
- 开发测试环境:如果你的开发测试环境正在使用Nacos,可以考虑替换为RNACOS,享受秒级的启动速度。
- 个人资源云服务:对于个人资源云服务部署的Nacos,RNACOS是一个资源占用率低(包大小仅10M出头,不依赖JDK)、运行时CPU占用小于0.5%、内存占用小于5M的好选择。
- 性能与稳定性提升:如果你正在使用非定制的Nacos服务,并希望提升服务性能与稳定性,可以考虑迁移到RNACOS。
演示
控制台演示地址:RNACOS Demo(演示服务与网址由一位热心用户提供)
- 用户名:dev
- 密码:dev
演示内容包括:
- 配置中心:接近5千个配置
- 服务中心:30个服务,每个服务有15个实例,共450个服务实例
注:以上演示内容,服务使用的内存在15M左右。
快速开始
一、安装运行RNACOS
单机部署
-
下载二进制包运行:
- Linux 或 MacOS:
# 解压 tar -xvf rnacos-x86_64-apple-darwin.tar.gz # 运行 ./rnacos - Windows:解压后直接运行rnacos.exe。
- Linux 或 MacOS:
-
通过Docker运行:
# 使用最新稳定版本 docker pull qingpan/rnacos:stable docker run --name mynacos -p 8848:8848 -p 9848:9848 -p 10848:10848 -d qingpan/rnacos:stableDocker的容器运行目录是/io,会从这个目录读写配置文件。

-
通过Docker-Compose运行:
version: '3.8' services:nacos:image: qingpan/rnacos:stablecontainer_name: nacosports:- "8848:8848"- "9848:9848"- "10848:10848"volumes:- ./data:/io:rwenvironment:- RNACOS_INIT_ADMIN_USERNAME=admin- RNACOS_INIT_ADMIN_PASSWORD=admin- RNACOS_HTTP_PORT=8848restart: always -
通过Cargo编译安装:
# 安装 cargo install rnacos # 运行 rnacos -
下载源码编译运行:
git clone https://github.com/r-nacos/r-nacos.git cd r-nacos cargo build --release cargo run --release -
MacOS通过brew安装:
# 把r-nacos加入taps brew tap r-nacos/r-nacos # brew 安装 r-nacos brew install r-nacos # 运行 rnacos # 后续可以直接通过以下命令更新到最新版本 # brew upgrade r-nacos
#账号和密码:admin admin
http://localhost:10848/rnacos/
- 部署到K8s:
K8s支持使用Helm部署。
测试、试用推荐使用第1、第2、第3种方式,直接下载运行就可以使用。
启动配置
RNACOS提供了多种启动配置参数,以适应不同的运行环境和需求。详细的参数说明和配置方式可以参考运行参数说明。
集群部署
RNACOS支持集群部署,具体的集群部署参考文档可以在集群部署说明中找到。
希望这篇博客能帮助你了解RNACOS,并在你的项目中有效地使用它。如果你有任何问题或需要进一步的帮助,请随时在评论区留言。
相关文章:
RNACOS:用Rust实现的Nacos服务
RNACOS是一个使用Rust语言开发的Nacos服务实现,它继承了Nacos的所有核心功能,并在此基础上进行了优化和改进。作为一个轻量级、快速、稳定且高性能的服务,RNACOS不仅包含了注册中心、配置中心和Web管理控制台的功能,还支持单机和集…...
JAVA |日常开发中JSTL标签库详解
JAVA |日常开发中JSTL标签库详解 前言一、JSTL 概述1.1 定义1.2 优势 二、JSTL 核心标签库2.1 导入 JSTL 库2.2 <c:out>标签 - 输出数据2.3 <c:if>标签 - 条件判断2.4 <c:choose>、<c:when>和<c:otherwise>标签 - 多条件选择 结束语优…...
Apache HttpClient 4和5访问没有有效证书的HTTPS
本文将展示如何配置Apache HttpClient 4和5以支持“接受所有”SSL。 目标很简单——访问没有有效证书的HTTPS URL。 SSLPeerUnverifiedException 在未配置SSL的情况下,尝试消费一个HTTPS URL时会遇到以下测试失败: Test void whenHttpsUrlIsConsumed…...
Lighthouse(灯塔)—— Chrome 浏览器性能测试工具
1.认识 Lighthouse Lighthouse 是 Google 开发的一款开源性能测试工具,用于分析网页或 Web 应用的性能、可访问性、最佳实践、安全性以及 SEO 等关键指标。开发人员可以通过 Lighthouse 快速了解网页的性能瓶颈,并基于优化建议进行改进。 核心功能&…...
扫二维码进小程序的指定页面
草料二维码解码器 微信开发者工具 获取二维码解码的参数->是否登陆->跳转 options.q onLoad: function (options) {// console.log("options",options.q)if (options && options.q) {// 解码二维码携带的链接信息let qrUrl decodeURIComponent(optio…...
如何用IntelliJ IDEA开发Android Studio用自定义Gradle插件
博主所用软件版本为: IntelliJ IDEA 2024.1.4 (Community Edition) Android Studio Ladybug Feature Drop | 2024.2.2 Beta 1 1、制作gradle插件(IntelliJ IDEA 2024.1.4) 新建groovy工程,File–>New–>Project… 右键点…...
YOLOv8实战道路裂缝缺陷识别
本文采用YOLOv8作为核心算法框架,结合PyQt5构建用户界面,使用Python3进行开发。YOLOv8以其高效的实时检测能力,在多个目标检测任务中展现出卓越性能。本研究针对道路裂缝数据集进行训练和优化,该数据集包含丰富的道路裂缝图像样本…...
RPC一分钟
概述 微服务治理:Springcloud、Dubbo服务通信:Grpc、Trift Dubbo 参考 Dubbo核心功能,主要提供了:远程方法调用、智能容错和负载均衡、提供服务自动注册、自动发现等高效服务治理功能。 Dubbo协议Dubbo支持dubbo、rmi、http、…...
Elasticsearch ILM 故障排除:常见问题及修复
作者:来自 Elastic Stef Nestor 大家好!我们的 Elasticsearch 团队正在不断改进我们的索引生命周期管理 (index Lifecycle Management - ILM) 功能。当我第一次加入 Elastic Support 时,我通过我们的使用 ILM 实现自动滚动教程快速上手。在帮…...
Unity 设计模式-策略模式(Strategy Pattern)详解
策略模式(Strategy Pattern)是一种行为型设计模式,定义了一系列算法,并将每种算法封装到独立的类中,使得它们可以互相替换。策略模式让算法可以在不影响客户端的情况下独立变化,客户端通过与这些策略对象进…...
【Maven系列】深入解析 Maven 常用命令
前言 在当今的软件开发过程中,项目管理是至关重要的一环。项目管理包括了项目构建、依赖管理以及发布部署等诸多方面。而在Java生态系统中,Maven已经成为了最受欢迎的项目管理工具之一。Maven 是一套用于构建、依赖管理和项目管理的工具,主要…...
微信小程序之简单的数据中心管理平台(1)
微信小程序之简单的数据中心管理平台(1) 引言 随着微信小程序的广泛应用,越来越多的企业开始探索如何利用这一技术开发高效、便捷的管理平台。数据中心管理作为信息化建设的重要组成部分,需要一个灵活、可扩展的界面来实现资源的…...
sqlmap --os-shell的原理(MySQL,MSSQL,PostgreSQL,Oracle,SQLite)
1. MySQL 条件 数据库用户需要具备高权限(如 FILE 权限)。数据库服务运行用户需要对目标目录有写权限。Web 服务器有可写目录,且支持执行上传的脚本(如 PHP、JSP 等)。 原理 利用 MySQL 的 SELECT ... INTO OUTFIL…...
2024年认证杯SPSSPRO杯数学建模C题(第一阶段)云中的海盐解题全过程文档及程序
2024年认证杯SPSSPRO杯数学建模 C题 云中的海盐 原题再现: 巴黎气候协定提出的目标是:在2100年前,把全球平均气温相对于工业革命以前的气温升幅控制在不超过2摄氏度的水平,并为1.5摄氏度而努力。但事实上,许多之前的…...
三维扫描检测在汽车制造中的应用
三维扫描,通过先进三维扫描技术获取产品和物体的形面三维数据,建立实物的三维图档,满足各种实物3D模型数据获取、三维数字化展示、3D多媒体开发、三维数字化存档、逆向设计、产品开发、直接3D打印制造或辅助加工制造等一系列的应用。 三维扫描…...
【NoSQL数据库】Hbase基本操作——数据库表的增删改查
目录 一、Hbase原理 二、HBase数据库操作 三、遇到的问题和解决方法 一、Hbase原理 HBase的数据模型: 行键 时间戳 列族:contents 列族:anchor 列族:mime “com.cnn.www” T9 Achor:cnnsi.com”CNN” T8 Achor:…...
【C++】格式化输出详解:掌握 cout 的进阶用法
博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 💯前言💯格式化输出的理论概述💯控制输出宽度和填充字符setw 操作符setfill 操作符 💯控制浮点数的显示格式fixed 与 scientificsetprecision 💯…...
设计模式学习思路二
设计模式的学习思路_设计模式必须按顺序进行吗-CSDN博客 以下是一些方法和思路可以帮助你更清晰地识别使用了哪种设计模式。 1. 确定模式时的思考步骤 以下是分析代码时,你可以遵循的一些思路和步骤,帮助你识别可能使用的设计模式: a. 识别…...
什么是等级保护
1.为什么要实施等级保护: •国家信息安全形势严峻(敌对势力),针对基础信息系统的违法犯罪持续上升(网上诈骗、入侵、网上盗窃) •维护国家安全的需求(基础信息网络【互联网、电信网、广电网】及重要信息系统【银行、铁路、电力、海关】已经成为国家的关键基础设施) •信息安全是…...
k8s api对象,CRD
在Kubernetes项目中,一个API对象在Etcd里的完整资源路径,是由:Group(API组)、Version(API版本)和Resource(API资源类型)三个部分组成 apiVersion: batch/v2alpha1 kind:…...
BetterDiscord Installer完全指南:如何一键安装和优化Discord插件
BetterDiscord Installer完全指南:如何一键安装和优化Discord插件 【免费下载链接】Installer A simple standalone program which automates the installation, removal and maintenance of BetterDiscord. 项目地址: https://gitcode.com/gh_mirrors/ins/Instal…...
Zynq MPSoC开发实战:从Vivado硬件设计到SDK软件部署全流程解析
1. 项目概述与开发板初探作为一名在嵌入式领域摸爬滚打了十多年的老工程师,每当有新平台、新架构出现时,那种想亲手“点亮”它的冲动总是难以抑制。Xilinx的Zynq UltraScale MPSoC系列就是这样一块“硬骨头”,官方宣称相比经典的Zynq-7000系列…...
合同系统业务功能
合同管理系统的核心是实现合同全生命周期管控,其生命周期主要分为五大环节:签订前管理、审批流程管理审批管理、合同签订、合同信息与文本管理、合同履约执行。 不同环节对应不同的功能需求,需结合企业业务特点灵活适配,以下是各环…...
测试工程师的沟通技巧:如何向开发工程师反馈bug
在软件研发的协作链条中,测试工程师与开发工程师的互动至关重要,而反馈bug则是两者沟通的核心场景之一。高效、专业的bug反馈,不仅能加速问题解决,提升产品质量,更能维护良好的团队协作氛围。对于软件测试从业者而言&a…...
从CNN到Transformer:LeViT和LocalViT是如何把‘局部感知’这个CNN绝活‘偷’过来的?
从CNN到Transformer:LeViT和LocalViT如何实现局部感知的跨架构融合 视觉Transformer(ViT)的崛起彻底改变了计算机视觉领域的格局,但纯Transformer架构在图像处理中面临着一个根本性挑战——缺乏CNN与生俱来的局部感知能力。本文将…...
学术论文翻译翻车重灾区!Perplexity翻译查询功能如何通过引用锚点保留+LaTeX公式智能隔离实现零失真输出(仅限Pro+订阅用户可见的隐藏模式)
更多请点击: https://intelliparadigm.com 第一章:学术论文翻译翻车重灾区的底层归因分析 学术论文翻译失准并非偶然现象,其背后存在系统性语言学、认知科学与工程实践三重张力。当非母语研究者依赖通用大模型或词典式工具进行技术文本转译时…...
保姆级教程:用Python+OpenCV高效切割Potsdam语义分割数据集(附完整代码)
PythonOpenCV实战:Potsdam语义分割数据集高效切割全流程解析 第一次接触Potsdam数据集时,面对那些6000x6000像素的巨幅航拍图像,我的GPU在训练时直接报显存不足的错误。这让我意识到,高分辨率图像的切割预处理不是可选项…...
避坑指南:你的Harmony和Seurat SCTransform连用顺序对了吗?一个参数引发的聚类差异
Harmony与Seurat SCTransform联用避坑指南:参数细节如何影响聚类结果 在单细胞RNA测序数据分析中,数据预处理和批次校正对最终结果的可靠性至关重要。许多研究者已经熟悉了Seurat流程中的SCTransform标准化方法和Harmony批次校正工具的基本使用ÿ…...
MySQL-进阶篇-锁
温馨提示:建议在PC端浏览~锁概述介绍 锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的计算资源(CPU、RAM、I/O)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性…...
CANN/asc-devkit核间同步API文档
CrossCoreWaitFlag(ISASI) 【免费下载链接】asc-devkit 本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。 项目地址: https…...
