1
0
Эх сурвалжийг харах

canal中的flatMessage中添加一个参数,记录gtid #4509 (#4521)

shicongyang 2 жил өмнө
parent
commit
62c4333790

+ 2 - 0
connector/core/src/main/java/com/alibaba/otter/canal/connector/core/producer/MQMessageUtils.java

@@ -374,6 +374,7 @@ public class MQMessageUtils {
             flatMessage.setEs(entry.getHeader().getExecuteTime());
             flatMessage.setTs(System.currentTimeMillis());
             flatMessage.setSql(rowChange.getSql());
+            flatMessage.setGtid(entry.getHeader().getGtid());
 
             if (!rowChange.getIsDdl()) {
                 Map<String, Integer> sqlType = new LinkedHashMap<>();
@@ -526,6 +527,7 @@ public class MQMessageUtils {
                             flatMessageTmp.setEs(flatMessage.getEs());
                             flatMessageTmp.setTs(flatMessage.getTs());
                             flatMessageTmp.setPkNames(flatMessage.getPkNames());
+                            flatMessageTmp.setGtid(flatMessage.getGtid());
                         }
                         List<Map<String, String>> data = flatMessageTmp.getData();
                         if (data == null) {

+ 10 - 1
protocol/src/main/java/com/alibaba/otter/canal/protocol/FlatMessage.java

@@ -27,6 +27,7 @@ public class FlatMessage implements Serializable {
     private Map<String, String>       mysqlType;
     private List<Map<String, String>> data;
     private List<Map<String, String>> old;
+    private String                    gtid;
 
     public FlatMessage() {
     }
@@ -146,10 +147,18 @@ public class FlatMessage implements Serializable {
         this.es = es;
     }
 
+    public String getGtid() {
+        return gtid;
+    }
+
+    public void setGtid(String gtid) {
+        this.gtid = gtid;
+    }
+
     @Override
     public String toString() {
         return "FlatMessage [id=" + id + ", database=" + database + ", table=" + table + ", isDdl=" + isDdl + ", type="
                + type + ", es=" + es + ", ts=" + ts + ", sql=" + sql + ", sqlType=" + sqlType + ", mysqlType="
-               + mysqlType + ", data=" + data + ", old=" + old + "]";
+               + mysqlType + ", data=" + data + ", old=" + old + ", gtid=" + gtid +"]";
     }
 }