1,GoLang连接Nacos的监听配置变化 当前配置只能读取yaml
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"
"time"
)
func main() {
Init()
}
func Init() {
sc := []constant.ServerConfig{{
IpAddr: "127.0.0.1",
Port: 8848,
}}
cc := constant.ClientConfig{
NamespaceId: "go-test", // namespace
TimeoutMs: 5000,
NotLoadCacheAtStart: true,
LogDir: "nacosLogs", // 设置为空字符串,禁止写入日志文件
CacheDir: "nacosCache",
LogLevel: "error", // 设置日志级别为 error
}
configClient, err := clients.CreateConfigClient(map[string]interface{}{
"serverConfigs": sc,
"clientConfig": cc,
})
if err != nil {
fmt.Println(err.Error())
}
// 监听配置变化
dataId := "dataId"
group := "group"
// 注册监听器
err = configClient.ListenConfig(vo.ConfigParam{
DataId: dataId,
Group: group,
OnChange: func(namespace, group, dataId, data string) {
fmt.Println("配置文件发生了变化...")
// 处理配置变化的逻辑
fmt.Println("Received config change:", data)
},
})
if err != nil {
fmt.Println(err)
}
content, err := configClient.GetConfig(vo.ConfigParam{
DataId: "dataId",
Group: "group",
})
if err != nil {
fmt.Println(err.Error())
}
fmt.Println(content) //字符串 - yaml
for {
time.Sleep(time.Second * 1)
}
}