使用systemd部署r-nacos的操作方法
1、 前言
r-nacos是一個用rust實現的nacos服務。相較于java nacos來說,是一個提供相同功能,啟動更快、占用系統(tǒng)資源更?。ǔ跏純却嫘∮?0M)、性能更高、運行更穩(wěn)定的服務。
r-nacos設計上完全兼容最新版本nacos面向client sdk 的協(xié)議(包含1.x的http OpenApi,和2.x的grpc協(xié)議), 支持使用nacos服務的應用平遷到 r-nacos。
r-nacos在本地測試使用很簡單,通過./rnacos
直接啟動應用即可。
但是生產環(huán)境中還是需要更規(guī)范的方式部署運行。
目前的linux服務基本默認支持systemd統(tǒng)一管理服務。
本文主要記錄使用systemd部分r-nacos的過程說明。
2、規(guī)劃r-nacos運行位置
- 服務應用放到
/opt/rnacos/
中 - r-nacos配置使用
/etc/rnacos/env.conf
- 數據放到
/var/rnacos/io/
中 - systemd 服務配置放到
/lib/systemd/system/rnacos.service
3、部署
- 下載服務應用
mkdir -p /opt/rnacos/ cd /opt/rnacos/ #download from github curl -LO https://github.com/r-nacos/r-nacos/releases/download/v0.5.0/rnacos-x86_64-unknown-linux-musl.tar.gz #download from gitee #curl -LO https://gitee.com/hqp/rnacos/releases/download/v0.5.0/rnacos-x86_64-unknown-linux-musl.tar.gz tar -xvf rnacos-x86_64-unknown-linux-musl.tar.gz
- 增加r-nacos服務配置
mkdir -p /etc/rnacos/ cat >/etc/rnacos/env.conf <<EOF # rnacos 指定配置文件有兩種方式: # 1. 默認文件(放置于運行目錄下,文件名為“.env”,自動讀取) # 2. 指定文件(放置于任意目錄下, 通過 命令行參數“-e 文件路徑”形式指定, 如“./rnacos -e /etc/rnacos/conf/default.cnf”) # 更多說明請參照 https://r-nacos.github.io/r-nacos/deplay_env.html # r-nacos監(jiān)聽http端口,默認值:8848 RNACOS_HTTP_PORT=8848 #r-nacos監(jiān)聽grpc端口,默認值:HTTP端口+1000(即9848) #RNACOS_GRPC_PORT=9848 #r-nacos獨立控制臺端口,默認值:HTTP端口+2000(即10848);設置為0可不開啟獨立控制臺 #RNACOS_HTTP_CONSOLE_PORT=10848 #r-nacos控制臺登錄1小時失敗次數限制默認是5,一個用戶連續(xù)登陸失敗5次,會被鎖定1個小時 ,默認值:1 RNACOS_CONSOLE_LOGIN_ONE_HOUR_LIMIT=5 #http工作線程數,默認值:cpu核數 #RNACOS_HTTP_WORKERS=8 #配置中心的本地數據庫sled文件夾, 會在系統(tǒng)運行時自動創(chuàng)建 ,默認值:nacos_db RNACOS_CONFIG_DB_DIR=nacos_db #節(jié)點id,默認值:1 RNACOS_RAFT_NODE_ID=1 #節(jié)點地址Ip:GrpcPort,單節(jié)點運行時每次啟動都會生效;多節(jié)點集群部署時,只取加入集群時配置的值,默認值:127.0.0.1:GrpcPort RNACOS_RAFT_NODE_ADDR=127.0.0.1:9848 #是否當做主節(jié)點初始化,(只在每一次啟動時生效)節(jié)點1時默認為true,節(jié)點非1時為false #RNACOS_RAFT_AUTO_INIT=true #是否當做節(jié)點加入對應的主節(jié)點,LeaderIp:GrpcPort;只在第一次啟動時生效;默認值:空 #RNACOS_RAFT_JOIN_ADDR=127.0.0.1:9848 #日志等級:debug,info,warn,error;所有http,grpc請求都會打info日志,如果不關注,可以設置為error 減少日志量,默認值:info RUST_LOG=info EOF
- 初始化r-nacos數據目錄
mkdir -p /var/rnacos/io/ # 如果使用rnacos用戶運行,則要開放目錄寫權限給用戶 # adduser rnacos # chown -R rnacos:rnacos /var/rnacos
- 初始化r-nacos 服務配置
cat >/lib/systemd/system/rnacos.service <<EOF [Unit] Description=r-nacos server After=network.target [Service] #使用指定用戶運行 #User=rnacos #Group=rnacos ExecStart=/opt/rnacos/rnacos -e /etc/rnacos/env.conf # 進程異常關閉時會自動重啟 Restart=always WorkingDirectory=/var/rnacos/io [Install] WantedBy=multi-user.target EOF
- 重新加載并啟動服務
# 重新加載配置 systemctl daemon-reload # 啟用服務并馬上啟動 systemctl enable --now rnacos # 查看服務狀態(tài) systemctl status rnacos
把上以的腳本連起來執(zhí)行,r-nacos服務即可部署完成。
4、管理服務
- 使用
systemctl
管理服務
常用的命令
# 查看服務狀態(tài) systemctl status rnacos # 啟動服務 systemctl start rnacos # 關閉服務 systemctl stop rnacos # 啟動服務,開機自動啟動 systemctl enable rnacos # 禁用服務,開機不啟動 systemctl disable rnacos
- 同時可以結合使用
journalctl
管理查看服務日志
# 查看日志 journalctl -u rnacos # 查看最新日志 journalctl -u rnacos -f
其它journalctl日志管理方式,可以單獨支了解,這里不展開。
5、驗證服務
5.1 shell 本地 http驗證
- 配置中心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.test.001&groupName=foo&clusters=&healthyOnly=true"
5.2 nacos客戶端應用驗證
如果客戶端應用與nacos服務不在同一臺機器,需要開放8848
,9848
端口給內網應用使用。(注意8848
,9848
端口不能暴露到外網上)
在客戶端應用中配置好nacos服務后,即可運行驗證。
5.3 使用r-nacos控制臺
開放10848
端口后,可以通過對應ip+端口在瀏覽器訪問控制臺。
新控制臺有完備的用戶管理、登陸校驗、權限控制,支持對外網暴露。
系統(tǒng)會默認創(chuàng)建一個名為admin的用戶,密碼為admin。
6、總結
r-nacos是一個用rust實現的nacos服務,我們用它平替java nacos以降低服務占用內存,提升服務的穩(wěn)定性。
systemd提供便捷的服務托管功能,可以方便的將一個命令運行的應用,轉化成一個可方便控制的后臺服務。
使用systemd部署r-nacos,是一個比較和合適的、可用于生產環(huán)境的部署方案。
到此這篇關于使用systemd部署r-nacos的文章就介紹到這了,更多相關systemd部署r-nacos內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
在win10上使用mingw64編譯器配置Rust開發(fā)環(huán)境和idea 配置Rust 插件
在win10上配置 Rust 開發(fā)環(huán)境(使用 mingw64編譯器)和 idea 配置 Rust 插件的相關知識,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧2023-03-03Rust 中的 Packages 與 Crates模塊化構建的基礎及開發(fā)流程
Rust中的Crate是編譯器處理的最小代碼單元,可以是二進制或庫,每個Crate由一個CrateRoot文件(通常是src/main.rs或src/lib.rs)定義,本文給大家介紹Rust 中的 Packages 與 Crates模塊化構建的基礎及開發(fā)流程,感興趣的朋友一起看看吧2025-02-02