Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
lijianghuflute
canal
提交
5ad9cf3f
canal
项目概览
lijianghuflute
/
canal
与 Fork 源项目一致
从无法访问的项目Fork
通知
3
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
canal
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
5ad9cf3f
编写于
11月 13, 2018
作者:
W
wuwo
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
let tsdbSnapshotInterval config work correctly
上级
3f8cdafe
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
33 addition
and
28 deletion
+33
-28
instance/manager/src/main/java/com/alibaba/otter/canal/instance/manager/CanalInstanceWithManager.java
...tter/canal/instance/manager/CanalInstanceWithManager.java
+1
-1
parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/LocalBinlogEventParser.java
...ter/canal/parse/inbound/mysql/LocalBinlogEventParser.java
+1
-0
parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/MysqlEventParser.java
...aba/otter/canal/parse/inbound/mysql/MysqlEventParser.java
+1
-0
parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/DatabaseTableMeta.java
...ter/canal/parse/inbound/mysql/tsdb/DatabaseTableMeta.java
+30
-26
parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/TableMetaTSDBBuilder.java
.../canal/parse/inbound/mysql/tsdb/TableMetaTSDBBuilder.java
+0
-1
未找到文件。
instance/manager/src/main/java/com/alibaba/otter/canal/instance/manager/CanalInstanceWithManager.java
浏览文件 @
5ad9cf3f
...
...
@@ -304,7 +304,6 @@ public class CanalInstanceWithManager extends AbstractCanalInstance {
}
boolean
tsdbEnable
=
BooleanUtils
.
toBoolean
(
parameters
.
getTsdbEnable
());
if
(
tsdbEnable
)
{
mysqlEventParser
.
setEnableTsdb
(
tsdbEnable
);
mysqlEventParser
.
setTableMetaTSDBFactory
(
new
DefaultTableMetaTSDBFactory
()
{
@Override
...
...
@@ -327,6 +326,7 @@ public class CanalInstanceWithManager extends AbstractCanalInstance {
}
}
});
mysqlEventParser
.
setEnableTsdb
(
tsdbEnable
);
}
eventParser
=
mysqlEventParser
;
}
else
if
(
type
.
isLocalBinlog
())
{
...
...
parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/LocalBinlogEventParser.java
浏览文件 @
5ad9cf3f
...
...
@@ -57,6 +57,7 @@ public class LocalBinlogEventParser extends AbstractMysqlEventParser implements
((
DatabaseTableMeta
)
tableMetaTSDB
).
setBlackFilter
(
eventBlackFilter
);
((
DatabaseTableMeta
)
tableMetaTSDB
).
setSnapshotInterval
(
tsdbSnapshotInterval
);
((
DatabaseTableMeta
)
tableMetaTSDB
).
setSnapshotExpire
(
tsdbSnapshotExpire
);
((
DatabaseTableMeta
)
tableMetaTSDB
).
init
(
destination
);
}
tableMetaCache
=
new
TableMetaCache
(
metaConnection
,
tableMetaTSDB
);
...
...
parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/MysqlEventParser.java
浏览文件 @
5ad9cf3f
...
...
@@ -124,6 +124,7 @@ public class MysqlEventParser extends AbstractMysqlEventParser implements CanalE
((
DatabaseTableMeta
)
tableMetaTSDB
).
setBlackFilter
(
eventBlackFilter
);
((
DatabaseTableMeta
)
tableMetaTSDB
).
setSnapshotInterval
(
tsdbSnapshotInterval
);
((
DatabaseTableMeta
)
tableMetaTSDB
).
setSnapshotExpire
(
tsdbSnapshotExpire
);
((
DatabaseTableMeta
)
tableMetaTSDB
).
init
(
destination
);
}
tableMetaCache
=
new
TableMetaCache
(
metaConnection
,
tableMetaTSDB
);
...
...
parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/DatabaseTableMeta.java
浏览文件 @
5ad9cf3f
...
...
@@ -10,6 +10,7 @@ import java.util.concurrent.ScheduledExecutorService;
import
java.util.concurrent.ScheduledFuture
;
import
java.util.concurrent.ThreadFactory
;
import
java.util.concurrent.TimeUnit
;
import
java.util.concurrent.atomic.AtomicBoolean
;
import
java.util.concurrent.locks.ReadWriteLock
;
import
java.util.concurrent.locks.ReentrantReadWriteLock
;
import
java.util.regex.Pattern
;
...
...
@@ -62,9 +63,10 @@ public class DatabaseTableMeta implements TableMetaTSDB {
}
});
private
ReadWriteLock
lock
=
new
ReentrantReadWriteLock
();
private
AtomicBoolean
initialized
=
new
AtomicBoolean
(
false
);
private
String
destination
;
private
MemoryTableMeta
memoryTableMeta
;
private
MysqlConnection
connection
;
// 查询meta信息的链接
private
volatile
MysqlConnection
connection
;
// 查询meta信息的链接
private
CanalEventFilter
filter
;
private
CanalEventFilter
blackFilter
;
private
EntryPosition
lastPosition
;
...
...
@@ -74,40 +76,42 @@ public class DatabaseTableMeta implements TableMetaTSDB {
private
int
snapshotInterval
=
24
;
private
int
snapshotExpire
=
360
;
private
ScheduledFuture
<?>
scheduleSnapshotFuture
;
public
DatabaseTableMeta
(){
}
@Override
public
boolean
init
(
final
String
destination
)
{
this
.
destination
=
destination
;
this
.
memoryTableMeta
=
new
MemoryTableMeta
();
// 24小时生成一份snapshot
if
(
snapshotInterval
>
0
)
{
scheduleSnapshotFuture
=
scheduler
.
scheduleWithFixedDelay
(
new
Runnable
()
{
@Override
public
void
run
()
{
boolean
applyResult
=
false
;
try
{
MDC
.
put
(
"destination"
,
destination
);
applyResult
=
applySnapshotToDB
(
lastPosition
,
false
);
}
catch
(
Throwable
e
)
{
logger
.
error
(
"scheudle applySnapshotToDB faield"
,
e
);
}
if
(
initialized
.
compareAndSet
(
false
,
true
))
{
this
.
destination
=
destination
;
this
.
memoryTableMeta
=
new
MemoryTableMeta
();
// 24小时生成一份snapshot
if
(
snapshotInterval
>
0
)
{
scheduleSnapshotFuture
=
scheduler
.
scheduleWithFixedDelay
(
new
Runnable
()
{
@Override
public
void
run
()
{
boolean
applyResult
=
false
;
try
{
MDC
.
put
(
"destination"
,
destination
);
applyResult
=
applySnapshotToDB
(
lastPosition
,
false
);
}
catch
(
Throwable
e
)
{
logger
.
error
(
"scheudle applySnapshotToDB faield"
,
e
);
}
try
{
MDC
.
put
(
"destination"
,
destination
);
if
(
applyResult
)
{
snapshotExpire
((
int
)
TimeUnit
.
HOURS
.
toSeconds
(
snapshotExpire
));
try
{
MDC
.
put
(
"destination"
,
destination
);
if
(
applyResult
)
{
snapshotExpire
((
int
)
TimeUnit
.
HOURS
.
toSeconds
(
snapshotExpire
));
}
}
catch
(
Throwable
e
)
{
logger
.
error
(
"scheudle snapshotExpire faield"
,
e
);
}
}
catch
(
Throwable
e
)
{
logger
.
error
(
"scheudle snapshotExpire faield"
,
e
);
}
}
}
,
snapshotInterval
,
snapshotInterval
,
TimeUnit
.
HOURS
);
}
,
snapshotInterval
,
snapshotInterval
,
TimeUnit
.
HOURS
);
}
}
return
true
;
}
...
...
parse/src/main/java/com/alibaba/otter/canal/parse/inbound/mysql/tsdb/TableMetaTSDBBuilder.java
浏览文件 @
5ad9cf3f
...
...
@@ -36,7 +36,6 @@ public class TableMetaTSDBBuilder {
}
}
TableMetaTSDB
tableMetaTSDB
=
(
TableMetaTSDB
)
applicationContext
.
getBean
(
"tableMetaTSDB"
);
tableMetaTSDB
.
init
(
destination
);
logger
.
info
(
"{} init TableMetaTSDB with {}"
,
destination
,
springXml
);
return
tableMetaTSDB
;
}
else
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录