package nacos import ( "errors" "git.shuncheng.lu/bigthing/gocommon/pkg/internal/util" "git.shuncheng.lu/bigthing/gocommon/pkg/conf" "git.shuncheng.lu/bigthing/gocommon/pkg/internal/nacos" "github.com/nacos-group/nacos-sdk-go/vo" ) var ( registerClientInfo *nacos.NamingInfo ) // 兼容历史版本!有些手动调用的! func InitNacosRegisterClient() error { info, err := nacos.NewNacosNameClient(nacos.NacosRegister, conf.SetAndAssertNil) if err != nil { return err } err = exportCurrentServer(info) if err != nil { return err } registerClientInfo = info return nil } func InitNacosRegisterClientV2() error { info, err := nacos.NewNacosNameClient(nacos.NacosRegister, conf.SetAndAssertNil) if err != nil { return err } registerClientInfo = info return nil } func StartNacosRegisterClientV2() error { // todo 考虑是否sleep一会等服务真正启动!! if err := exportCurrentServer(registerClientInfo); err != nil { return err } util.Infof("nacos regist server success !!") return nil } /** 暴露当前服务 */ func exportCurrentServer(info *nacos.NamingInfo) error { success, err := info.RegisterInstance(vo.RegisterInstanceParam{ Ip: info.ServerHost, Port: info.ServerPort, ServiceName: info.ProjectName, Weight: 10, Enable: true, Healthy: true, Ephemeral: true, Metadata: map[string]string{"idc": "shanghai"}, ClusterName: info.ClusterName, // default value is DEFAULT GroupName: info.GroupName, // default value is DEFAULT_GROUP }) if err != nil { return err } if !success { return errors.New("nacos register err") } return nil }