package c_nacos import ( "fmt" "github.com/nacos-group/nacos-sdk-go/v2/clients" "github.com/nacos-group/nacos-sdk-go/v2/clients/naming_client" "github.com/nacos-group/nacos-sdk-go/v2/common/constant" "github.com/nacos-group/nacos-sdk-go/v2/vo" ) var ( nacosIp = "36.110.106.142" nacosPort = 8848 namespaceId = "45e828a5-1a1d-4c46-a746-d4dfa3ca8f5f" username = "nacos" password = "nacos" serviceIp = "36.110.106.142" servicePort = 12340 serviceName = "plugin-compile" metadata = map[string]string{"开发者": "孟令鑫"} ) func InitNacos() { //create ServerConfig sc := []constant.ServerConfig{ *constant.NewServerConfig(nacosIp, uint64(nacosPort), constant.WithContextPath("/nacos")), } //create ClientConfig cc := *constant.NewClientConfig( constant.WithNamespaceId(namespaceId), constant.WithTimeoutMs(5000), constant.WithNotLoadCacheAtStart(true), constant.WithLogDir("/tmp/nacos/log"), constant.WithCacheDir("/tmp/nacos/cache"), constant.WithLogLevel("debug"), constant.WithUsername(username), constant.WithPassword(password), ) // create naming client client, err := clients.NewNamingClient( vo.NacosClientParam{ ClientConfig: &cc, ServerConfigs: sc, }, ) if err != nil { panic(err) } //Register registerServiceInstance(client, vo.RegisterInstanceParam{ Ip: serviceIp, Port: uint64(servicePort), ServiceName: serviceName, //GroupName: "group-a", //ClusterName: "cluster-a", Weight: 10, Enable: true, Healthy: true, Ephemeral: true, Metadata: metadata, }) } func registerServiceInstance(client naming_client.INamingClient, param vo.RegisterInstanceParam) { success, err := client.RegisterInstance(param) if !success || err != nil { panic("RegisterServiceInstance failed!" + err.Error()) } fmt.Printf("RegisterServiceInstance,param:%+v,result:%+v \n\n", param, success) } func batchRegisterServiceInstance(client naming_client.INamingClient, param vo.BatchRegisterInstanceParam) { success, err := client.BatchRegisterInstance(param) if !success || err != nil { panic("BatchRegisterServiceInstance failed!" + err.Error()) } fmt.Printf("BatchRegisterServiceInstance,param:%+v,result:%+v \n\n", param, success) } func deRegisterServiceInstance(client naming_client.INamingClient, param vo.DeregisterInstanceParam) { success, err := client.DeregisterInstance(param) if !success || err != nil { panic("DeRegisterServiceInstance failed!" + err.Error()) } fmt.Printf("DeRegisterServiceInstance,param:%+v,result:%+v \n\n", param, success) } func updateServiceInstance(client naming_client.INamingClient, param vo.UpdateInstanceParam) { success, err := client.UpdateInstance(param) if !success || err != nil { panic("UpdateInstance failed!" + err.Error()) } fmt.Printf("UpdateServiceInstance,param:%+v,result:%+v \n\n", param, success) } func getService(client naming_client.INamingClient, param vo.GetServiceParam) { service, err := client.GetService(param) if err != nil { panic("GetService failed!" + err.Error()) } fmt.Printf("GetService,param:%+v, result:%+v \n\n", param, service) } func selectAllInstances(client naming_client.INamingClient, param vo.SelectAllInstancesParam) { instances, err := client.SelectAllInstances(param) if err != nil { panic("SelectAllInstances failed!" + err.Error()) } fmt.Printf("SelectAllInstance,param:%+v, result:%+v \n\n", param, instances) } func selectInstances(client naming_client.INamingClient, param vo.SelectInstancesParam) { instances, err := client.SelectInstances(param) if err != nil { panic("SelectInstances failed!" + err.Error()) } fmt.Printf("SelectInstances,param:%+v, result:%+v \n\n", param, instances) } func selectOneHealthyInstance(client naming_client.INamingClient, param vo.SelectOneHealthInstanceParam) { instances, err := client.SelectOneHealthyInstance(param) if err != nil { panic("SelectOneHealthyInstance failed!") } fmt.Printf("SelectOneHealthyInstance,param:%+v, result:%+v \n\n", param, instances) } func subscribe(client naming_client.INamingClient, param *vo.SubscribeParam) { client.Subscribe(param) } func unSubscribe(client naming_client.INamingClient, param *vo.SubscribeParam) { client.Unsubscribe(param) } func getAllService(client naming_client.INamingClient, param vo.GetAllServiceInfoParam) { service, err := client.GetAllServicesInfo(param) if err != nil { panic("GetAllService failed!") } fmt.Printf("GetAllService,param:%+v, result:%+v \n\n", param, service) }