nacos 配置中心使用

主要解决一个配置进行更改,所有实例都要进行配置重启的问题

命名空间:用来隔离配置,一般一个微服务一个命名空间

组:一般用来区分开发环境、测试环境、生产环境

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)
}
复制代码

 

posted @   JaydenQiu  阅读(632)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示