Go使用Nacos作为配置中心

go   2022-03-15 21:47   459   0  

简介看官网,不多说,下载最新稳定版:wget https://github.com/alibaba/nacos/releases/download/2.0.4/nacos-server-2.0.4.tar.gz

tar -xf nacos.tar.gz 
cd nacos/bin/
#因为只有一台机器,所以必须加-m standalone
bash startup.sh -m standalone
#成功

因为用的是腾讯云的轻应用服务器(便宜,几十块钱3年2核4G等于白嫖咯),授权防火墙8848/TCP协议

打开控制面板:http://ip:8848/nacos/#/login, 默认账号密码nacos/nacos,可视化操作没什么好说的,权限控制,先改密码,添加新用户

配置管理,稀里哗啦把相关的配置搬到配置管理中,搞定

开始使用go连接并监听配置,demo

package nacos

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"
	"os"
)

func init() {
    //因为这里添加配置时候选的是public所以namespaceId放空,不然会报错找不到配置
	//namespaceId := "53f7f635-9af9-4f30-b665-c9d7342134dc"
	cwd, _ := os.Getwd()
	cc := constant.ClientConfig{
		//Endpoint:    "81.68.69.29:8848",
		NamespaceId: "",
		Username:    "your username",
		Password:    "your password",
		LogLevel:    "debug",
		CacheDir:    cwd + "/log/cache",
	}
	serverConfigs := []constant.ServerConfig{
		{
			ContextPath: "/nacos",
			IpAddr:      "ip",
			Port:        8848,
			Scheme:      "http",
		},
	}

	clients.CreateNamingClient(map[string]interface{}{
		"serverConfigs": serverConfigs,
		"clientConfig":  cc,
	})

	client, _ := clients.CreateConfigClient(map[string]interface{}{
		"serverConfigs": serverConfigs,
		"clientConfig":  cc,
	})

	fmt.Println("Init Nacos Ok.")

	body, _ := client.GetConfig(vo.ConfigParam{
		DataId: "your dataId",
		Group:  "your groupId",
		OnChange: func(namespace, group, dataId, data string) {
			fmt.Println("config changed group:" + group + ", dataId:" + dataId + ", content:" + data)
		},
	})

	fmt.Println("GetConfig:" + body)

	client.ListenConfig(vo.ConfigParam{
		DataId: "your dataId",
		Group:  "your groupId",
		OnChange: func(namespace, group, dataId, data string) {

            //我用的是beego所以。
			//可以注入到beegoConfig中
			fmt.Println("config changed group:" + group + ", dataId:" + dataId + ", content:" + data)
		},
	})
}

然后在main.go中引入一下即可

import _ "your_project/nacos"



博客评论
还没有人评论,赶紧抢个沙发~
发表评论
说明:请文明发言,共建和谐网络,您的个人信息不会被公开显示。