孟令鑫 1 yıl önce
ebeveyn
işleme
fb2aeb8c10

+ 20 - 10
amd64/kubernetes-scheduler/main/main.go

@@ -5,44 +5,54 @@ package main
 */
 
 import (
+	"cicv-data-closedloop/amd64/kubernetes-scheduler/package/entity"
 	"cicv-data-closedloop/amd64/kubernetes-scheduler/package/handler"
 	"cicv-data-closedloop/common/config/c_log"
 	"cicv-data-closedloop/common/config/c_nacos"
 	"cicv-data-closedloop/common/config/c_oss"
 	commonHandler "cicv-data-closedloop/common/gin/handler"
 	"cicv-data-closedloop/common/util"
+	"encoding/json"
+	"fmt"
 	"github.com/gin-gonic/gin"
 	"os"
 )
 
 const (
-	servicePort  = 12341
-	serviceName  = "kubernetes-scheduler"
-	routerPrefix = "/cicv-data-closedloop/kubernetes-scheduler/"
 	configDataId = "kubernetes-scheduler-prod.yaml"
 	configGroup  = "DEFAULT_GROUP"
 )
 
+var (
+	KubernetesSchedulerConfig = new(entity.KubernetesSchedulerConfigStruct)
+)
+
 func init() {
-	c_log.InitLog("kubernetes-scheduler")
-	c_log.InitLog(serviceName)
+	c_nacos.InitConfig(false, configDataId, configGroup)
+	// 使用 json.Unmarshal 解析 JSON 字符串到结构体
+	err := json.Unmarshal([]byte(c_nacos.Config), &KubernetesSchedulerConfig)
+	if err != nil {
+		fmt.Println("解析 JSON 时出错:", err)
+		return
+	}
+	c_log.InitLog(KubernetesSchedulerConfig.Service.Name)
 	c_oss.InitOss(false)
-	c_nacos.InitService(false, serviceName, servicePort, map[string]string{
+	c_nacos.InitService(false, KubernetesSchedulerConfig.Service.Name, KubernetesSchedulerConfig.Service.Port, map[string]string{
 		"开发者":  "孟令鑫",
 		"内网IP": "10.14.85.228",
 		"外网IP": "36.110.106.156",
 	})
-	c_nacos.InitConfig(false, configDataId, configGroup)
+
 }
 
 func main() {
 	router := gin.Default()
 	router.Use(commonHandler.ValidateHeaders())
-	api := router.Group(routerPrefix)
+	api := router.Group(KubernetesSchedulerConfig.Service.RouterPrefix)
 	api.POST("/start-project", handler.StartProject)
-	err := router.Run()
+	err := router.Run(":12345")
 	if err != nil {
-		c_log.GlobalLogger.Error("程序崩溃,监听端口 " + util.ToString(servicePort) + " 失败。")
+		c_log.GlobalLogger.Error("程序崩溃,监听端口 " + util.ToString(KubernetesSchedulerConfig.Service.Port) + " 失败。")
 		os.Exit(-1)
 	}
 }

+ 18 - 0
amd64/kubernetes-scheduler/package/entity/kubernetes_scheduler_config.go

@@ -0,0 +1,18 @@
+package entity
+
+type KubernetesSchedulerConfigStruct struct {
+	Service     ServiceStruct `yaml:"service"`
+	GpuNodeList []GpuNode     `yaml:"gpu-node-list"`
+}
+
+type ServiceStruct struct {
+	Port         uint64 `yaml:"port"`
+	Name         string `yaml:"name"`
+	RouterPrefix string `yaml:"router-prefix"`
+}
+
+type GpuNode struct {
+	Hostname    string `yaml:"hostname"`
+	Ip          string `yaml:"ip"`
+	Parallelism string `yaml:"parallelism"`
+}

+ 3 - 2
common/config/c_nacos/listen_config.go

@@ -2,13 +2,14 @@ package c_nacos
 
 import (
 	"cicv-data-closedloop/common/config/c_log"
-	"fmt"
 	"github.com/nacos-group/nacos-sdk-go/v2/clients"
 	"github.com/nacos-group/nacos-sdk-go/v2/common/constant"
 	"github.com/nacos-group/nacos-sdk-go/v2/vo"
 	"os"
 )
 
+var Config string
+
 func InitConfig(private bool, dataId string, group string) {
 	nacosIp := nacosPublicIp
 	if private {
@@ -38,7 +39,7 @@ func InitConfig(private bool, dataId string, group string) {
 		DataId: dataId,
 		Group:  group,
 		OnChange: func(namespace, group, dataId, data string) {
-			fmt.Println("config changed group:" + group + ", dataId:" + dataId + ", content:" + data)
+			Config = data // 更新配置
 		},
 	}); err != nil {
 		c_log.GlobalLogger.Error("程序崩溃,配置监听连接失败:", err)