package com.duxinglangzi.canal.starter.mode;
|
|
import com.alibaba.otter.canal.protocol.CanalEntry;
|
|
import java.io.Serializable;
|
|
/**
|
* 监听事件的 返回信息, 主要将 CanalEntry 里不同层级的常用数据组装到同一层级使用.<p>
|
* entryHeader 是为了方便获取其他数据,比如: 获取日志文件名、日志文件偏移量等
|
*
|
* @author wuqiong 2022/8/15
|
*/
|
public class CanalMessage implements Serializable {
|
private static final long serialVersionUID = 730485362580815032L;
|
|
/**
|
* 发生变化的 事件类型
|
*/
|
private CanalEntry.EventType eventType;
|
|
/**
|
* 发生变化的数据
|
*/
|
private CanalEntry.RowData rowData;
|
|
/**
|
* 头信息, 包含: sql执行时间、数据库日志文件名、数据库日志文件偏移量 等信息
|
*/
|
private CanalEntry.Header entryHeader;
|
|
/**
|
* 构造返回数据信息
|
*
|
* @param entryHeader 头信息
|
* @param eventType 事件类型
|
* @param rowData 变化的数据
|
* @author wuqiong 2022/8/15 16:18
|
*/
|
public CanalMessage(CanalEntry.Header entryHeader, CanalEntry.EventType eventType, CanalEntry.RowData rowData) {
|
this.entryHeader = entryHeader;
|
this.eventType = eventType;
|
this.rowData = rowData;
|
}
|
|
/**
|
* 数据库名
|
*/
|
public String getDataBaseName() {
|
return getEntryHeader().getSchemaName();
|
}
|
|
/**
|
* 表名
|
*/
|
public String getTableName() {
|
return getEntryHeader().getTableName();
|
}
|
|
public CanalEntry.EventType getEventType() {
|
return eventType;
|
}
|
|
public CanalEntry.RowData getRowData() {
|
return rowData;
|
}
|
|
public CanalEntry.Header getEntryHeader() {
|
return entryHeader;
|
}
|
}
|