| | |
| | | } |
| | | |
| | | //更新所有节点的脚本参数 |
| | | func UpdateAllNodesScriptArgument(nowPeers []interface{}) { |
| | | for _, val := range nowPeers { |
| | | ip := val.(string) |
| | | func UpdateAllNodesScriptArgument(peersIp []string) { |
| | | for _, ip := range peersIp { |
| | | fmt.Println("ip: ", ip) |
| | | url := "http://" + ip + ":7020/node/api-v/swfs/updateSWFSService" |
| | | fmt.Println("url", url) |
| | |
| | | |
| | | //请求作为主节点操作流程 |
| | | func RequestMasterNodesOperation(nowPeers []interface{}) { |
| | | peersIp := make([]string, 0) |
| | | for _, val := range nowPeers { |
| | | peersIp = append(peersIp, strings.Split(val.(string), ":")[0]) |
| | | } |
| | | coreBaseUnit, _ := strconv.Atoi(config.Server.CoreBaseUnit) |
| | | UpdateAllNodesScriptArgument(nowPeers) |
| | | RestartAllServer(nowPeers, coreBaseUnit) |
| | | UpdateAllNodesScriptArgument(peersIp) |
| | | RestartAllServer(peersIp, coreBaseUnit) |
| | | } |
| | | |
| | | //重启所有节点服务并验证 |
| | |
| | | } |
| | | |
| | | //构建重启流程 |
| | | func RestartAllServer(nowPeers []interface{}, coreBaseUnit int) { |
| | | coreThread := len(nowPeers)/coreBaseUnit + 1 |
| | | func RestartAllServer(peersIp []string, coreBaseUnit int) { |
| | | coreThread := len(peersIp)/coreBaseUnit + 1 |
| | | masterIp := make([]string, 0) |
| | | timeOut, _ := strconv.Atoi(config.Server.TimeOut) |
| | | var waitGroup sync.WaitGroup |
| | | for i, val := range nowPeers { |
| | | ip := val.(string) |
| | | for i, ip := range peersIp { |
| | | if (i+1)%coreThread == 0 { |
| | | masterIp = append(masterIp, strings.Split(ip, ":")[0]) |
| | | for i := 0; i < len(masterIp); i++ { |
| | |
| | | masterIp = make([]string, 0) |
| | | } else { |
| | | masterIp = append(masterIp, strings.Split(ip, ":")[0]) |
| | | if len(nowPeers) == i+1 { |
| | | if len(peersIp) == i+1 { |
| | | var waitGroup sync.WaitGroup |
| | | for i := 0; i < len(masterIp); i++ { |
| | | go Restart(masterIp[i], timeOut) |