标签:group err 配置 namespace nacos 讲解 data id
为什么需要分布式配置中心
不使用配置中心存在的问题
使用配置中心的方便
配置中心的选型
- 命名空间的作用:可以隔离配置集,将某些配置集放到某一个命名空间下,命名空间我们一般用来区分微服务
- DataId: 配置集,一般一个配置集就是一个配置文件,实际上可以更灵活
- 组:抛出一个问题,现在确实能够隔离微服务,但是不同的微服务的开发、测试、生产环境如何区别,组可以用来区别开发、测试、生产环境
python操作nacos配置
import json
import nacos
SERVER_ADDRESSES = "nacos.xxxxxxx.cn:80"
NAMESPACE = "19225xxxxxxxxd0dca" # 这里是namespace的id
# auth mode
client = nacos.NacosClient(SERVER_ADDRESSES, namespace=NAMESPACE, username="xxxxx", password="xxxxxx")
# get config
data_id = "user-srv.json"
group = "dev"
rsp = json.loads(client.get_config(data_id, group)) # 返回的是字符串
for k, v in rsp.items():
print(k, v)
监听配置文件的变化
import json
import time
import nacos
SERVER_ADDRESSES = "nacos.xxxx.cn:80"
NAMESPACE = "19225222xxxxxxxx0dca" # 这里是namespace的id
# auth mode
client = nacos.NacosClient(SERVER_ADDRESSES, namespace=NAMESPACE, username="nxxxxs", password="xxxxx")
# get config
data_id = "user-srv.json"
group = "dev"
rsp = json.loads(client.get_config(data_id, group)) # 返回的是字符串
for k, v in rsp.items():
print(k, v)
def test_cb(args):
print("配置文件产生变化")
for k, v in args.items():
print(k, v)
if __name__ == '__main__':
# 监听配置文件的变化
client.add_config_watcher(data_id, group, test_cb)
time.sleep(60)
go操作nacos
- nacos-skd-go中文文档
- 代码实现
点击查看代码
package main
import (
"fmt"
"github.com/nacos-group/nacos-sdk-go/clients"
"github.com/nacos-group/nacos-sdk-go/common/constant"
"github.com/nacos-group/nacos-sdk-go/vo"
)
func main() {
// 至少一个ServerConfig
sc := []constant.ServerConfig{
{
IpAddr: "nacos.xxx.cnbc",
ContextPath: "/nacos",
Port: 80,
Scheme: "http",
},
}
// 创建clientConfig
cc := constant.ClientConfig{
NamespaceId: "19225222-xxxxxxxxe5d0dca", // 如果需要支持多namespace,我们可以场景多个client,它们有不同的NamespaceId。当namespace是public时,此处填空字符串。
TimeoutMs: 5000,
NotLoadCacheAtStart: true,
LogDir: "tmp/nacos/log",
CacheDir: "tmp/nacos/cache",
LogLevel: "debug",
Username: "nacos",
Password: "nacos",
}
// 创建动态配置客户端的另一种方式 (推荐)
configClient, err := clients.NewConfigClient(
vo.NacosClientParam{
ClientConfig: &cc,
ServerConfigs: sc,
},
)
if err != nil{
panic(err)
}
// 获取配置
content, err := configClient.GetConfig(vo.ConfigParam{
DataId: "user-web.yaml",
Group: "dev",
})
if err != nil{
panic(err)
}
fmt.Println(content)
// 监听配置变化
err = configClient.ListenConfig(vo.ConfigParam{
DataId: "user-web.yaml",
Group: "dev",
OnChange: func(namespace, group, dataId, data string) {
fmt.Println("group:" + group + ", dataId:" + dataId + ", data:" + data)
},
})
if err != nil{
panic(err)
}
select {}
}
标签:group,err,配置,namespace,nacos,讲解,data,id 来源: https://www.cnblogs.com/mayanan/p/16000826.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。