nacos配置中心,由于是阿里开发的,所以官方文档支持中文,非常友好,这是官方的go的SDK,已经非常详细了
官方SDK网址
下面是例子,演示了golang如何使用从nacos获取配置的信息,返回的是字符串
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() {
// 至少一个ServerConfig
serverConfigs := []constant.ServerConfig{
{
IpAddr: "192.168.72.146",
Port: 8848,
},
}
// 创建clientConfig
clientConfig := constant.ClientConfig{
NamespaceId: "1cf91be1-d0e3-4494-aef7-b3cb8177e04e", // 如果需要支持多namespace,我们可以场景多个client,它们有不同的NamespaceId。当namespace是public时,此处填空字符串。
TimeoutMs: 5000,
NotLoadCacheAtStart: true,
LogDir: "tmp/nacos/log",
CacheDir: "tmp/nacos/cache",
RotateTime: "1h",
MaxAge: 3,
LogLevel: "debug",
}
// 创建动态配置客户端的另一种方式 (推荐)
configClient, err := clients.NewConfigClient(
vo.NacosClientParam{
ClientConfig: &clientConfig,
ServerConfigs: serverConfigs,
},
)
if err != nil {
panic(err)
}
//获取配置信息
//content, err := configClient.GetConfig(vo.ConfigParam{
// DataId: "user-web.yaml",
// Group: "dev"})
//if err != nil {
// fmt.Println("GetConfig err: ",err)
//}
//监听配置
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{
return
}
time.Sleep(time.Second*1000)
}
结果:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)