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

单机部署

  1. 下载二进制包运行

    • Linux 或 MacOS:
      # 解压
      tar -xvf rnacos-x86_64-apple-darwin.tar.gz
      # 运行
      ./rnacos
      
    • Windows:解压后直接运行rnacos.exe。
  2. 通过Docker运行

    # 使用最新稳定版本
    docker pull qingpan/rnacos:stable
    docker run --name mynacos -p 8848:8848 -p 9848:9848 -p 10848:10848 -d qingpan/rnacos:stable
    

    Docker的容器运行目录是/io,会从这个目录读写配置文件。
    在这里插入图片描述

  3. 通过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
    
  4. 通过Cargo编译安装

    # 安装
    cargo install rnacos
    # 运行
    rnacos
    
  5. 下载源码编译运行

    git clone https://github.com/r-nacos/r-nacos.git
    cd r-nacos
    cargo build --release
    cargo run --release
    
  6. 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/
  1. 部署到K8s
    K8s支持使用Helm部署。

测试、试用推荐使用第1、第2、第3种方式,直接下载运行就可以使用。

启动配置

RNACOS提供了多种启动配置参数,以适应不同的运行环境和需求。详细的参数说明和配置方式可以参考运行参数说明。

集群部署

RNACOS支持集群部署,具体的集群部署参考文档可以在集群部署说明中找到。


希望这篇博客能帮助你了解RNACOS,并在你的项目中有效地使用它。如果你有任何问题或需要进一步的帮助,请随时在评论区留言。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/63272.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OpenTK为SkiaSharp在.NET 环境下提供OpenGL支持,使其进行高效的2D渲染

前言 在 .NET 环境下,OpenTK 为 SkiaSharp 提供了 OpenGL 支持,使得 SkiaSharp 能够利用 OpenGL 进行高效的 2D 渲染。这种结合能够充分发挥 GPU 的加速能力,从而提升渲染性能,尤其是在需要进行复杂图形处理或频繁更新的应用中&a…

Linux-FrameBuffer设备(LCD)应用编程

本章学习 Linux 下的 Framebuffer 应用编程,通过对本章内容的学习,大家将会了解到 Framebuffer 设备究竟是什么?以及如何编写应用程序来操控 FrameBuffer 设备。 本章将会讨论如下主题。 ⚫ 什么是 Framebuffer 设备? ⚫ LCD 显示…

IDEA中MAVEN的一些设置问题

关于IDEA中MAVEN的一些设置问题 这三个配置的作业分别是什么呢? 在这张截图中,Maven的三个设置分别是: Maven home path (Maven主目录路径): 这是Maven的安装路径,指向Maven的主目录。通常包含 bin、conf 等文件夹。用…

HBU深度学习实验14.5-循环神经网络(1.5)

梯度爆炸实验 造成简单循环网络较难建模长程依赖问题的原因有两个:梯度爆炸和梯度消失。一般来讲,循环网络的梯度爆炸问题比较容易解决,一般通过权重衰减或梯度截断可以较好地来避免;对于梯度消失问题,更加有效的方式…

Leetcode经典题4--查找数组中的多数元素+Boyer-Moore 投票算法

题目描述: 给定一个大小为 n 的数组 nums ,返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 输入输出示例 输入:nums [2,2,1,1,1,2,2] 输出…

android studio 读写文件操作(应用场景二)

android studio版本:2023.3.1 patch2 例程:readtextviewIDsaveandread 本例程是个过渡例程,如果单是实现下图的目的有更简单的方法,但这个方法是下一步工作的基础,所以一定要做。 例程功能:将两个textvi…

【NLP 9、实践 ① 五维随机向量交叉熵多分类】

目录 五维向量交叉熵多分类 规律: 实现: 1.设计模型 2.生成数据集 3.模型测试 4.模型训练 5.对训练的模型进行验证 调用模型 你的平静,是你最强的力量 —— 24.12.6 五维向量交叉熵多分类 规律: x是一个五维(索引)向量&#xff…

windows文件下换行, linux上不换行 解决CR换行符替换为LF notepad++

html文件是用回车换行的,在windows电脑上,显示正常。 文件上传到linux服务器后,文件不换行了。只有一行。而且相关js插件也没法正常运行。 用notepad查看,显示尾部换行符,是CR,这就是原因。CR是不被识别的。…

