大家好,我是 Java陳序員。
在開發中,Nacos 作為一款非常流行的微服務配置中心、註冊中心,在構建微服務項目時往往會使用到它。
但是對於個人開發者而言,雲服務器資源有限,往往無法撐起 Nacos 服務的高內存使用!
今天,給大家介紹一款輕量級的 Nacos 服務,功能平替,佔用資源極低!
關注微信公眾號:【Java陳序員】,獲取開源項目分享、AI副業分享、超200本經典計算機電子書籍等。
項目簡介
r-nacos —— 一個用 Rust 實現的輕量、快速、穩定、高性能的 Nacos 服務,包含註冊中心、配置中心、Web 管理控制枱功能,支持單機、集羣部署。
架構圖
對比 Nacos
r-nacos 相較於 Java Nacos 來説,提供相同功能,設計上完全兼容最新版本 Nacos 面向 Client SDK 的協議,Nacos 服務應用可以無縫平遷到 r-nacos. 但是 r-nacos 啓動更快、佔用系統資源更小、性能更高。
由於 r-nacos資源佔用率低: 包 10M 出頭不依賴、JDK、運行時 CPU 小於 0.5%、小於 5M(具體和實例有關),十分適合用於替換個人資源雲服務部署的 Nacos.
性能壓測
r-nacos 的性能還是非常好的,如下是官方提供的性能壓測結果表,可以參考下。
項目截圖
配置列表
服務列表
用户管理
命名空間
數據遷移
系統監控
快速上手
安裝運行
-
方式 1:下載二進制包運行
# 解壓 tar -xvf rnacos-x86_64-apple-darwin.tar.gz # 運行 ./rnacos -
方式 2: 通過 Docker 運行
# stable是最新正式版本號,也可以指定鏡像版本號,如: qingpan/rnacos:v0.4.0 docker pull qingpan/rnacos:stable docker run --name mynacos -p 8848:8848 -p 9848:9848 -p 10848:10848 -d qingpan/rnacos:stable -
方式 3: 通過 docker-compose 運行
# 集羣部署樣例,數據目錄: ./data version: '3.8' services: nacos: image: qingpan/rnacos:stable container_name: nacos ports: - "8848:8848" - "9848:9848" - "10848:10848" volumes: - /data/software/rnacos:/io:rw environment: - RNACOS_INIT_ADMIN_USERNAME=admin - RNACOS_INIT_ADMIN_PASSWORD=admin - RNACOS_HTTP_PORT=8848 restart: always -
方式 4: 下載源碼編譯運行
git clone https://github.com/r-nacos/r-nacos.git cd r-nacos cargo build --release cargo run --release
啓動服務後可以在瀏覽器通過 http://127.0.0.1:10848/rnacos/ 訪問 r-nacos 控制枱。
初始用户名/密碼:admin/admin.
除了以上幾種部署安裝方式外,官方還提供了 cargo 編譯安裝、MacOS 支持通過 brew 安裝、K8s安裝 等方式,以及集羣部署,對應的安裝可參考官方文檔。
客户端使用
r-nacos 安裝運行好後,Java 服務客户端仍可使用 Nacos 原來的集成方式,只需將配置中心、註冊中心的地址指向為 r-nacos 服務地址,無縫銜接~
-
配置中心 Http API 示例
# 設置配置 curl -X POST 'http://127.0.0.1:8848/nacos/v1/cs/configs' -d 'dataId=t001&group=foo&content=contentTest' # 查詢 curl 'http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=t001&group=foo' -
註冊中心 Http API 示例
# 註冊服務實例 curl -X POST 'http://127.0.0.1:8848/nacos/v1/ns/instance' -d 'port=8000&healthy=true&ip=192.168.1.11&weight=1.0&serviceName=nacos.test.001&groupName=foo&metadata={"app":"foo","id":"001"}' curl -X POST 'http://127.0.0.1:8848/nacos/v1/ns/instance' -d 'port=8000&healthy=true&ip=192.168.1.12&weight=1.0&serviceName=nacos.test.001&groupName=foo&metadata={"app":"foo","id":"002"}' curl -X POST 'http://127.0.0.1:8848/nacos/v1/ns/instance' -d 'port=8000&healthy=true&ip=192.168.1.13&weight=1.0&serviceName=nacos.test.001&groupName=foo&metadata={"app":"foo","id":"003"}' # 查詢服務實例 curl "http://127.0.0.1:8848/nacos/v1/ns/instance/list?&namespaceId=public&serviceName=foo%40%40nacos.
從功能上來説 r-nacos 是可以平替 Nacos 的,而且它佔用內存資源非常低,十分適用於個人開發者使用,感興趣的可以嘗試體驗下~
項目地址:https://github.com/nacos-group/r-nacos
最後
推薦的開源項目已經收錄到 GitHub 項目,歡迎 Star:
https://github.com/chenyl8848/great-open-source-project
或者訪問網站,進行在線瀏覽:
https://chencoding.top:8090/#/
大家的點贊、收藏和評論都是對作者的支持,如文章對你有幫助還請點贊轉發支持下,謝謝!