From 6e0e3fbef1a62719545d19ad09fb149238a84076 Mon Sep 17 00:00:00 2001 From: wdlily <1207097871@qq.com> Date: Thu, 17 Jan 2019 15:52:24 +0800 Subject: [PATCH 1/5] fixed a word MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit change '租' to '组' --- client-adapter/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/client-adapter/README.md b/client-adapter/README.md index 5d9ab5ce..80c62c0b 100644 --- a/client-adapter/README.md +++ b/client-adapter/README.md @@ -55,7 +55,7 @@ canal.conf: hbase.zookeeper.quorum: slave1 hbase.zookeeper.property.clientPort: 2181 zookeeper.znode.parent: /hbase - mqTopics: # MQ topic租, 如果是kafka或者rockeMQ模式可配置此项, 与canalInstances不能并存 + mqTopics: # MQ topic组, 如果是kafka或者rockeMQ模式可配置此项, 与canalInstances不能并存 - mqMode: kafka # MQ的模式: kafak/rocketMQ topic: example # MQ topic groups: # group组 @@ -542,4 +542,4 @@ bin/startup.sh #### 验证 1. 新增mysql mytest.user表的数据, 将会自动同步到es的mytest_user索引下面, 并会打出DML的log 2. 修改mysql mytest.role表的role_name, 将会自动同步es的mytest_user索引中的role_name数据 -3. 新增或者修改mysql mytest.label表的label, 将会自动同步es的mytest_user索引中的labels数据 \ No newline at end of file +3. 新增或者修改mysql mytest.label表的label, 将会自动同步es的mytest_user索引中的labels数据 From 8d4fbb395be4b7052593fdd6d19bb4708eb60cd9 Mon Sep 17 00:00:00 2001 From: agapple Date: Fri, 18 Jan 2019 11:00:02 +0800 Subject: [PATCH 2/5] fixed issue #1451 , fixed NPE --- .../otter/canal/parse/inbound/mysql/dbsync/LogEventConvert.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/dbsync/LogEventConvert.java b/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/dbsync/LogEventConvert.java index ded1343d..5a18b9eb 100644 --- a/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/dbsync/LogEventConvert.java +++ b/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/dbsync/LogEventConvert.java @@ -708,7 +708,7 @@ public class LogEventConvert extends AbstractCanalLifeCycle implements BinlogPar } } - buffer.nextValue(fieldMeta.getColumnName(), i, info.type, info.meta, isBinary); + buffer.nextValue(columnBuilder.getName(), i, info.type, info.meta, isBinary); int javaType = buffer.getJavaType(); if (buffer.isNull()) { columnBuilder.setIsNull(true); From b04d948064f19ac0825f06e5f621e4d726ed1d03 Mon Sep 17 00:00:00 2001 From: kangzhidong Date: Wed, 23 Jan 2019 11:58:07 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../otter/canal/client/adapter/rdb/config/ConfigLoader.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client-adapter/rdb/src/main/java/com/alibaba/otter/canal/client/adapter/rdb/config/ConfigLoader.java b/client-adapter/rdb/src/main/java/com/alibaba/otter/canal/client/adapter/rdb/config/ConfigLoader.java index a55644f3..8d249733 100644 --- a/client-adapter/rdb/src/main/java/com/alibaba/otter/canal/client/adapter/rdb/config/ConfigLoader.java +++ b/client-adapter/rdb/src/main/java/com/alibaba/otter/canal/client/adapter/rdb/config/ConfigLoader.java @@ -21,7 +21,7 @@ public class ConfigLoader { private static Logger logger = LoggerFactory.getLogger(ConfigLoader.class); /** - * 加载HBase表映射配置 + * 加载RDB表映射配置 * * @return 配置名/配置文件名--对象 */ From bb64d842983f6051e2a12992278ec3f257d6e1ef Mon Sep 17 00:00:00 2001 From: "wurongjun@duiba.com.cn" <775105396@qq.com> Date: Tue, 29 Jan 2019 16:10:26 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BB=8E=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=BA=93=E5=8A=A0=E8=BD=BD=E9=85=8D=E7=BD=AE=E5=86=99?= =?UTF-8?q?=E5=85=A5=E6=96=87=E4=BB=B6=E6=97=B6=E5=9B=A0=E7=9B=AE=E5=BD=95?= =?UTF-8?q?=E4=B8=8D=E5=AD=98=E5=9C=A8=E5=87=BA=E7=8E=B0=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../monitor/remote/DbRemoteConfigLoader.java | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/client-adapter/launcher/src/main/java/com/alibaba/otter/canal/adapter/launcher/monitor/remote/DbRemoteConfigLoader.java b/client-adapter/launcher/src/main/java/com/alibaba/otter/canal/adapter/launcher/monitor/remote/DbRemoteConfigLoader.java index 824ddcc9..704a606f 100644 --- a/client-adapter/launcher/src/main/java/com/alibaba/otter/canal/adapter/launcher/monitor/remote/DbRemoteConfigLoader.java +++ b/client-adapter/launcher/src/main/java/com/alibaba/otter/canal/adapter/launcher/monitor/remote/DbRemoteConfigLoader.java @@ -290,11 +290,22 @@ public class DbRemoteConfigLoader implements RemoteConfigLoader { @Override public void onModify(ConfigItem configItem) { + String confPath = getConfPath(); + String category = configItem.getCategory(); + File categoryDir = new File(confPath + category); + if (!categoryDir.isDirectory()) { + boolean mkDirs = categoryDir.mkdirs(); + if (!mkDirs) { + logger.info("## Create adapter category dir error: {}", category); + return; + } + } + String name = configItem.getName(); try (FileWriter writer = new FileWriter( - getConfPath() + configItem.getCategory() + "/" + configItem.getName())) { + confPath + category + "/" + configItem.getName())) { writer.write(configItem.getContent()); writer.flush(); - logger.info("## Loaded remote adapter config: {}/{}", configItem.getCategory(), configItem.getName()); + logger.info("## Loaded remote adapter config: {}/{}", category, name); } catch (Exception e) { logger.error(e.getMessage(), e); } From 032301102c076e74fc64c56f62a2215d368156cd Mon Sep 17 00:00:00 2001 From: codebee Date: Tue, 29 Jan 2019 17:10:26 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E6=8D=95=E8=8E=B7"rs=20=3D=20query("select?= =?UTF-8?q?=20@@global.binlog=5Fchecksum")"=20=E7=BB=93=E6=9E=9Crs?= =?UTF-8?q?=E4=B8=BAnull=E7=9A=84=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../parse/inbound/mysql/MysqlConnection.java | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/MysqlConnection.java b/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/MysqlConnection.java index afa9543c..338bd962 100644 --- a/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/MysqlConnection.java +++ b/parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/MysqlConnection.java @@ -514,15 +514,14 @@ public class MysqlConnection implements ErosaConnection { ResultSetPacket rs = null; try { rs = query("select @@global.binlog_checksum"); + List columnValues = rs.getFieldValues(); + if (columnValues != null && columnValues.size() >= 1 && columnValues.get(0).toUpperCase().equals("CRC32")) { + binlogChecksum = LogEvent.BINLOG_CHECKSUM_ALG_CRC32; + } else { + binlogChecksum = LogEvent.BINLOG_CHECKSUM_ALG_OFF; + } } catch (Throwable e) { - // ignore - return; - } - - List columnValues = rs.getFieldValues(); - if (columnValues != null && columnValues.size() >= 1 && columnValues.get(0).toUpperCase().equals("CRC32")) { - binlogChecksum = LogEvent.BINLOG_CHECKSUM_ALG_CRC32; - } else { + logger.error("", e); binlogChecksum = LogEvent.BINLOG_CHECKSUM_ALG_OFF; } }