add support for polardbx multi binlog streams (#4660)

* AbstractCanalInstance的subscribeChange方法,增加对AbstractEventParser的类型判断,以支持用户的自定义CanalEventParser

* MysqlEventParser对Gtid模式的处理需要考虑兼容性,支持系统平滑的从非gtid模式升级为gtid模式

* add support for polardbx multi binlog streams #4657

* support auto generate instance names #4657
This commit is contained in:
lulu2panpan
2023-03-23 13:46:10 +08:00
committed by GitHub
parent 5d7d19fdb1
commit a04a1912a8
13 changed files with 142 additions and 25 deletions

View File

@@ -329,6 +329,7 @@ public class CanalInstanceWithManager extends AbstractCanalInstance {
mysqlEventParser.setFilterTableError(parameters.getFilterTableError());
mysqlEventParser.setParallel(parameters.getParallel());
mysqlEventParser.setIsGTIDMode(BooleanUtils.toBoolean(parameters.getGtidEnable()));
mysqlEventParser.setMultiStreamEnable(parameters.getMultiStreamEnable());
// tsdb
if (parameters.getTsdbSnapshotInterval() != null) {
mysqlEventParser.setTsdbSnapshotInterval(parameters.getTsdbSnapshotInterval());

View File

@@ -124,6 +124,8 @@ public class CanalParameter implements Serializable {
private String alarmHandlerClass = null;
//自定义alarmHandler插件文件夹路径
private String alarmHandlerPluginDir = null;
//是否支持多流消费
private Boolean multiStreamEnable = Boolean.FALSE;
public static enum RunMode {
@@ -1012,6 +1014,14 @@ public class CanalParameter implements Serializable {
this.alarmHandlerPluginDir = alarmHandlerPluginDir;
}
public Boolean getMultiStreamEnable() {
return multiStreamEnable;
}
public void setMultiStreamEnable(Boolean multiStreamEnable) {
this.multiStreamEnable = multiStreamEnable;
}
public String toString() {
return ToStringBuilder.reflectionToString(this, CanalToStringStyle.DEFAULT_STYLE);
}