Stories

Detail Return Return

佔用資源極低!這款輕量級 Nacos 性能炸裂! - Stories Detail

大家好,我是 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/#/

大家的點贊、收藏和評論都是對作者的支持,如文章對你有幫助還請點贊轉發支持下,謝謝!

user avatar mannayang Avatar lixingning Avatar king_wenzhinan Avatar gangyidesongshu Avatar wszgrcy Avatar duiniwukenaihe_60e4196de52b7 Avatar songxianling1992 Avatar codexiaosheng Avatar boxuegu Avatar dengjijie Avatar lanlan_guo Avatar winfacter Avatar
Favorites 21 users favorite the story!
Favorites

Add a new Comments

Some HTML is okay.