nacos 配置中心使用
主要解决一个配置进行更改,所有实例都要进行配置重启的问题
命名空间:用来隔离配置,一般一个微服务一个命名空间
组:一般用来区分开发环境、测试环境、生产环境
docker 安装启动
docker run --name nacos-standalone -e MODE=standalone -e JVM_XMS=512m -e JVM_XMX=512m -e JVM_XMN=256m -p 8848:8848 -d nacos/nacos-server:latest
访问地址 http://localhost:8848/nacos/index.html
账号/密码:nacos/nacos
go 读取 nacos,使用 nacos-sdk-go
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() { // 配置中心信息 serverConfigs := []constant.ServerConfig{ { IpAddr: "192.168.1.8", ContextPath: "/nacos", Port: 8848, Scheme: "http", }, } // 客户端信息 clientConfig := constant.ClientConfig{ NamespaceId: "85e41fdb-0887-48b0-b776-1f521e5c7a6d", // 如果需要支持多namespace,我们可以场景多个client,它们有不同的NamespaceId。当namespace是public时,此处填空字符串。 TimeoutMs: 5000, NotLoadCacheAtStart: true, LogDir: "tmp/nacos/log", CacheDir: "tmp/nacos/cache", LogLevel: "debug", } // 创建动态配置客户端 configClient, err := clients.NewConfigClient( vo.NacosClientParam{ ClientConfig: &clientConfig, ServerConfigs: serverConfigs, }, ) if err != nil { panic(err) } //// 获取配置 //content, err := configClient.GetConfig(vo.ConfigParam{ // DataId: "config", // Group: "prod"}) // //if err != nil { // panic(err) //} // //fmt.Println(content) //监听配置中心变化 err = configClient.ListenConfig(vo.ConfigParam{ DataId: "config", Group: "prod", OnChange: func(namespace, group, dataId, data string) { fmt.Println("group:" + group + ", dataId:" + dataId + ", data:" + data) }, }) if err != nil { panic(err) } time.Sleep(time.Hour) }