mirror of
https://github.com/alibaba/canal.git
synced 2026-11-04 00:30:15 +08:00
Compare commits
1 Commits
master
...
canal-1.1.
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1a00be1aad |
@@ -5,6 +5,11 @@
|
|||||||
# enable gtid use true/false
|
# enable gtid use true/false
|
||||||
canal.instance.gtidon=false
|
canal.instance.gtidon=false
|
||||||
|
|
||||||
|
# rds oss binlog
|
||||||
|
canal.instance.rds.accesskey=
|
||||||
|
canal.instance.rds.secretkey=
|
||||||
|
canal.instance.rds.instanceId=
|
||||||
|
|
||||||
# position info
|
# position info
|
||||||
canal.instance.master.address=127.0.0.1:3306
|
canal.instance.master.address=127.0.0.1:3306
|
||||||
canal.instance.master.journal.name=
|
canal.instance.master.journal.name=
|
||||||
@@ -13,6 +18,8 @@ canal.instance.master.timestamp=
|
|||||||
canal.instance.master.gtid=
|
canal.instance.master.gtid=
|
||||||
|
|
||||||
# ssl
|
# ssl
|
||||||
|
#canal.instance.master.sslMode=DISABLED
|
||||||
|
#canal.instance.master.tlsVersions=
|
||||||
#canal.instance.master.trustCertificateKeyStoreType=
|
#canal.instance.master.trustCertificateKeyStoreType=
|
||||||
#canal.instance.master.trustCertificateKeyStoreUrl=
|
#canal.instance.master.trustCertificateKeyStoreUrl=
|
||||||
#canal.instance.master.trustCertificateKeyStorePassword=
|
#canal.instance.master.trustCertificateKeyStorePassword=
|
||||||
@@ -20,11 +27,6 @@ canal.instance.master.gtid=
|
|||||||
#canal.instance.master.clientCertificateKeyStoreUrl=
|
#canal.instance.master.clientCertificateKeyStoreUrl=
|
||||||
#canal.instance.master.clientCertificateKeyStorePassword=
|
#canal.instance.master.clientCertificateKeyStorePassword=
|
||||||
|
|
||||||
# rds oss binlog
|
|
||||||
canal.instance.rds.accesskey=
|
|
||||||
canal.instance.rds.secretkey=
|
|
||||||
canal.instance.rds.instanceId=
|
|
||||||
|
|
||||||
# table meta tsdb info
|
# table meta tsdb info
|
||||||
canal.instance.tsdb.enable=true
|
canal.instance.tsdb.enable=true
|
||||||
#canal.instance.tsdb.url=jdbc:mysql://127.0.0.1:3306/canal_tsdb
|
#canal.instance.tsdb.url=jdbc:mysql://127.0.0.1:3306/canal_tsdb
|
||||||
|
|||||||
@@ -107,8 +107,7 @@ public class MysqlConnector {
|
|||||||
sslVersion,
|
sslVersion,
|
||||||
sslCipher);
|
sslCipher);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
logger.info("Can't show SSL status, server may not standard MySQL server: {}", e.toString());
|
logger.warn("Can't show SSL status, server may not standard MySQL server", e);
|
||||||
logger.debug("show SSL status exception", e);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -147,8 +147,7 @@ public abstract class BioSocketChannelPool {
|
|||||||
ksIS.close();
|
ksIS.close();
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
// can't close input stream, but keystore can be properly initialized so we
|
// can't close input stream, but keystore can be properly initialized so we
|
||||||
// shouldn't throw
|
// shouldn't throw this exception
|
||||||
// this exception
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -194,8 +193,7 @@ public abstract class BioSocketChannelPool {
|
|||||||
trustStoreIS.close();
|
trustStoreIS.close();
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
// can't close input stream, but keystore can be properly initialized so we
|
// can't close input stream, but keystore can be properly initialized so we
|
||||||
// shouldn't throw this
|
// shouldn't throw this exception
|
||||||
// exception
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,10 +29,9 @@ public abstract class SocketChannelPool {
|
|||||||
|
|
||||||
public static SocketChannel connectSsl(SocketChannel channel, SslInfo sslInfo) throws IOException {
|
public static SocketChannel connectSsl(SocketChannel channel, SslInfo sslInfo) throws IOException {
|
||||||
SslMode sslMode = sslInfo.getSslMode();
|
SslMode sslMode = sslInfo.getSslMode();
|
||||||
|
|
||||||
String type = chooseSocketChannel();
|
String type = chooseSocketChannel();
|
||||||
if ("netty".equalsIgnoreCase(type)) {
|
if ("netty".equalsIgnoreCase(type)) {
|
||||||
throw new UnsupportedOperationException("canal.socketChannel netty not support ssl mode: " + sslMode);
|
throw new UnsupportedOperationException("canal socketChannel netty not support ssl mode: " + sslMode);
|
||||||
} else {
|
} else {
|
||||||
SocketAddress remoteSocketAddress = channel.getRemoteSocketAddress();
|
SocketAddress remoteSocketAddress = channel.getRemoteSocketAddress();
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -10,8 +10,8 @@ public class DdlResult {
|
|||||||
|
|
||||||
private String schemaName;
|
private String schemaName;
|
||||||
private String tableName;
|
private String tableName;
|
||||||
private String oriSchemaName; // rename ddl中的源表
|
private String oriSchemaName; // rename ddl中的源表
|
||||||
private String oriTableName; // rename ddl中的目标表
|
private String oriTableName; // rename ddl中的目标表
|
||||||
private EventType type;
|
private EventType type;
|
||||||
private DdlResult renameTableResult; // 多个rename table的存储
|
private DdlResult renameTableResult; // 多个rename table的存储
|
||||||
|
|
||||||
@@ -102,7 +102,8 @@ public class DdlResult {
|
|||||||
DdlResult ddlResult = this;
|
DdlResult ddlResult = this;
|
||||||
StringBuilder sb = new StringBuilder();
|
StringBuilder sb = new StringBuilder();
|
||||||
do {
|
do {
|
||||||
sb.append(String.format("DdlResult [schemaName=%s , tableName=%s , oriSchemaName=%s , oriTableName=%s , type=%s ];",
|
sb.append(String.format(
|
||||||
|
"DdlResult [schemaName=%s , tableName=%s , oriSchemaName=%s , oriTableName=%s , type=%s ];",
|
||||||
ddlResult.schemaName,
|
ddlResult.schemaName,
|
||||||
ddlResult.tableName,
|
ddlResult.tableName,
|
||||||
ddlResult.oriSchemaName,
|
ddlResult.oriSchemaName,
|
||||||
|
|||||||
@@ -4,39 +4,18 @@ import java.util.ArrayList;
|
|||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.apache.commons.lang.StringUtils;
|
||||||
|
|
||||||
|
import com.alibaba.otter.canal.protocol.CanalEntry.EventType;
|
||||||
import com.alibaba.polardbx.druid.sql.SQLUtils;
|
import com.alibaba.polardbx.druid.sql.SQLUtils;
|
||||||
import com.alibaba.polardbx.druid.sql.ast.SQLExpr;
|
import com.alibaba.polardbx.druid.sql.ast.SQLExpr;
|
||||||
import com.alibaba.polardbx.druid.sql.ast.SQLStatement;
|
import com.alibaba.polardbx.druid.sql.ast.SQLStatement;
|
||||||
import com.alibaba.polardbx.druid.sql.ast.expr.SQLIdentifierExpr;
|
import com.alibaba.polardbx.druid.sql.ast.expr.SQLIdentifierExpr;
|
||||||
import com.alibaba.polardbx.druid.sql.ast.expr.SQLPropertyExpr;
|
import com.alibaba.polardbx.druid.sql.ast.expr.SQLPropertyExpr;
|
||||||
import com.alibaba.polardbx.druid.sql.ast.statement.SQLAlterTableAddConstraint;
|
import com.alibaba.polardbx.druid.sql.ast.statement.*;
|
||||||
import com.alibaba.polardbx.druid.sql.ast.statement.SQLAlterTableAddIndex;
|
|
||||||
import com.alibaba.polardbx.druid.sql.ast.statement.SQLAlterTableDropConstraint;
|
|
||||||
import com.alibaba.polardbx.druid.sql.ast.statement.SQLAlterTableDropIndex;
|
|
||||||
import com.alibaba.polardbx.druid.sql.ast.statement.SQLAlterTableDropKey;
|
|
||||||
import com.alibaba.polardbx.druid.sql.ast.statement.SQLAlterTableItem;
|
|
||||||
import com.alibaba.polardbx.druid.sql.ast.statement.SQLAlterTableRename;
|
|
||||||
import com.alibaba.polardbx.druid.sql.ast.statement.SQLAlterTableStatement;
|
|
||||||
import com.alibaba.polardbx.druid.sql.ast.statement.SQLConstraint;
|
|
||||||
import com.alibaba.polardbx.druid.sql.ast.statement.SQLCreateDatabaseStatement;
|
|
||||||
import com.alibaba.polardbx.druid.sql.ast.statement.SQLCreateIndexStatement;
|
|
||||||
import com.alibaba.polardbx.druid.sql.ast.statement.SQLCreateTableStatement;
|
|
||||||
import com.alibaba.polardbx.druid.sql.ast.statement.SQLDeleteStatement;
|
|
||||||
import com.alibaba.polardbx.druid.sql.ast.statement.SQLDropDatabaseStatement;
|
|
||||||
import com.alibaba.polardbx.druid.sql.ast.statement.SQLDropIndexStatement;
|
|
||||||
import com.alibaba.polardbx.druid.sql.ast.statement.SQLDropTableStatement;
|
|
||||||
import com.alibaba.polardbx.druid.sql.ast.statement.SQLExprTableSource;
|
|
||||||
import com.alibaba.polardbx.druid.sql.ast.statement.SQLInsertStatement;
|
|
||||||
import com.alibaba.polardbx.druid.sql.ast.statement.SQLTableSource;
|
|
||||||
import com.alibaba.polardbx.druid.sql.ast.statement.SQLTruncateStatement;
|
|
||||||
import com.alibaba.polardbx.druid.sql.ast.statement.SQLUnique;
|
|
||||||
import com.alibaba.polardbx.druid.sql.ast.statement.SQLUpdateStatement;
|
|
||||||
import com.alibaba.polardbx.druid.sql.dialect.mysql.ast.statement.MySqlRenameTableStatement;
|
import com.alibaba.polardbx.druid.sql.dialect.mysql.ast.statement.MySqlRenameTableStatement;
|
||||||
import com.alibaba.polardbx.druid.sql.parser.ParserException;
|
import com.alibaba.polardbx.druid.sql.parser.ParserException;
|
||||||
import com.alibaba.polardbx.druid.util.JdbcConstants;
|
import com.alibaba.polardbx.druid.util.JdbcConstants;
|
||||||
import org.apache.commons.lang.StringUtils;
|
|
||||||
|
|
||||||
import com.alibaba.otter.canal.protocol.CanalEntry.EventType;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author agapple 2017年7月27日 下午4:05:34
|
* @author agapple 2017年7月27日 下午4:05:34
|
||||||
|
|||||||
@@ -3,26 +3,22 @@ package com.alibaba.otter.canal.parse.inbound.mysql.tsdb;
|
|||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
|
||||||
|
import org.apache.commons.lang.StringUtils;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
import com.alibaba.otter.canal.parse.inbound.TableMeta;
|
||||||
|
import com.alibaba.otter.canal.parse.inbound.TableMeta.FieldMeta;
|
||||||
|
import com.alibaba.otter.canal.parse.inbound.mysql.ddl.DruidDdlParser;
|
||||||
|
import com.alibaba.otter.canal.protocol.position.EntryPosition;
|
||||||
import com.alibaba.polardbx.druid.DbType;
|
import com.alibaba.polardbx.druid.DbType;
|
||||||
import com.alibaba.polardbx.druid.sql.SQLUtils;
|
import com.alibaba.polardbx.druid.sql.SQLUtils;
|
||||||
import com.alibaba.polardbx.druid.sql.ast.SQLDataType;
|
import com.alibaba.polardbx.druid.sql.ast.SQLDataType;
|
||||||
import com.alibaba.polardbx.druid.sql.ast.SQLDataTypeImpl;
|
import com.alibaba.polardbx.druid.sql.ast.SQLDataTypeImpl;
|
||||||
import com.alibaba.polardbx.druid.sql.ast.SQLExpr;
|
import com.alibaba.polardbx.druid.sql.ast.SQLExpr;
|
||||||
import com.alibaba.polardbx.druid.sql.ast.SQLStatement;
|
import com.alibaba.polardbx.druid.sql.ast.SQLStatement;
|
||||||
import com.alibaba.polardbx.druid.sql.ast.expr.SQLCharExpr;
|
import com.alibaba.polardbx.druid.sql.ast.expr.*;
|
||||||
import com.alibaba.polardbx.druid.sql.ast.expr.SQLIdentifierExpr;
|
import com.alibaba.polardbx.druid.sql.ast.statement.*;
|
||||||
import com.alibaba.polardbx.druid.sql.ast.expr.SQLMethodInvokeExpr;
|
|
||||||
import com.alibaba.polardbx.druid.sql.ast.expr.SQLNullExpr;
|
|
||||||
import com.alibaba.polardbx.druid.sql.ast.expr.SQLPropertyExpr;
|
|
||||||
import com.alibaba.polardbx.druid.sql.ast.statement.SQLColumnConstraint;
|
|
||||||
import com.alibaba.polardbx.druid.sql.ast.statement.SQLColumnDefinition;
|
|
||||||
import com.alibaba.polardbx.druid.sql.ast.statement.SQLColumnPrimaryKey;
|
|
||||||
import com.alibaba.polardbx.druid.sql.ast.statement.SQLColumnUniqueKey;
|
|
||||||
import com.alibaba.polardbx.druid.sql.ast.statement.SQLCreateTableStatement;
|
|
||||||
import com.alibaba.polardbx.druid.sql.ast.statement.SQLNotNullConstraint;
|
|
||||||
import com.alibaba.polardbx.druid.sql.ast.statement.SQLNullConstraint;
|
|
||||||
import com.alibaba.polardbx.druid.sql.ast.statement.SQLSelectOrderByItem;
|
|
||||||
import com.alibaba.polardbx.druid.sql.ast.statement.SQLTableElement;
|
|
||||||
import com.alibaba.polardbx.druid.sql.dialect.mysql.ast.MySqlPrimaryKey;
|
import com.alibaba.polardbx.druid.sql.dialect.mysql.ast.MySqlPrimaryKey;
|
||||||
import com.alibaba.polardbx.druid.sql.dialect.mysql.ast.MySqlUnique;
|
import com.alibaba.polardbx.druid.sql.dialect.mysql.ast.MySqlUnique;
|
||||||
import com.alibaba.polardbx.druid.sql.dialect.mysql.ast.expr.MySqlOrderingExpr;
|
import com.alibaba.polardbx.druid.sql.dialect.mysql.ast.expr.MySqlOrderingExpr;
|
||||||
@@ -32,13 +28,6 @@ import com.alibaba.polardbx.druid.sql.repository.SchemaRepository;
|
|||||||
import com.alibaba.polardbx.druid.sql.visitor.SQLASTOutputVisitor;
|
import com.alibaba.polardbx.druid.sql.visitor.SQLASTOutputVisitor;
|
||||||
import com.alibaba.polardbx.druid.sql.visitor.VisitorFeature;
|
import com.alibaba.polardbx.druid.sql.visitor.VisitorFeature;
|
||||||
import com.alibaba.polardbx.druid.util.JdbcConstants;
|
import com.alibaba.polardbx.druid.util.JdbcConstants;
|
||||||
import org.apache.commons.lang.StringUtils;
|
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
import com.alibaba.otter.canal.parse.inbound.TableMeta;
|
|
||||||
import com.alibaba.otter.canal.parse.inbound.TableMeta.FieldMeta;
|
|
||||||
import com.alibaba.otter.canal.parse.inbound.mysql.ddl.DruidDdlParser;
|
|
||||||
import com.alibaba.otter.canal.protocol.position.EntryPosition;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 基于DDL维护的内存表结构
|
* 基于DDL维护的内存表结构
|
||||||
@@ -50,7 +39,7 @@ public class MemoryTableMeta implements TableMetaTSDB {
|
|||||||
|
|
||||||
private Logger logger = LoggerFactory.getLogger(MemoryTableMeta.class);
|
private Logger logger = LoggerFactory.getLogger(MemoryTableMeta.class);
|
||||||
private Map<List<String>, TableMeta> tableMetas = new ConcurrentHashMap<>();
|
private Map<List<String>, TableMeta> tableMetas = new ConcurrentHashMap<>();
|
||||||
private SchemaRepository repository;
|
private SchemaRepository repository;
|
||||||
|
|
||||||
public MemoryTableMeta(){
|
public MemoryTableMeta(){
|
||||||
repository = new SchemaRepository(JdbcConstants.MYSQL);
|
repository = new SchemaRepository(JdbcConstants.MYSQL);
|
||||||
|
|||||||
Reference in New Issue
Block a user