作者:heqingpan heqingpan@126.com,许大仙 1900919313@qq.com
快速开始
一、 安装运行 r-nacos
【单机部署】
方式1:从 github release 下载对应系统的应用包,解压后即可运行。
# 解压
tar -xvf rnacos-x86_64-apple-darwin.tar.gz
# 运行
./rnacos
提醒
Windows 解压后直接运行 rnacos.exe 即可。
方式2: 通过docker 运行
# stable 是最新正式版本号,也可以指定镜像版本号,如: qingpan/rnacos:v0.4.0
docker pull qingpan/rnacos:stable
docker run -d \
--name mynacos \
-p 8848:8848 -p 9848:9848 -p 10848:10848 \
qingpan/rnacos:stable
提醒
docker 的容器运行目录是 /io,会从这个目录读写配置文件。
docker 版本说明
应用每次打包都会同时打对应版本的docker包 ,qingpan/rnacos:$tag 。
每个版本会打两类docker包
docker包类型 | tag 格式 | 示例 | 说明 |
---|---|---|---|
gnu debian包 | $version | qingpan/rnacos:v0.4.0 | docker包基于debian-slim,体积比较大(压缩包36M,解压后102M),运行性能相对较高; |
musl alpine包 | $version-alpine | qingpan/rnacos:v0.4.0-alpine | docker包基于alpine,体积比较小(压缩包11M,解压后34M),运行性能相对较低; |
如果不观注版本,可以使用最新正式版本tag:
- 最新的gnu正式版本:
qingpan/rnacos:stable
- 最新的alpine正式版本:
qingpan/rnacos:stable-alpine
方式3:通过 cargo 编译安装
# 安装
cargo install rnacos
# 运行
rnacos
方式4: 下载源码编译运行
git clone https://github.com/heqingpan/rnacos.git
cd rnacos
cargo build --release
cargo run
方式5: MacOS 支持通过 brew 安装
# 把r-nacos加入taps
brew tap r-nacos/r-nacos
# brew 安装 r-nacos
brew install r-nacos
# 运行
rnacos
重要
后续可以直接通过以下命令更新到最新版本:
brew upgrade r-nacos
提醒
测试、试用推荐使用第1、第2种方式,直接下载就可以使用。
在 Linux 下第 1、第 2 种方式默认是 musl 版本(性能比 gnu 版本差一些),在生产服务对性能有要求的可以考虑使用第 3、第 4种在对应环境编译 gnu 版本部署。
启动配置可以参考: 运行参数说明
二、运行nacos 应用
服务启动后,即可运行原有的 nacos 应用。
配置中心http api例子
# 发送 POST 请求到 Nacos 配置中心以发布配置
curl -X POST 'http://127.0.0.1:8848/nacos/v1/cs/configs' \
-d 'dataId=t001' \ # 配置的唯一标识符,例如 t001
-d 'group=foo' \ # 配置所属的分组名称,例如 foo
-d 'content=contentTest' # 配置的内容,例如 contentTest
# 查询
curl 'http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=t001&group=foo'
注册中心http api例子
# 注册服务实例:发送 POST 请求到 Nacos 注册中心以注册服务实例
curl -X POST 'http://127.0.0.1:8848/nacos/v1/ns/instance' \
-d 'port=8000' \ # 服务实例的端口号,例如 8000
-d 'healthy=true' \ # 服务实例的健康状态,true 表示健康
-d 'ip=192.168.1.11' \ # 服务实例的 IP 地址,例如 192.168.1.11
-d 'weight=1.0' \ # 服务实例的权重,例如 1.0
-d 'serviceName=nacos.test.001' \ # 服务的名称,例如 nacos.test.001
-d 'groupName=foo' \ # 服务实例所属的分组名称,例如 foo
-d 'metadata={"app":"foo","id":"001"}' # 服务实例的元数据,以 JSON 字符串形式表示
# 注册服务实例:发送 POST 请求到 Nacos 注册中心以注册服务实例
curl -X POST 'http://127.0.0.1:8848/nacos/v1/ns/instance' \
-d 'port=8000' \ # 服务实例的端口号,例如 8000
-d 'healthy=true' \ # 服务实例的健康状态,true 表示健康
-d 'ip=192.168.1.12' \ # 服务实例的 IP 地址,例如 192.168.1.12
-d 'weight=1.0' \ # 服务实例的权重,例如 1.0
-d 'serviceName=nacos.test.001' \ # 服务名称,例如 nacos.test.001
-d 'groupName=foo' \ # 服务实例所属的分组名称,例如 foo
-d 'metadata={"app":"foo","id":"002"}' # 服务实例的元数据,格式为 JSON 字符串
# 注册服务实例:发送 POST 请求到 Nacos 注册中心以注册服务实例
curl -X POST 'http://127.0.0.1:8848/nacos/v1/ns/instance' \
-d 'port=8000' \ # 服务实例的端口号,例如 8000
-d 'healthy=true' \ # 服务实例的健康状态,true 表示健康
-d 'ip=192.168.1.13' \ # 服务实例的 IP 地址,例如 192.168.1.13
-d 'weight=1.0' \ # 服务实例的权重,例如 1.0
-d 'serviceName=nacos.test.001' \ # 服务名称,例如 nacos.test.001
-d 'groupName=foo' \ # 服务实例所属的分组名称,例如 foo
-d 'metadata={"app":"foo","id":"003"}' # 服务实例的元数据,格式为 JSON 字符串
# 查询服务实例
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"
具体的用法参考 nacos.io 的用户指南。
三、使用r-nacos控制台
从0.4.0版本开始,支持独立端口号的新控制台。新控制台有完备的用户管理、登陆校验、权限控制,支持对外网暴露。
启动服务后可以在浏览器通过 http://127.0.0.1:10848/rnacos/
访问r-nacos新控制台。
老控制台http://127.0.0.1:8848/rnacos/
标记废弃,默认不开启,可通过配置开启。老控制台不需要登陆鉴权、不支持用户管理。
控制台主要包含用户管理、命名空间管理、配置管理、服务管理、服务实例管理。
控制台线上演示
地址: https://www.bestreven.top/rnacos/ (演示服务与网址由一位热心用户提供)
演示用户:
- 开发者:
- 用户名:
dev
,密码:dev
- 用户名:
- 访客:
- 用户名:
guest
, 密码:guest
- 用户名:
演示内容:
- 配置中心:接近5千个配置
- 服务中心:30个服务,每个服务有15个实例,共450个服务实例。
1、用户登陆
在新控制台打开一个地址,如果检测到没有登陆,会自动跳转到登陆页面。 一个用户连续登陆失败5次,会被锁定1个小时。这个次数可以通过启动参数配置。
2、用户管理
系统会默认创建一个名为admin
的用户,密码为admin
。
进去控制台后可按需管理用户。
用户角色权限说明:
- 管理员: 所有控制台权限
- 开发者:除了用户管理的所有控制台权限
- 访客:只能查询配置中心与注册中心的数据,没有编辑权限。
注意: 对外暴露的nacos控制台端口前,建议增加一个自定义管理员,把admin用户删除或禁用。
3、配置管理
配置列表管理
新建、编辑配置
4、服务列表管理
5、服务实例管理
6、命名空间管理