代码拉取完成,页面将自动刷新
package conf
import (
"encoding/json"
"fmt"
"github.com/nacos-group/nacos-sdk-go/clients"
"github.com/nacos-group/nacos-sdk-go/clients/config_client"
"github.com/nacos-group/nacos-sdk-go/common/constant"
"github.com/nacos-group/nacos-sdk-go/vo"
"github.com/whileW/core-go/nacos"
"github.com/whileW/core-go/utils"
"os"
"runtime"
)
func initNacos(config *Config) {
var (
data_id = utils.IF(os.Getenv("NACOSDATAID") == "",config.SysSetting.SystemName,os.Getenv("NACOSDATAID")).(string)
)
c,err := nacos.GetConfigClient()
if err != nil {
panic(fmt.Sprintf("初始化nacos config client异常:%v",err))
}
var changeData = func(confContent string) {
s := map[string]interface{}{}
if err := json.Unmarshal([]byte(confContent),&s);err != nil{
fmt.Println(fmt.Sprintf("nacos序列化配置失败:content:%s,err:%v",confContent,err))
return
}
fmt.Println("nacos config changed")
config.AnalysisSetting(s)
}
if err := c.ListenConfig(vo.ConfigParam{
DataId:data_id,
Group:config.SysSetting.Env,
OnChange: func(namespace, group, dataId, data string) {
changeData(data)
},
});err != nil{
panic(fmt.Sprintf("监听nacos配置失败:%v",err))
}
//初始化获取配置
content,err := c.GetConfig(vo.ConfigParam{
DataId:data_id,
Group:config.SysSetting.Env,
})
if err != nil {
panic(fmt.Sprintf("获取nacos配置失败:%v",err))
}
changeData(content)
runtime.KeepAlive(c)
}
func get_nacos_client(addr string) config_client.IConfigClient {
c := constant.NewClientConfig(
constant.WithNamespaceId(""),
constant.WithTimeoutMs(5000),
constant.WithNotLoadCacheAtStart(true),
//constant.WithLogDir("/tmp/nacos/log"),
//constant.WithCacheDir("/tmp/nacos/cache"),
constant.WithRotateTime("1h"),
constant.WithMaxAge(3),
constant.WithLogLevel("debug"),
)
s := []constant.ServerConfig{
*constant.NewServerConfig(
addr,
8848,
constant.WithScheme("http"),
constant.WithContextPath("/nacos"),
),
}
client, err := clients.NewConfigClient(
vo.NacosClientParam{
ClientConfig: c,
ServerConfigs: s,
},
)
if err != nil {
panic(fmt.Sprintf("初始化nacos异常:%v",err))
}
return client
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。