当前位置: 首页 > news >正文

使用Rust实现服务配置/注册中心

Conreg

使用 Rust 实现的配置与注册中心,参考了 Nacos 的设计,简单易用,使用 Raft 保证集群节点数据一致性。

支持的平台:

  • Ubuntu
  • CentOS
  • 其他常见的 Linux 发行版(我们使用 musl 编译,理论上支持所有主流 Linux 发行版)

开源地址:https://github.com/xgpxg/conreg

功能特性

配置中心:

  • 命名空间隔离
  • 配置增删改查操作
  • 一致性同步(Raft)
  • 配置历史记录
  • 配置恢复
  • 配置导入/导出

注册中心:

  • 命名空间隔离
  • 服务注册
  • 心跳检测
  • 服务发现
  • 实例元数据

安全:

  • 登录验证
  • OpenAPI 认证

客户端 SDK(conreg-client):

  • 配置获取
  • 服务注册
  • 服务发现
  • 负载均衡

集群管理工具:

  • 集群初始化
  • 集群扩容
  • 集群缩容
  • Raft 状态监控
  • 集群升级
  • 集群备份

Web UI:

  • 基础 UI
  • 嵌入与集成

使用方法

Conreg 服务端

单机部署

# 下载包
curl -L https://github.com/xgpxg/conreg/releases/latest/download/conreg-server.tar.gz | tar -zxvf - -C .# 启动服务
conreg-server -p 8000

使用浏览器打开:http://127.0.0.1:8000

默认用户名和密码:conreg/conreg

集群部署

在生产环境中,通常建议使用集群部署。以下示例使用 3 个节点的集群:

# 下载包
curl -L https://github.com/xgpxg/conreg/releases/latest/download/conreg-server.tar.gz# 解压包
tar -zxvf conreg-server.tar.gz -C ./conreg1 tar -zxvf conreg-server.tar.gz -C ./conreg2 tar -zxvf conreg-server.tar.gz -C ./conreg3# 启动服务
conreg1/conreg-server -p 8001 -d ./conreg1/data1 -m cluster -n 1 conreg2/conreg-server -p 8002 -d ./conreg2/data2 -m cluster -n 2 conreg3/conreg-server -p 8003 -d ./conreg3/data3 -m cluster -n 3# 初始化集群
curl -X POST http://127.0.0.1:8001/api/cluster/init -d [[1,"127.0.0.1:8001"],[2,"127.0.0.1:8002"],[3,"127.0.0.1:8003"]]

可以使用代理组件,如 Nginx,来代理集群节点,以便可以通过浏览器访问后台页面,或者直接访问集群中的任何一个节点。

对于集群管理(如初始化、扩容、缩容、监控等),我们提供了一个集群管理的 CLI 工具:conreg-cmt,可以很方便的使用。

Usage: conreg-cmt --server <SERVER> <COMMAND>Commands:init         Initialize the clusteradd-learner  Add a learner node to the clusterpromote      Promote some learner node to a full member, must call "add-learner" firstremove-node  Remove a node from the clusterstatus       Get cluster statusmonitor      Monitor cluster statushelp         Print this message or the help of the given subcommand(s)Options:-s, --server <SERVER>  Address of any node in the cluster [default: 127.0.0.1:8000]-h, --help             Print help-V, --version          Print version

Conreg 客户端

conreg-client 是 Conreg 的客户端 SDK,用于集成到您的 Rust 应用程序中。

您可以从 conreg-client 中查看详细文档。

UI

看这里:conreg-ui

在这里插入图片描述

性能指标

测试机器(Windows WSL):Intel i7-8750H,6 核 12 线程,16G 内存。

使用单机模式发起 100 万个请求进行测试。

操作类型性能指标备注
配置写入1.3k/s-
配置读取11k/s未启用缓存
配置读取52k/s启用缓存
服务实例注册1.1k/s-
服务实例查询55k/s-
服务实例心跳1.4k/s-

内存稳定占用在 55.7M左右


文章转载自:

http://PiOC74qb.xnrry.cn
http://isVG5FXG.xnrry.cn
http://p7iCSzaZ.xnrry.cn
http://fxoh3cTJ.xnrry.cn
http://i0Qc2Lqt.xnrry.cn
http://2NkYFYdN.xnrry.cn
http://ozkRwbHT.xnrry.cn
http://KdScA0rJ.xnrry.cn
http://OSWnoqda.xnrry.cn
http://r59m7PGx.xnrry.cn
http://SOsv5ERe.xnrry.cn
http://4dwYhAE8.xnrry.cn
http://Rr23yYZn.xnrry.cn
http://ZFyJ0lCR.xnrry.cn
http://E3b1pHBf.xnrry.cn
http://U2zp5omq.xnrry.cn
http://vWA95X6R.xnrry.cn
http://nvCqNDTa.xnrry.cn
http://FIQC8G17.xnrry.cn
http://shaDBWXs.xnrry.cn
http://nFmst0Mg.xnrry.cn
http://6hW0gm9s.xnrry.cn
http://ng9cRF52.xnrry.cn
http://sWNngDjA.xnrry.cn
http://TqC5rZE0.xnrry.cn
http://QnqBeHhk.xnrry.cn
http://u8n5oWoS.xnrry.cn
http://y35MIHrL.xnrry.cn
http://cA2eaJZ4.xnrry.cn
http://ZSjPyyXn.xnrry.cn
http://www.dtcms.com/a/378574.html

相关文章:

  • C++ 类与对象(下):从构造函数到编译器优化深度解析
  • DNS 域名解析
  • EasyDSS重装系统后启动失败?解决RTMP推流平台EasyDss服务启动失败的详细步骤
  • 自动驾驶中的传感器技术45——Radar(6)
  • 第四章 Elasticsearch索引管理与查询优化
  • 拆分了解HashMap的数据结构
  • Sqlite“无法加载 DLL“e_sqlite3”: 找不到指定的模块”解决方法
  • 项目 PPT 卡壳?模型效果 + 训练数据展示模块直接填 ,451ppt.vip预制PPT也香
  • react-native项目通过华为OBS预签名url实现前端直传
  • Linux-> UDP 编程1
  • Pytest+requests进行接口自动化测试2.0(yaml)
  • 【容器使用】如何使用 docker 和 tar 命令来操作容器镜像
  • 科普:在Windows个人电脑上使用Docker的极简指南
  • 【面试场景题】电商订单系统分库分表方案设计
  • 微服务保护全攻略:从雪崩到 Sentinel 实战
  • springcloud二-Sentinel
  • Redis 持久化与高可用实践(RDB / AOF / Sentinel / Cluster 全解析)
  • Semaphore 信号量深度解析
  • 门店网络重构:告别“打补丁”,用“云网融合”重塑数字竞争力!
  • Linux操作系统之Ubuntu
  • WSL自定义安装多个相同版本的Ubuntu子系统
  • 晶振在5G时代的角色:高精度时钟的核心支撑
  • 【JavaEE】(25) Spring 原理
  • 【科研绘图系列】R语言绘制模型预测与数据可视化
  • 音频中的PDM、PCM概念解读
  • 离线应用开发:Service Worker 与缓存
  • 1、RocketMQ概念详解
  • ZooKeeper Multi-op+乐观锁实战优化:提升分布式Worker节点状态一致性
  • 使用yolo算法对视频进行实时目标跟踪和分割
  • Tomcat日志乱码了怎么处理?