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左右