{"id":13597819,"url":"https://github.com/nacos-group/r-nacos","last_synced_at":"2025-04-10T05:33:41.066Z","repository":{"id":160989996,"uuid":"635810127","full_name":"nacos-group/r-nacos","owner":"nacos-group","description":"Nacos server re-implemented in Rust.","archived":false,"fork":false,"pushed_at":"2024-04-29T15:23:29.000Z","size":3959,"stargazers_count":508,"open_issues_count":10,"forks_count":55,"subscribers_count":10,"default_branch":"master","last_synced_at":"2024-04-29T16:40:01.879Z","etag":null,"topics":["config","microservices","nacos","r-nacos","rust","service-discovery"],"latest_commit_sha":null,"homepage":"https://r-nacos.github.io/docs/","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nacos-group.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-05-03T13:56:28.000Z","updated_at":"2024-05-12T18:20:09.918Z","dependencies_parsed_at":"2024-04-29T16:40:22.089Z","dependency_job_id":"61c62d32-04d4-4b56-8f4d-6ac0a304e8f9","html_url":"https://github.com/nacos-group/r-nacos","commit_stats":null,"previous_names":["r-nacos/r-nacos","heqingpan/rnacos","nacos-group/r-nacos"],"tags_count":57,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nacos-group%2Fr-nacos","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nacos-group%2Fr-nacos/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nacos-group%2Fr-nacos/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nacos-group%2Fr-nacos/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nacos-group","download_url":"https://codeload.github.com/nacos-group/r-nacos/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248163428,"owners_count":21057939,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["config","microservices","nacos","r-nacos","rust","service-discovery"],"created_at":"2024-08-01T17:00:41.849Z","updated_at":"2025-04-10T05:33:36.027Z","avatar_url":"https://github.com/nacos-group.png","language":"Rust","funding_links":[],"categories":["Rust"],"sub_categories":[],"readme":"\n# r-nacos\n\n## 简介\n\nr-nacos是一个用rust实现的nacos服务。\n\nr-nacos是一个轻量、 快速、稳定、高性能的服务；包含注册中心、配置中心、web管理控制台功能，支持单机、集群部署。\n\nr-nacos设计上完全兼容最新版本nacos面向client sdk 的协议（包含1.x的http OpenApi，和2.x的grpc协议）, 支持使用nacos服务的应用平迁到 r-nacos。\n\nr-nacos相较于java nacos来说，是一个提供相同功能，启动更快、占用系统资源更小、性能更高、运行更稳定的服务。\n\n详细说明可以看 [r-nacos docs](https://r-nacos.github.io/docs/)\n\n![Docker Pulls](https://img.shields.io/docker/pulls/qingpan/rnacos)  \n![GitHub Downloads (all assets, all releases)](https://img.shields.io/github/downloads/r-nacos/r-nacos/total)\n\n## 适用场景\n\n1. 开发测试环境使用nacos，nacos服务可以换成r-nacos。启动更快，秒启动。\n2. 个人资源云服务部署的 nacos，可以考虑换成r-nacos。资源占用率低: 包10M 出头，不依赖 JDK；运行时 cpu 小于0.5% ，小于5M（具体和实例有关）。\n3. 使用非订制nacos服务 ，希望能提升服务性能与稳定性，可以考虑迁移到 r-nacos。\n\n\n## 演示\n\n控制台演示地址： [https://www.bestreven.top/rnacos/](https://www.bestreven.top/rnacos/) \n(演示服务与网址由一位热心用户提供）\n\n用户名: `dev` ,密码: `dev`\n\n演示内容：\n\n+ 配置中心：接近5千个配置\n+ 服务中心：30个服务，每个服务有15个实例，共450个服务实例。\n\n*注：* 以上演示内容，服务使用的内存在15M左右\n\n## 快速开始\n\n### 一、 安装运行 r-nacos\n\n【单机部署】\n\n#### 方式1：下载二进制包运行\n\n从 [github release](https://github.com/r-nacos/r-nacos/releases) 下载对应系统的应用包，解压后即可运行。\n\nlinux 或 MacOS\n\n```shell\n# 解压\ntar -xvf rnacos-x86_64-apple-darwin.tar.gz\n# 运行\n./rnacos\n```\n\nwindows 解压后直接运行 rnacos.exe 即可。\n\n#### 方式2: 通过docker 运行\n\n\n```\n#stable是最新正式版本号，也可以指定镜像版本号，如： qingpan/rnacos:v0.4.0\ndocker pull qingpan/rnacos:stable  \ndocker run --name mynacos -p 8848:8848 -p 9848:9848 -p 10848:10848 -d qingpan/rnacos:stable\n```\n\ndocker 的容器运行目录是 /io，会从这个目录读写配置文件\n\n##### docker 版本说明\n\n应用每次打包都会同时打对应版本的docker包 ，qingpan/rnacos:$tag 。\n\n每个版本会打两类docker包\n\n|docker包类型|tag 格式| 示例 |说明 |\n|--|--|--|--|\n|gnu debian包|$version| qingpan/rnacos:v0.4.0 | docker包基于debian-slim,体积比较大(压缩包36M,解压后102M),运行性能相对较高;|\n|musl alpine包|$version-alpine| qingpan/rnacos:v0.4.0-alpine | docker包基于alpine,体积比较小(压缩包11M,解压后34M),运行性能相对较低;|\n\n\n如果不观注版本，可以使用最新正式版本tag: \n\n+ 最新的gnu正式版本: `qingpan/rnacos:stable`\n+ 最新的alpine正式版本: `qingpan/rnacos:stable-alpine`\n\n\n#### 方式3: 通过docker-compose 运行\n\n单机部署样列:\n\n[docker-compose.yaml](https://github.com/nacos-group/r-nacos/blob/master/docker/docker-compose/r-nacos-simple/docker-compose.yaml)\n\n```yaml\n# 集群部署样例,数据目录: ./data\nversion: '3.8'\n\nservices:\n  nacos:\n    image: qingpan/rnacos:stable\n    container_name: nacos\n    ports:\n      - \"8848:8848\"\n      - \"9848:9848\"\n      - \"10848:10848\"\n    volumes:\n      - ./data:/io:rw\n    environment:\n      - RNACOS_INIT_ADMIN_USERNAME=admin\n      - RNACOS_INIT_ADMIN_PASSWORD=admin\n      - RNACOS_HTTP_PORT=8848\n    restart: always\n\n```\n\n集群部署样列: [docker-compose.yaml](https://github.com/nacos-group/r-nacos/blob/master/docker/docker-compose/r-nacos-cluster/docker-compose.yaml)\n\n#### 方式4：通过 cargo 编译安装\n\n```\n# 安装\ncargo install rnacos\n# 运行\nrnacos\n```\n\n#### 方式5: 下载源码编译运行\n\n```\ngit clone https://github.com/r-nacos/r-nacos.git\ncd r-nacos\ncargo build --release\ncargo run --release\n```\n\n#### 方式6: MacOS支持通过brew安装\n\n```shell\n# 把r-nacos加入taps\nbrew tap r-nacos/r-nacos \n\n# brew 安装 r-nacos\nbrew install r-nacos\n\n# 运行\nrnacos\n\n# 后续可以直接通过以下命令更新到最新版本\n# brew upgrade r-nacos \n```\n\n#### 方式7: 部署到k8s\n\nk8s支持使用 [helm](https://github.com/nacos-group/r-nacos/tree/master/deploy/k8s/helm) 部署。\n\n\n测试、试用推荐使用第1、第2、第3种方式，直接下载运行就可以使用。\n\n在linux下第1种方式默认是musl版本(性能比gnu版本差一些)，在生产服务对性能有要求的可以考虑使用第2、第3、第4、第5种在对应环境编译gnu版本部署。\n\n#### 启动配置: \n\n| 参数KEY|内容描述|默认值|示例|开始支持的版本|\n|--|--|--|--|--|\n|RNACOS_HTTP_PORT|r-nacos监听http端口|8848|8848|0.1.x|\n|RNACOS_GRPC_PORT|r-nacos监听grpc端口|默认是 HTTP端口+1000|9848|0.1.x|\n|RNACOS_HTTP_CONSOLE_PORT|r-nacos独立控制台端口|默认是 HTTP端口+2000;设置为0可不开启独立控制台|10848|0.4.x|\n|RNACOS_CONSOLE_LOGIN_ONE_HOUR_LIMIT|r-nacos控制台登录1小时失败次数限制|默认是5,一个用户连续登陆失败5次，会被锁定1个小时|5|0.4.x|\n|RNACOS_HTTP_WORKERS|http工作线程数|cpu核数|8|0.1.x|\n|RNACOS_CONFIG_DB_FILE|配置中心的本地数据库文件地址【0.2.x后不在使用】|config.db|config.db|0.1.x|\n|RNACOS_CONFIG_DB_DIR|配置中心的本地数据库文件夹, 会在系统运行时自动创建【因语义原因，v0.6.x后推荐使用RNACOS_DATA_DIR】|nacos_db|nacos_db|0.2.x|\n|RNACOS_DATA_DIR|本地数据库文件夹, 会在系统运行时自动创建【与RNACOS_CONFIG_DB_DIR等价，用于替代RNACOS_CONFIG_DB_DIR】|linux,MacOS默认为~/.local/share/r-nacos/nacos_db;windows,docker默认为nacos_db|nacos_db|0.6.x|\n|RNACOS_RAFT_NODE_ID|节点id|1|1|0.3.0|\n|RNACOS_RAFT_NODE_ADDR|节点地址Ip:GrpcPort,单节点运行时每次启动都会生效；多节点集群部署时，只取加入集群时配置的值|127.0.0.1:GrpcPort|127.0.0.1:9848|0.3.0|\n|RNACOS_RAFT_AUTO_INIT|是否当做主节点初始化,(只在每一次启动时生效)|节点1时默认为true,节点非1时为false|true|0.3.0|\n|RNACOS_RAFT_JOIN_ADDR|是否当做节点加入对应的主节点,LeaderIp:GrpcPort；只在第一次启动时生效|空|127.0.0.1:9848|0.3.0|\n|RNACOS_RAFT_SNAPSHOT_LOG_SIZE|raft打包snapshot镜像的日志数量;即变更日志超过这个值则会触发一次打包镜像|默认值10000|10000|0.5.0|\n|RUST_LOG|日志等级:debug,info,warn,error;所有http,grpc请求都会打info日志,如果不观注可以设置为error减少日志量|info|error|0.3.0|\n|RNACOS_ENABLE_NO_AUTH_CONSOLE|是否开启无鉴权控制台|false|false|0.5.2|\n|RNACOS_CONSOLE_LOGIN_TIMEOUT|控制台登陆有效时长(单位为秒)|一天,86400秒|86400|0.5.0|\n|RNACOS_GMT_OFFSET_HOURS|日志时间的时区，单位小时；默认为本机时区，运行在docker时需要指定|local|8(东8区),-5(西5区)|0.5.7|\n|RNACOS_ENABLE_OPEN_API_AUTH|是否对openapi开启鉴权；（注：nacos切换到r-nacos过程中不要开启鉴权）|false|true|0.5.8|\n|RNACOS_API_LOGIN_TIMEOUT|open api鉴权有效时长，单位为秒；(注：从不鉴权到开启鉴权，需要间隔对应时长以保证客户端token能更新生效)|一小时,3600秒|3600|0.5.8|\n|RNACOS_CLUSTER_TOKEN|集群间的通信请求校验token，空表示不开启校验，设置后只有相同token的节点间才可通讯|空字符串|1234567890abcdefg|0.5.8|\n|RNACOS_INIT_ADMIN_USERNAME|初始化管理员用户名，只在主节点第一次启动时生效|admin|rnacos|0.5.11|\n|RNACOS_INIT_ADMIN_PASSWORD|初始化管理员密码，只在主节点第一次启动时生效|admin|rnacos123456|0.5.11|\n|RNACOS_ENABLE_METRICS|是否开启监控指标功能|true|true|0.5.13|\n|RNACOS_METRICS_ENABLE_LOG|是否开启打印监控指标日志|false|false|0.5.21|\n|RNACOS_METRICS_COLLECT_INTERVAL_SECOND|监控指标采集指标间隔,单位秒,最小间隔为1秒,不能小于RNACOS_METRICS_LOG_INTERVAL_SECOND|15|5|0.5.14|\n|RNACOS_METRICS_LOG_INTERVAL_SECOND|监控指标采集打印到日志的间隔,单位秒,最小间隔为5秒|60|30|0.5.13|\n|RNACOS_CONSOLE_ENABLE_CAPTCHA| 验证码的开关| true|true|0.5.14|\n\n启动配置方式可以参考： [运行参数说明](https://r-nacos.github.io/docs/notes/env_config/)\n\n【集群部署】\n\n集群部署参考文档： \n\n+ [集群部署](https://r-nacos.github.io/docs/notes/cluster_deploy)\n+ [集群部署样例](https://r-nacos.github.io/docs/notes/deploy_example/docker_cluster_deploy/)\n\n\n### 二、运行nacos 应用\n\n服务启动后，即可运行原有的 nacos 应用。\n\n### 配置中心http api例子\n\n```\n# 设置配置\ncurl -X POST 'http://127.0.0.1:8848/nacos/v1/cs/configs' -d 'dataId=t001\u0026group=foo\u0026content=contentTest'\n\n# 查询\ncurl 'http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=t001\u0026group=foo'\n\n```\n\n### 注册中心http api例子\n\n```\n# 注册服务实例\ncurl -X POST 'http://127.0.0.1:8848/nacos/v1/ns/instance' -d 'port=8000\u0026healthy=true\u0026ip=192.168.1.11\u0026weight=1.0\u0026serviceName=nacos.test.001\u0026groupName=foo\u0026metadata={\"app\":\"foo\",\"id\":\"001\"}'\n\ncurl -X POST 'http://127.0.0.1:8848/nacos/v1/ns/instance' -d 'port=8000\u0026healthy=true\u0026ip=192.168.1.12\u0026weight=1.0\u0026serviceName=nacos.test.001\u0026groupName=foo\u0026metadata={\"app\":\"foo\",\"id\":\"002\"}'\n\n curl -X POST 'http://127.0.0.1:8848/nacos/v1/ns/instance' -d 'port=8000\u0026healthy=true\u0026ip=192.168.1.13\u0026weight=1.0\u0026serviceName=nacos.test.001\u0026groupName=foo\u0026metadata={\"app\":\"foo\",\"id\":\"003\"}'\n\n# 查询服务实例\n\ncurl \"http://127.0.0.1:8848/nacos/v1/ns/instance/list?\u0026namespaceId=public\u0026serviceName=foo%40%40nacos.test.001\u0026groupName=foo\u0026clusters=\u0026healthyOnly=true\"\n\n```\n\n\n具体的用法参考 [nacos.io](https://nacos.io/zh-cn/docs/sdk.html) 的用户指南。\n\n### nacos client sdk\n\n#### java nacos sdk\n\n**nacos-client**\n\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003ecom.alibaba.nacos\u003c/groupId\u003e\n    \u003cartifactId\u003enacos-client\u003c/artifactId\u003e\n    \u003cversion\u003e${nacos.version}\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n|协议|验证过版本|推荐版本|\n|--|--|--|\n|grpc协议(2.x)|2.1.0|\u003e2.1.x|\n|http协议(1.x)|1.4.1|\u003e1.4.x|\n\n\n#### go nacos sdk\n\n**nacos-sdk-go**\n\n```\nnacos-sdk-go/v2 v2.2.5\n```\n\n|协议|验证过版本|推荐版本|\n|--|--|--|\n|grpc协议(2.x)|2.2.5|\u003e=2.2.5|\n\n#### rust nacos sdk\n\n**nacos-sdk-rust**\n\n```\nnacos-sdk = \"0.3.3\"\n```\n\n|协议|验证过版本|推荐版本|\n|--|--|--|\n|grpc协议|0.3.3|\u003e=0.3.3|\n\n\n**nacos_rust_client**\n\n```\nnacos_rust_client = \"0.3.0\"\n```\n\n|协议|验证过版本|推荐版本|\n|--|--|--|\n|同时支持http协议与grpc协议|0.3.0|\u003e=0.3.0|\n|http协议|0.2.2|\u003e=0.2.2|\n\n\n[其它语言](https://nacos.io/zh-cn/docs/other-language.html)\n\n[open-api](https://nacos.io/zh-cn/docs/open-api.html)\n\n### 三、控制台管理\n\n从0.4.0版本开始，支持独立端口号的新控制台。新控制台有完备的用户管理、登陆校验、权限控制，支持对外网暴露。\n\n启动服务后可以在浏览器通过 `http://127.0.0.1:10848/rnacos/` 访问r-nacos新控制台。 \n\n老控制台`http://127.0.0.1:8848/rnacos/` 标记废弃，默认不开启，可通过配置开启。老控制台不需要登陆鉴权、不支持用户管理。\n\n控制台主要包含用户管理、命名空间管理、配置管理、服务管理、服务实例管理。\n\n\u003e 控制台线上演示\n\n地址： [https://www.bestreven.top/rnacos/](https://www.bestreven.top/rnacos/) \n(演示服务与网址由一位热心用户提供）\n\n演示用户：\n\n+ 开发者:\n    + 用户名: `dev` ,密码: `dev`\n+ 访客:\n    + 用户名: `guest`, 密码: `guest`\n\n演示内容：\n\n+ 配置中心：接近5千个配置\n+ 服务中心：30个服务，每个服务有15个实例，共450个服务实例。\n\n\n\n\n\u003e 1、用户登陆\n\n在新控制台打开一个地址，如果检测到没有登陆，会自动跳转到登陆页面。\n一个用户连续登陆失败5次，会被锁定1个小时。这个次数可以通过启动参数配置。\n\n\u003cimg style=\"width: 400px;\" width=\"400\" src=\"https://github.com/r-nacos/r-nacos/raw/master/doc/assets/imgs/20231223220425.png\" /\u003e\n\n\u003e 2、用户管理\n\n![](https://github.com/r-nacos/r-nacos/raw/master/doc/assets/imgs/20231223222325.png)\n\n系统会默认创建一个名为`admin`的用户，密码为`admin`(也可以通过环境变量 RNACOS_INIT_ADMIN_USERNAME 和 RNACOS_INIT_ADMIN_PASSWORD 修改默认账号的账户名和密码)。 \n\n进去控制台后可按需管理用户。 \n\n用户角色权限说明：\n\n1. 管理员: 所有控制台权限\n2. 开发者：除了用户管理的所有控制台权限\n3. 访客：只能查询配置中心与注册中心的数据，没有编辑权限。\n\n\n**注意：** 对外暴露的nacos控制台端口前，建议增加一个自定义管理员，把admin用户删除或禁用。\n\n\n\u003e 3、配置管理\n\n配置列表管理\n\n![](https://github.com/r-nacos/r-nacos/raw/master/doc/assets/imgs/20230506155441.png)\n\n新建、编辑配置\n\n![](https://github.com/r-nacos/r-nacos/raw/master/doc/assets/imgs/20230506155545.png)\n\n\u003e 4、服务列表管理\n\n![](https://github.com/r-nacos/r-nacos/raw/master/doc/assets/imgs/20230506155133.png)\n\n\u003e 5、服务实例管理\n\n![](https://github.com/r-nacos/r-nacos/raw/master/doc/assets/imgs/20230506155158.png)\n\n\u003e 6、命名空间管理\n\n![](https://user-images.githubusercontent.com/1174480/268299574-4947b9f8-79e1-48e2-97fe-e9767e26ddc0.png)\n\n\u003e 7、系统监控\n\n![](https://github.com/r-nacos/r-nacos/raw/master/doc/assets/imgs/20240722075241.png)\n\n\n\n## 功能说明\n\n这里把 nacos 服务的功能分为三块\n1、面向 SDK 的功能\n2、面向控制台的功能\n3、面向部署、集群的功能\n\n每一块做一个对nacos服务的对比说明。\n\n### 一、面向 SDK 的功能\n\n访问认证：\n\n1. 有提供获取认证token的接口\n\n配置中心：\n\n1. 支持配置中心的基础功能、支持维护配置历史记录\n2. 兼容配置中心的SDK协议\n3. 暂不支持灰度发布、暂不支持tag隔离\n\n注册中心：\n\n1. 支持注册中心的基础功能\n2. 兼容配置中心的SDK协议\n3. 暂不支持1.x的 udp 实例变更实时通知，只支持 2.x 版本grpc实例变更实时通知 。最开始的版本也有支持过udp实例变更 通知，后面因支持 grpc 的两者不统一，就暂时去掉，后继可以考虑加回去。\n\n### 二、面向开发、管理员的控制台的功能\n\n控制台：\n1. 支持使用独立的控制台端口提供对外网服务。\n\n用户管理：\n\n1. 支持管理用户列表\n2. 支持用户角色权限管理\n3. 支持用户密码重置\n\n命名空间：\n\n1. 支持管理命名空间列表\n2. 支持切换命名空间查询配置、服务数据。\n\n配置中心：\n\n1. 支持配置中心信息管理\n1. 支持配置导入、导出,其文件格式与nacos兼容\n2. 支持配置历史记录查看与恢复\n3. 暂不支持tag的高级查询\n4. 暂不支持查询配置监听记录\n\n服务中心：\n\n1. 支持注册中心的服务、服务实例管理\n2. 暂不支持查询监听记录\n\n### 三、面向部署、集群的功能\n\n1. 支持单机部署\n2. 支持集群部署。集群部署配置中心数据使用raft+节点本地存储组成的分布式存储，不需要依赖mysql。具体参考 [集群部署说明](https://r-nacos.github.io/docs/notes/deploy_example/docker_cluster_deploy/)\n\n\n## 性能\n\n\n|模块|场景|单节点qps/tps|集群qps/tps|总结/备注|\n|--|--|--|--|--|\n|配置中心|配置写入,http协议|1.76万|7.6千|集群写入压测是在同一台电脑运行3个节点,如果换成多个机器部署,tps应该还能有所提升。|\n|配置中心|配置查询,http协议|8万|n*8万|集群的查询总qps是节点的倍数|\n|注册中心|服务实例注册,http协议|4.8万|2.4万|集群写入压测是在同一台电脑运行3个节点,如果换成多个机器部署,tps应该还能有所提升。|\n|注册中心|服务实例注册,grpc协议|4.8万|2.4万|grpc协议压测工具没有支持，目前没有实际压测，理论不会比http协议低|\n|注册中心|服务实例心跳,http协议|4.8万|2.4万|心跳是按实例计算和服务实例注册一致共享qps|\n|注册中心|服务实例心跳,grpc协议|8万以上|n*8万|心跳是按请求链接计算,且不过注册中心处理线程,每个节点只需管理当前节点的心跳，集群总心跳qps是节点的倍数|\n|注册中心|查询服务实例|5.4万|n*5.4万|集群的查询总qps是节点的倍数|\n\n**注：** 具体结果和压测环境有关\n\n详细信息可以参考\n[性能与容量说明](https://r-nacos.github.io/docs/notes/performance/)\n\n\n## r-nacos架构图\n\n\n![架构图](https://raw.githubusercontent.com/r-nacos/r-nacos/master/doc/assets/imgs/r-nacos_L2_0.3.7.svg)\n\n说明：\n\n+ r-nacos默认支持集群部署，单机就相当于一个节点的集群，后续有需要可以按需加入新的节点；\n+ 数据持久化使用raft协议分布式数据库(raft协议+节点文件存储),类似etcd; \n+ 只需对`RNACOS_CONFIG_DB_DIR:nacos_db`目录下的文件备份与恢复，即可实现数据的备份与恢复；\n+ r-nacos控制台使用前后端分离架构；前端应用因依赖nodejs,所以单独放到另一个项目 [r-nacos-console-web](https://github.com/r-nacos/rnacos-console-web) ,再通过cargo 把打包好的前端资源引入到本项目,避免开发rust时还要依赖nodejs。\n\nr-nacos架构设计参考： [架构](https://r-nacos.github.io/docs/notes/architecture/)\n\n\n## 使用登记\n\n使用r-nacos的同学，欢迎在[登记地址](https://github.com/r-nacos/r-nacos/issues/32) 登记，登记只是为了方便产品推广。\n\n## 联系方式\n\n\u003e R-NACOS微信沟通群：先加微信(添加好友请备注'r-nacos')，再拉进群。\n\n\u003cimg style=\"width: 200px;\" width=\"200\" src=\"https://github.com/r-nacos/r-nacos/raw/master/doc/assets/imgs/wechat.jpg\" alt=\"qingpan2014\" /\u003e\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnacos-group%2Fr-nacos","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnacos-group%2Fr-nacos","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnacos-group%2Fr-nacos/lists"}