
使用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中了,
至于获取服务看自己需求拉(建议看官方文档,看起来还比较轻松)
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)