zhangqian
2023-10-20 cffc76e87bc92dd4fb4617ba097103163adde6d4
Merge branch 'master' of http://192.168.5.5:10010/r/aps/apsClient
1个文件已修改
17 ■■■■■ 已修改文件
serf/sync.go 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
serf/sync.go
@@ -402,8 +402,11 @@
    }
}
// serf 同步数据的限制为92160 byte
func (ss *SyncServer) handleSyncTableMessage(msg []byte) error {
    sizeLimit := 61440
    targetId := string(msg)
    //fmt.Println("同步全量数据给节点:", targetId)
    sqls, err := DumpTables(ss.sqlDB, ss.syncTables)
    if err != nil {
@@ -412,7 +415,19 @@
    }
    syncSql := strings.Join(sqls, ";")
    err = ss.pubSyncSqlMessage([]byte(syncSql), targetId)
    if len(syncSql) < sizeLimit {
        err = ss.pubSyncSqlMessage([]byte(syncSql), targetId)
    } else {
        shard := ""
        for _, sql := range sqls{
            if len(shard) + len(sql) > sizeLimit {
                err = ss.pubSyncSqlMessage([]byte(shard), targetId)
                shard = ""
            }
            shard = fmt.Sprintf("%s%s;",shard,sql)
        }
    }
    return err
}