nats-server leaf node 通过cluster 地址进行服务reload
实际上属于一个小技巧,就是可利用nats 的export 以及import 可以将leaf sys 账户的$SYS 共享给leaf 链接的集群账户(当然leaf 链接的时候是需要进行本地account 映射的),这样cluster 的账户就可以request leaf 节点了
参考玩法
- account 配置
核心是export 以及import, 注意此配置是leaf 节点的,我使用了用户密码,没使用基于nsc 的nkeys
accounts {
SYS: {
users: [{user: xxxx, password: xxxxx}]
exports: [
{stream: "$SYS.>"},
{service: "$SYS.>"}
]
},
A: {
users: [
{user: xxxx, password: xxxxx}
],
jetstream: enabled,
imports: [
{stream: {account: SYS,subject: "$SYS.>"}},
{service: {account: SYS,subject: "$SYS.>"}}
]
}
}
system_account: SYS
- 服务reload
clsuter 使用链接的账户,同时注意需要确定好server id ,错了不行
nats --creds xxxxx.creds request '$SYS.REQ.SERVER.xxxxx.RELOAD' ""
说明
机制上就是利用了account 一直的模式,比较简单,但是可以实现比较有意思的控制能力
参考资料
https://docs.nats.io/running-a-nats-service/configuration/securing_nats/accounts
浙公网安备 33010602011771号