栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Go语言

go语言接入nacos

Go语言 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

go语言接入nacos

使用go接入现有分布式服务器 官方中文文档
(边写边弄博客)

直接上代码把 nacos很多配置我都用的默认的。所以我这里也大部分是默认配置

import (
	"fmt"
	"github.com/nacos-group/nacos-sdk-go/clients"
	"github.com/nacos-group/nacos-sdk-go/clients/naming_client"
	"github.com/nacos-group/nacos-sdk-go/common/constant"
	"github.com/nacos-group/nacos-sdk-go/vo"
)


func NacosInit(){

	clientConfig := constant.ClientConfig{
		NamespaceId:         "", // 如果需要支持多namespace,我们可以场景多个client,它们有不同的NamespaceId。当namespace是public时,此处填空字符串。
		TimeoutMs:           5000,
		NotLoadCacheAtStart: true,
		LogDir:              "log",
		CacheDir:            "cache",
		RotateTime:          "1h",
		MaxAge:              3,
		LogLevel:            "debug",
	}

	serverConfigs := []constant.ServerConfig{
		{
			IpAddr:      "127.0.0.1", //此处可以使用网址和ip
			ContextPath: "/nacos",
			Port:        8848,
			Scheme:      "http",
		},
	}


	// 将服务注册到nacos
	namingClient,_ := clients.NewNamingClient(
		vo.NacosClientParam{
			ClientConfig:  &clientConfig,
			ServerConfigs: serverConfigs,
		},
	)

	
	namingClient.RegisterInstance(vo.RegisterInstanceParam{
		Ip:          "127.0.0.1",
		Port:        8848,
		ServiceName: "im-nacos-go",
		Weight:      10,
		Enable:      true,
		Healthy:     true,
		Ephemeral:   true,
		Metadata:    map[string]string{"idc":"shanghai"},
		ClusterName: "DEFAULT", // 默认值DEFAULT
		GroupName:   "DEFAULT_GROUP",   // 默认值DEFAULT_GROUP
	})

	//获取nacos存在服务的信息
	instance, err := namingClient.SelectOneHealthyInstance(vo.SelectOneHealthInstanceParam{
		ServiceName: "sso",
		GroupName:   "DEFAULT_GROUP",             // 默认值DEFAULT_GROUP
		Clusters:    []string{"DEFAULT"}, // 默认值DEFAULT
	})
	fmt.Println(instance)
	fmt.Println(err)
configClient, err := clients.NewConfigClient(
		vo.NacosClientParam{
			ClientConfig:  &clientConfig,
			ServerConfigs: serverConfigs,
		},
	)
	//获取配置
	configClientcontent, err := configClient.GetConfig(vo.ConfigParam{
		DataId: "im-nacos-go",
		Group:  "DEFAULT_GROUP"})
	fmt.Println(configClientcontent)
		fmt.Println(err)
	
	//解析yml格式的数据完成初始化,上面的配置也可改成监听器
	v := viper.New()
	v.SetConfigType("yaml")
	v.ReadConfig(strings.NewReader(configClientcontent))
	logoText :=  v.GetString("logo")
	fmt.Println(logoText)
}

然后在启动的时候调用这个函数就可以注册到nacos中了,
至于获取服务看自己需求拉(建议看官方文档,看起来还比较轻松)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/907789.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号