Unity 模拟百度地图,使用鼠标控制图片在固定区域内放大、缩小、鼠标左键拖拽移动图片

效果展示: 步骤流程: 1.使用的是UGUI,将下面的脚本拖拽到图片上即可。 using UnityEngine; using UnityEngine.UI; using UnityEngine.EventSystems;public class CheckImage : MonoBehaviour, IDragHandler, IBeginDragHandler, IEndDragH…

游戏引擎学习第30天

仓库: https://gitee.com/mrxiao_com/2d_game 回顾 在这段讨论中,重点是对开发过程中出现的游戏代码进行梳理和进一步优化的过程。 工作回顾:在第30天,回顾了前一天的工作,并提到今天的任务是继续从第29天的代码开始&#xff0c…

基于MFC绘制门电路

MFC绘制门电路 1. 设计内容、方法与难点 本课题设计的内容包括了基本门电路中与门和非门的绘制、选中以及它们之间的连接。具体采用的方法是在OnDraw函数里面进行绘制,并设计元器件基类,派生出与门和非门,并组合了一个引脚类,在…

【text2sql】低资源场景下Text2SQL方法

SFT使模型能够遵循输入指令并根据预定义模板进行思考和响应。如上图,、 和 是用于通知模型在推理过程中响应角色的角色标签。 后面的内容表示模型需要遵循的指令,而 后面的内容传达了当前用户对模型的需求。 后面的内容代表模型的预期输出,也…

学习threejs,实现配合使用WebWorker

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:threejs gis工程师 文章目录 一、🍀前言1.1 ☘️WebWorker web端多线程 二、…

16-03、JVM系列之:内存与垃圾回收篇(三)

JVM系列之:内存与垃圾回收篇(三) ##本篇内容概述: 1、执行引擎 2、StringTable 3、垃圾回收一、执行引擎 ##一、执行引擎概述 如果想让一个java程序运行起来,执行引擎的任务就是将字节码指令解释/编译为对应平台上的本地机器指令才可以。 简…

小程序 - 美食列表

小程序交互练习 - 美食列表小程序开发笔记 目录 美食列表 功能描述 准备工作 创建项目 配置页面 配置导航栏 启动本地服务器 页面初始数据 设置获取美食数据 设置onload函数 设置项目配置 页面渲染 页面样式 处理电话格式 创建处理电话格式脚本 页面引入脚本 …

Qt6.8 QGraphicsView鼠标坐标点偏差

ui文件拖放QGraphicsView,src文件定义QGraphicsScene赋值给图形视图。 this->scene new QGraphicsScene();ui.graph->setScene(this->scene);对graphicview过滤事件,只能在其viewport之后安装,否则不响应。 ui.graph->viewport…

若依 ruoyi VUE el-select 直接获取 选择option 的 label和value

1、最新在研究若依这个项目,我使用的是前后端分离的方案,RuoYi-Vue-fast(后端) RuoYi-Vue-->ruoyi-ui(前端)。RuoYi-Vue-fast是单应用版本没有区分那么多的modules 自己开发起来很方便,这个项目运行起来很方便,但是需要自定义的…

springboot事务手动回滚报错

捕捉异常之后手动标记回滚事务 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); 没有嵌套事务,还是报Transaction rolled back because it has been marked as rollback-only异常错误 查看错误堆栈,service调用的方法外层还套…

使用 LlamaFactory 结合开源大语言模型实现文本分类:从数据集构建到 LoRA 微调与推理评估

文章目录 背景介绍文本分类数据集Lora 微调模型部署与推理期待模型的输出结果 文本分类评估代码 背景介绍 本文将一步一步地,介绍如何使用llamafactory框架利用开源大语言模型完成文本分类的实验,以 LoRA微调 qwen/Qwen2.5-7B-Instruct 为例。 文本分类…

ARM内核与单片机

1.单片机硬件架构如下所示:各种硬件通过总线进行连接。 2.M4内核架构 3.单片机如何工作: 4.CPU是通过读写寄存器来控制GPIO的 5.GPIO的硬件框架:一共有8种模式 (1)推挽/推挽复用输出。下图先看图1,如果输入…