package initialization import ( "api/config" "api/core" "api/utils" "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" ) // 初始化Nacos注册 func initNacos() { config.InitNacosConfig() sc := []constant.ServerConfig{ *constant.NewServerConfig(config.NacosConfig.Host, config.NacosConfig.Port), } cc := constant.ClientConfig{ AppName: config.AppInfo.AppName, NamespaceId: config.NacosConfig.NamespaceId, TimeoutMs: 5000, NotLoadCacheAtStart: true, RotateTime: "1h", MaxAge: 3, LogLevel: "debug", } configParam := vo.NacosClientParam{ ClientConfig: &cc, ServerConfigs: sc, } client, err := clients.NewNamingClient(configParam) if err != nil { panic(err) } ip := config.AppInfo.AppName if ips := utils.GetIps(); ips != nil { ip = ips[0] } success, err := client.RegisterInstance(vo.RegisterInstanceParam{ Ip: ip, Port: config.AppInfo.Port, Weight: 10, Enable: true, Healthy: true, ServiceName: config.AppInfo.AppName, Ephemeral: true, }) core.Log.Debug("Nacos注册结果: %v", success) if !success { core.Log.Panic("服务注册失败,退出程序: %v", err.Error()) } // 打印所有服务 go func() { instances, err := client.SelectAllInstances(vo.SelectAllInstancesParam{ ServiceName: config.AppInfo.AppName, }) if err != nil { core.Log.Error("获取所有服务失败") return } core.Log.Debug("获取到服务总数: %v", len(instances)) for _, instance := range instances { core.Log.Debug("服务ID: %v --> %v:%v", instance.InstanceId, instance.Ip, instance.Port) } }() //configClient, err := clients.NewConfigClient(configParam) //if err != nil { // core.Log.Error("创建配置连接失败: %v", err.Error()) //} //_ = configClient.ListenConfig(vo.ConfigParam{ // DataId: config.NacosConfig.CenterConfigName, // Group: "DEFAULT_GROUP", // OnChange: configChanged, //}) // 读取初始配置 //core.NacosClient = core.NewNacosClient(client, configClient) //configStr, err := configClient.GetConfig(vo.ConfigParam{DataId: "gateway.yml", Group: "DEFAULT_GROUP"}) //if err != nil { // core.Log.Panic("读取配置文件错误: %v", err.Error()) //} //core.ConfigChanged(configStr) } //func configChanged(namespace, group, dataId, data string) { // core.ConfigChanged(data) //}