zhangzengfei
2023-10-08 2cd1af13bc4e7aec4c85b9fe88db2d294af6468f
system-service/controllers/cluster.go
@@ -1,6 +1,7 @@
package controllers
import (
   "vamicro/config"
   "vamicro/system-service/models"
   "vamicro/system-service/service"
   "vamicro/system-service/vo"
@@ -13,6 +14,48 @@
type ClusterController struct {
}
// @Summary 查询当前集群状态
// @Description 查询本地集群
// @Produce json
// @Tags cluster
// @Success 200 {string} json "{"code":200, success:true, msg:"", data:""}"
// @Failure 500 {string} json "{"code":500, success:false, msg:"",data:""}"
// @Router /data/api-v/cluster/status [get]
func (cc ClusterController) GetClusterStat(h *bhomeclient.WrapperHandler, c *bhomeclient.Request) *bhomeclient.Reply {
   var clusterE models.Cluster
   var reply = bhomeclient.Reply{
      Success: false,
      Msg:     "leave",
      Data:    nil,
   }
   arr, err := clusterE.FindAll()
   if err == nil {
      if arr != nil && len(arr) > 0 {
         // 表示已加入集群
         reply.Success = true
         var nodeE models.Node
         nodes, _ := nodeE.FindNodesByClusterId(arr[0].ClusterId)
         logger.Debug("查询集群节点:", nodes)
         for _, node := range nodes {
            logger.Debug("节点:", node.NodeId, " servceId:", config.Server.AnalyServerId, " stat:", node.DriftState)
            if node.NodeId == config.Server.AnalyServerId {
               if node.DriftState == "master" {
                  reply.Msg = "master"
               } else {
                  reply.Msg = "slave"
               }
               break
            }
         }
      }
   }
   return &reply
}
// @Summary 查询本地集群
// @Description 查询本地集群
// @Produce json