From 052fe5fb54c324c297771f5e810be7b279287abc Mon Sep 17 00:00:00 2001
From: liuxiaolong <liuxiaolong@aiotlink.com>
Date: 星期四, 22 十月 2020 16:34:43 +0800
Subject: [PATCH] add SyncVirtualIp
---
agent.go | 30 ++++++++++++++++++------------
1 files changed, 18 insertions(+), 12 deletions(-)
diff --git a/agent.go b/agent.go
index 055d1d6..a2ae892 100644
--- a/agent.go
+++ b/agent.go
@@ -36,6 +36,7 @@
"basic.com/valib/serf.git/cmd/serf/command/agent"
//"github.com/apache/servicecomb-service-center/pkg/log"
"basic.com/valib/logger.git"
+ "github.com/satori/go.uuid"
)
const (
@@ -43,6 +44,7 @@
QueryEventUpdateDBData = "UpdateDBData"
UserEventSyncSql = "SyncSql"
UserEventSyncDbTablePersonCache = "SyncCache"
+ UserEventSyncVirtualIp = "SyncVirtualIp" //婕傜Щip淇敼
)
// Agent warps the serf agent
@@ -115,6 +117,7 @@
}
var SyncDbTablePersonCacheChan = make(chan []byte,512)
+var SyncVirtualIpChan = make(chan []byte, 512)
// HandleEvent Handles serf.EventMemberJoin events,
// which will wait for members to join until the number of group members is equal to "groupExpect"
@@ -139,9 +142,9 @@
go func() {
flag, e := ExecuteSqlByGorm(sqlUe.Sql)
logger.Info("ev.LTime:",ev.LTime,"userEvent exec ",sqlUe.Sql,",Result:",flag,", err:",e)
- logId := strconv.Itoa(int(ev.LTime))
+ logLT := strconv.Itoa(int(ev.LTime))
logT := time.Now().Format("2006-01-02 15:04:05")
- logSql := strings.Join(sqlUe.Sql, ";")
+ logSql := strings.ReplaceAll(strings.Join(sqlUe.Sql, ";"), "'", "''")
logResult := "0"
if flag {
logResult = "1"
@@ -150,12 +153,15 @@
if e != nil {
logErr = e.Error()
}
- ExecuteQueryByGorm([]string{"insert into sql_sync_his(`id`,`createTime`,`sql`,`from`,`result`,`err`) values ('"+logId+"','"+logT+"','"+logSql+"','"+sqlUe.Owner+"',"+logResult+",'"+logErr+"')"})
+ ExecuteSqlByGorm([]string{"insert into sql_sync_his(`id`,`lTime`,`createTime`,`sql`,`from`,`result`,`err`) values ('"+uuid.NewV4().String()+"','"+ logLT +"','"+logT+"','"+logSql+"','"+sqlUe.Owner+"',"+logResult+",'"+logErr+"')"})
}()
}
} else if ev.Name == UserEventSyncDbTablePersonCache {
logger.Info("LTime:",ev.LTime,",ev.Payload.len:",len(ev.Payload))
SyncDbTablePersonCacheChan <- ev.Payload
+ } else if ev.Name == UserEventSyncVirtualIp {
+ logger.Info("LTime:", ev.LTime, " Recevie virtualIp change")
+ SyncVirtualIpChan <- ev.Payload
}
@@ -248,9 +254,9 @@
addr := targetNode.Addr.String() + ":" + strconv.Itoa(TcpTransportPort)
sendErr := rawSendTcpMsg(addr, bytesReturn)
- logId := strconv.Itoa(int(ev.LTime))
+ logLT := strconv.Itoa(int(ev.LTime))
logT := time.Now().Format("2006-01-02 15:04:05")
- logSql := "QueryEventUpdateDBData from "+targetNode.Name
+ logSql := strings.ReplaceAll("QueryEventUpdateDBData from "+targetNode.Name,"'","''")
logResult := "0"
logErr := ""
if sendErr ==nil {
@@ -262,7 +268,7 @@
}
- ExecuteQueryByGorm([]string{"insert into sql_sync_his(`id`,`createTime`,`sql`,`from`,`result`,`err`) values ('"+logId+"','"+logT+"','"+logSql+"','"+targetNode.Name+"',"+logResult+",'"+logErr+"')"})
+ ExecuteSqlByGorm([]string{"insert into sql_sync_his(`id`,`lTime`,`createTime`,`sql`,`from`,`result`,`err`) values ('"+uuid.NewV4().String()+"','"+ logLT +"','"+logT+"','"+logSql+"','"+targetNode.Name+"',"+logResult+",'"+logErr+"')"})
}()
} else {
logger.Debug("targetNode is nil")
@@ -283,9 +289,9 @@
flag,e := ExecuteSqlByGorm([]string{ leaveSql })
logger.Info("EventMemberLeave,current Members:",ev.Members)
- logId := ""
+ logLT := ""
logT := time.Now().Format("2006-01-02 15:04:05")
- logSql := leaveSql
+ logSql := strings.ReplaceAll(leaveSql, "'","''")
logResult := "0"
if flag {
logResult = "1"
@@ -294,7 +300,7 @@
if e != nil {
logErr = e.Error()
}
- ExecuteQueryByGorm([]string{"insert into sql_sync_his(`id`,`createTime`,`sql`,`from`,`result`,`err`) values ('"+logId+"','"+logT+"','"+logSql+"','"+leaveMember.Name+"',"+logResult+",'"+logErr+"')"})
+ ExecuteSqlByGorm([]string{"insert into sql_sync_his(`id`,`lTime`,`createTime`,`sql`,`from`,`result`,`err`) values ('"+uuid.NewV4().String()+"','"+ logLT +"','"+logT+"','"+logSql+"','"+leaveMember.Name+"',"+logResult+",'"+logErr+"')"})
}
return
} else if event.EventType() == serf.EventMemberJoin {
@@ -304,9 +310,9 @@
flag,e := ExecuteSqlByGorm([]string{joinSql})
logger.Info("EventMemberJoin,current Members:",ev.Members)
- logId := ""
+ logLT := ""
logT := time.Now().Format("2006-01-02 15:04:05")
- logSql := joinSql
+ logSql := strings.ReplaceAll(joinSql, "'", "''")
logResult := "0"
if flag {
logResult = "1"
@@ -315,7 +321,7 @@
if e != nil {
logErr = e.Error()
}
- ExecuteQueryByGorm([]string{"insert into sql_sync_his(`id`,`createTime`,`sql`,`from`,`result`,`err`) values ('"+logId+"','"+logT+"','"+logSql+"','"+leaveMember.Name+"',"+logResult+",'"+logErr+"')"})
+ ExecuteSqlByGorm([]string{"insert into sql_sync_his(`id`,`lTime`,`createTime`,`sql`,`from`,`result`,`err`) values ('"+uuid.NewV4().String()+"','"+ logLT +"','"+logT+"','"+logSql+"','"+leaveMember.Name+"',"+logResult+",'"+logErr+"')"})
}
return
}
--
Gitblit v1.8.0