Fetch the repository succeeded.
package cConfig
import (
"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"
"gitee.com/csingo/cLog"
)
type NacosClient struct {
Scheme string `json:"scheme"`
Host string `json:"host"`
Port uint64 `json:"port"`
Username string `json:"username"`
Password string `json:"password"`
Namespace string `json:"namespace"`
Path string `json:"path"`
client config_client.IConfigClient
}
func (i *NacosClient) Driver() ConfigCenterDriver {
return NacosDriver
}
func (i *NacosClient) InitClient() error {
var err error
i.client, err = clients.NewConfigClient(vo.NacosClientParam{
ClientConfig: &constant.ClientConfig{
NamespaceId: i.Namespace,
UpdateThreadNum: 0,
NotLoadCacheAtStart: true,
UpdateCacheWhenEmpty: false,
Username: i.Username,
Password: i.Password,
},
ServerConfigs: []constant.ServerConfig{
{
IpAddr: i.Host,
ContextPath: i.Path,
Port: i.Port,
Scheme: i.Scheme,
},
},
})
return err
}
func (i *NacosClient) ReadConf(id, group string, explain bool) (result string, err error) {
var names map[string][2]string
var ok bool
var counter int64
var includes = make(map[string]string)
result, err = i.client.GetConfig(vo.ConfigParam{
DataId: id,
Group: group,
})
if !explain {
return
}
for {
if counter >= config_center_config.Layers {
break
}
counter++
result, names, ok = Explain(result, includes)
if ok {
break
}
// 获取引用配置
for k, v := range names {
includes[k], err = i.ReadConf(v[0], v[1], false)
if err != nil {
cLog.WithContext(nil, map[string]any{
"source": "cConfig.NacosClient.ReadConf",
"config": v,
"err": err.Error(),
}).Errorf("配置读取异常: %s", i.Driver())
continue
}
}
}
return
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。