From 71b8885babe6dfd25c91b007018347c0c1bfac74 Mon Sep 17 00:00:00 2001 From: zhangzengfei <zhangzengfei@smartai.com> Date: 星期五, 20 十月 2023 17:35:52 +0800 Subject: [PATCH] 添加主节点变更和主动切换功能 --- system-service/service/clusterService.go | 26 ++++++++++++++++++++++++++ 1 files changed, 26 insertions(+), 0 deletions(-) diff --git a/system-service/service/clusterService.go b/system-service/service/clusterService.go index 288683f..a39741f 100644 --- a/system-service/service/clusterService.go +++ b/system-service/service/clusterService.go @@ -138,6 +138,31 @@ return false, "" } +// 鏍规嵁闆嗙兢鍚嶇О鍜屽瘑鐮佸垱寤洪泦缇� +func (s ClusterService) UpdateDriftStateByNodeId(clusterId, nodeId, role string) (bool, string) { + var node models.Node + isSuccess := node.UpdateDriftStateByNodeId(role, nodeId, false) + + if isSuccess { + // 閫氱煡涓昏妭鐐瑰彉鏇� + chMsg := protomsg.DbChangeMessage{ + Id: clusterId, + Table: protomsg.TableChanged_T_Cluster, + Action: protomsg.DbAction_Insert, + Info: "slave2master", + } + + s.AddDbMessage(&chMsg) + + err := serf.Agent.UserEvent(serf.UserEventChangeMaster, []byte(nodeId), false) + if err != nil { + logger.Error("UserEventSyncVirtualIp err:", err) + } + } + + return isSuccess, "" +} + func (s ClusterService) SearchByPwd(pwd string) (err error) { _, isSearching := getFromSearchMap() if isSearching { @@ -471,6 +496,7 @@ func ClusterSyncProcMessage(payload []byte) { if serf.Agent == nil { logger.Error("鏈姞鍏ラ泦缇�") + return } err := serf.Agent.UserEvent(serf.UserEventSyncMessage, payload, false) -- Gitblit v1.8.0