1 Star 1 Fork 0

吴文凯/core-go

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
nacos.go 2.13 KB
一键复制 编辑 原始数据 按行查看 历史
[email protected] 提交于 2021-11-25 16:14 . add nacos
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
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/whilew/core-go.git
[email protected]:whilew/core-go.git
whilew
core-go
core-go
main

搜索帮助