|
@@ -12,6 +12,7 @@ import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
|
|
|
+import com.taobao.tddl.dbsync.binlog.event.*;
|
|
|
import org.apache.commons.lang.StringUtils;
|
|
|
import org.apache.commons.lang.exception.ExceptionUtils;
|
|
|
import org.slf4j.Logger;
|
|
@@ -40,23 +41,7 @@ import com.alibaba.otter.canal.protocol.CanalEntry.Type;
|
|
|
import com.alibaba.otter.canal.protocol.position.EntryPosition;
|
|
|
import com.google.protobuf.ByteString;
|
|
|
import com.taobao.tddl.dbsync.binlog.LogEvent;
|
|
|
-import com.taobao.tddl.dbsync.binlog.event.DeleteRowsLogEvent;
|
|
|
-import com.taobao.tddl.dbsync.binlog.event.GtidLogEvent;
|
|
|
-import com.taobao.tddl.dbsync.binlog.event.HeartbeatLogEvent;
|
|
|
-import com.taobao.tddl.dbsync.binlog.event.IntvarLogEvent;
|
|
|
-import com.taobao.tddl.dbsync.binlog.event.LogHeader;
|
|
|
-import com.taobao.tddl.dbsync.binlog.event.QueryLogEvent;
|
|
|
-import com.taobao.tddl.dbsync.binlog.event.RandLogEvent;
|
|
|
-import com.taobao.tddl.dbsync.binlog.event.RowsLogBuffer;
|
|
|
-import com.taobao.tddl.dbsync.binlog.event.RowsLogEvent;
|
|
|
-import com.taobao.tddl.dbsync.binlog.event.RowsQueryLogEvent;
|
|
|
-import com.taobao.tddl.dbsync.binlog.event.TableMapLogEvent;
|
|
|
import com.taobao.tddl.dbsync.binlog.event.TableMapLogEvent.ColumnInfo;
|
|
|
-import com.taobao.tddl.dbsync.binlog.event.UnknownLogEvent;
|
|
|
-import com.taobao.tddl.dbsync.binlog.event.UpdateRowsLogEvent;
|
|
|
-import com.taobao.tddl.dbsync.binlog.event.UserVarLogEvent;
|
|
|
-import com.taobao.tddl.dbsync.binlog.event.WriteRowsLogEvent;
|
|
|
-import com.taobao.tddl.dbsync.binlog.event.XidLogEvent;
|
|
|
import com.taobao.tddl.dbsync.binlog.event.mariadb.AnnotateRowsEvent;
|
|
|
import com.taobao.tddl.dbsync.binlog.event.mariadb.MariaGtidListLogEvent;
|
|
|
import com.taobao.tddl.dbsync.binlog.event.mariadb.MariaGtidLogEvent;
|
|
@@ -147,6 +132,8 @@ public class LogEventConvert extends AbstractCanalLifeCycle implements BinlogPar
|
|
|
return parseGTIDLogEvent((GtidLogEvent) logEvent);
|
|
|
case LogEvent.HEARTBEAT_LOG_EVENT:
|
|
|
return parseHeartbeatLogEvent((HeartbeatLogEvent) logEvent);
|
|
|
+ case LogEvent.HEARTBEAT_LOG_EVENT_V2:
|
|
|
+ return parseHeartbeatV2LogEvent((HeartbeatV2LogEvent) logEvent);
|
|
|
case LogEvent.GTID_EVENT:
|
|
|
case LogEvent.GTID_LIST_EVENT:
|
|
|
return parseMariaGTIDLogEvent(logEvent);
|
|
@@ -173,6 +160,15 @@ public class LogEventConvert extends AbstractCanalLifeCycle implements BinlogPar
|
|
|
return entryBuilder.build();
|
|
|
}
|
|
|
|
|
|
+ private Entry parseHeartbeatV2LogEvent(HeartbeatV2LogEvent logEvent) {
|
|
|
+ Header.Builder headerBuilder = Header.newBuilder();
|
|
|
+ headerBuilder.setEventType(EventType.MHEARTBEAT);
|
|
|
+ Entry.Builder entryBuilder = Entry.newBuilder();
|
|
|
+ entryBuilder.setHeader(headerBuilder.build());
|
|
|
+ entryBuilder.setEntryType(EntryType.HEARTBEAT);
|
|
|
+ return entryBuilder.build();
|
|
|
+ }
|
|
|
+
|
|
|
private Entry parseGTIDLogEvent(GtidLogEvent logEvent) {
|
|
|
LogHeader logHeader = logEvent.getHeader();
|
|
|
Pair.Builder builder = Pair.newBuilder();
|