Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
piplus-backend-v5-server-dockers
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
piplus-backend-v5
piplus-backend-v5-server-dockers
Commits
d646ee2b
Commit
d646ee2b
authored
Nov 11, 2016
by
focus
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
lts-admin调整
parent
5e563f86
Changes
35
Hide whitespace changes
Inline
Side-by-side
Showing
35 changed files
with
2227 additions
and
143 deletions
+2227
-143
Dockerfile
piplus-backend-v5-canal-docker/Dockerfile
+11
-7
canal.properties
piplus-backend-v5-canal-docker/conf-dev/canal.properties
+10
-10
logback.xml
piplus-backend-v5-canal-docker/conf-dev/logback.xml
+3
-73
instance.properties
...l-docker/conf-dev/terran_user_service/instance.properties
+27
-0
canal.properties
piplus-backend-v5-canal-docker/conf-prod/canal.properties
+67
-0
logback.xml
piplus-backend-v5-canal-docker/conf-prod/logback.xml
+83
-0
default-instance.xml
...end-v5-canal-docker/conf-prod/spring/default-instance.xml
+186
-0
file-instance.xml
...ackend-v5-canal-docker/conf-prod/spring/file-instance.xml
+171
-0
group-instance.xml
...ckend-v5-canal-docker/conf-prod/spring/group-instance.xml
+258
-0
memory-instance.xml
...kend-v5-canal-docker/conf-prod/spring/memory-instance.xml
+159
-0
instance.properties
...-v5-canal-docker/conf-prod/terran_dev/instance.properties
+0
-0
meta.dat
piplus-backend-v5-canal-docker/conf-prod/terran_dev/meta.dat
+0
-0
canal.properties
piplus-backend-v5-canal-docker/conf-sandbox/canal.properties
+67
-0
logback.xml
piplus-backend-v5-canal-docker/conf-sandbox/logback.xml
+83
-0
default-instance.xml
...-v5-canal-docker/conf-sandbox/spring/default-instance.xml
+186
-0
file-instance.xml
...end-v5-canal-docker/conf-sandbox/spring/file-instance.xml
+171
-0
group-instance.xml
...nd-v5-canal-docker/conf-sandbox/spring/group-instance.xml
+258
-0
memory-instance.xml
...d-v5-canal-docker/conf-sandbox/spring/memory-instance.xml
+159
-0
instance.properties
...-canal-docker/conf-sandbox/terran_dev/instance.properties
+27
-0
meta.dat
...-backend-v5-canal-docker/conf-sandbox/terran_dev/meta.dat
+1
-0
Dockerfile
piplus-backend-v5-lts-admin-docker/Dockerfile
+31
-0
log4j.properties
piplus-backend-v5-lts-admin-docker/conf-dev/log4j.properties
+0
-0
lts-admin.cfg
piplus-backend-v5-lts-admin-docker/conf-dev/lts-admin.cfg
+0
-0
lts-monitor.cfg
piplus-backend-v5-lts-admin-docker/conf-dev/lts-monitor.cfg
+0
-0
log4j.properties
...us-backend-v5-lts-admin-docker/conf-prod/log4j.properties
+0
-0
lts-admin.cfg
piplus-backend-v5-lts-admin-docker/conf-prod/lts-admin.cfg
+49
-0
lts-monitor.cfg
piplus-backend-v5-lts-admin-docker/conf-prod/lts-monitor.cfg
+34
-0
log4j.properties
...backend-v5-lts-admin-docker/conf-sandbox/log4j.properties
+7
-0
lts-admin.cfg
...us-backend-v5-lts-admin-docker/conf-sandbox/lts-admin.cfg
+50
-0
lts-monitor.cfg
...-backend-v5-lts-admin-docker/conf-sandbox/lts-monitor.cfg
+9
-8
lts-admin.sh
piplus-backend-v5-lts-admin-docker/lts-admin.sh
+37
-0
readme.txt
piplus-backend-v5-ltsadmin-docker/conf-dev/readme.txt
+0
-18
tasktracker.cfg
piplus-backend-v5-ltsadmin-docker/conf-dev/tasktracker.cfg
+0
-27
lts-admin.cfg
piplus-backend-v5-ltsadmin-docker/conf-prod/lts-admin.cfg
+49
-0
lts-monitor.cfg
piplus-backend-v5-ltsadmin-docker/conf-prod/lts-monitor.cfg
+34
-0
No files found.
piplus-backend-v5-canal-docker/Dockerfile
View file @
d646ee2b
...
...
@@ -19,16 +19,20 @@ RUN \
ls
-l
/opt
# Add src
ADD
conf-$RUN_ENV /opt/canal/conf
# Define mountable directories.
VOLUME
["/opt/canal/conf"]
ADD
conf-dev /opt/canal/conf-dev
ADD
conf-sandbox /opt/canal/conf-sandbox
ADD
conf-prod /opt/canal/conf-prod
#touch startup.sh
RUN
touch
startup.sh
\
&&
echo
'#!/bin/bash'
>>
startup.sh
\
&&
echo
'rm -rf /opt/canal/conf'
>>
startup.sh
\
&&
echo
'cp -a /opt/canal/conf-$RUN_ENV /opt/canal/conf'
>>
startup.sh
\
&&
echo
'./opt/canal/bin/startup.sh'
>>
startup.sh
\
&&
chmod
+x startup.sh
# Expose ports.
EXPOSE
11111
# Define working directory.
WORKDIR
/opt/canal/bin
# Define default command.
CMD
["./startup.sh"]
piplus-backend-v5-canal-docker/conf-dev/canal.properties
View file @
d646ee2b
#################################################
######### common argument #############
######### common argument #############
#################################################
canal.id
=
1
canal.ip
=
canal.ip
=
127.0.0.1
canal.port
=
11111
canal.zkServers
=
1
14.55.62.147
canal.zkServers
=
1
27.0.0.1
# flush data to zk
canal.zookeeper.flush.period
=
1000
# flush meta cursor/parse position to file
...
...
@@ -13,7 +13,7 @@ canal.file.flush.period = 1000
## memory store RingBuffer size, should be Math.pow(2,n)
canal.instance.memory.buffer.size
=
16384
## memory store RingBuffer used memory unit size , default 1kb
canal.instance.memory.buffer.memunit
=
1024
canal.instance.memory.buffer.memunit
=
1024
## meory store gets mode used MEMSIZE or ITEMSIZE
canal.instance.memory.batch.mode
=
MEMSIZE
...
...
@@ -43,25 +43,25 @@ canal.instance.filter.table.error = true
canal.instance.filter.rows
=
false
# binlog format/image check
canal.instance.binlog.format
=
ROW,STATEMENT,MIXED
canal.instance.binlog.format
=
ROW,STATEMENT,MIXED
canal.instance.binlog.image
=
FULL,MINIMAL,NOBLOB
# binlog ddl isolation
canal.instance.get.ddl.isolation
=
false
#################################################
######### destinations #############
######### destinations #############
#################################################
canal.destinations
=
terran_
dev
canal.destinations
=
terran_
user_service
# conf root dir
canal.conf.dir
=
../conf
# auto scan instance dir add/remove and start/stop instance
canal.auto.scan
=
false
canal.auto.scan.interval
=
5
canal.instance.global.mode
=
spring
canal.instance.global.mode
=
spring
canal.instance.global.lazy
=
false
#canal.instance.global.manager.address = 127.0.0.1:1099
#canal.instance.global.spring.xml = classpath:spring/memory-instance.xml
canal.instance.global.spring.xml
=
classpath:spring/file-instance.xml
#
canal.instance.global.spring.xml = classpath:spring/default-instance.xml
#
canal.instance.global.spring.xml = classpath:spring/file-instance.xml
canal.instance.global.spring.xml
=
classpath:spring/default-instance.xml
piplus-backend-v5-canal-docker/conf-dev/logback.xml
View file @
d646ee2b
...
...
@@ -6,78 +6,8 @@
</pattern>
</encoder>
</appender>
<appender
name=
"CANAL-ROOT"
class=
"ch.qos.logback.classic.sift.SiftingAppender"
>
<discriminator>
<Key>
destination
</Key>
<DefaultValue>
canal
</DefaultValue>
</discriminator>
<sift>
<appender
name=
"FILE-${destination}"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<File>
../logs/${destination}/${destination}.log
</File>
<rollingPolicy
class=
"ch.qos.logback.core.rolling.TimeBasedRollingPolicy"
>
<!-- rollover daily -->
<fileNamePattern>
../logs/${destination}/%d{yyyy-MM-dd}/${destination}-%d{yyyy-MM-dd}-%i.log.gz
</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy
class=
"ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"
>
<!-- or whenever the file size reaches 100MB -->
<maxFileSize>
512MB
</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<maxHistory>
60
</maxHistory>
</rollingPolicy>
<encoder>
<pattern>
%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{56} - %msg%n
</pattern>
</encoder>
</appender>
</sift>
</appender>
<appender
name=
"CANAL-META"
class=
"ch.qos.logback.classic.sift.SiftingAppender"
>
<discriminator>
<Key>
destination
</Key>
<DefaultValue>
canal
</DefaultValue>
</discriminator>
<sift>
<appender
name=
"META-FILE-${destination}"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<File>
../logs/${destination}/meta.log
</File>
<rollingPolicy
class=
"ch.qos.logback.core.rolling.TimeBasedRollingPolicy"
>
<!-- rollover daily -->
<fileNamePattern>
../logs/${destination}/%d{yyyy-MM-dd}/meta-%d{yyyy-MM-dd}-%i.log.gz
</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy
class=
"ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"
>
<!-- or whenever the file size reaches 100MB -->
<maxFileSize>
32MB
</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<maxHistory>
60
</maxHistory>
</rollingPolicy>
<encoder>
<pattern>
%d{yyyy-MM-dd HH:mm:ss.SSS} - %msg%n
</pattern>
</encoder>
</appender>
</sift>
</appender>
<logger
name=
"com.alibaba.otter.canal.instance"
additivity=
"false"
>
<level
value=
"INFO"
/>
<appender-ref
ref=
"CANAL-ROOT"
/>
</logger>
<logger
name=
"com.alibaba.otter.canal.deployer"
additivity=
"false"
>
<level
value=
"INFO"
/>
<appender-ref
ref=
"CANAL-ROOT"
/>
</logger>
<logger
name=
"com.alibaba.otter.canal.meta.FileMixedMetaManager"
additivity=
"false"
>
<level
value=
"INFO"
/>
<appender-ref
ref=
"CANAL-META"
/>
</logger>
<root
level=
"WARN"
>
<!--
<root
level=
"info"
>
<appender-ref
ref=
"STDOUT"
/>
-->
<appender-ref
ref=
"CANAL-ROOT"
/>
</root>
</configuration>
\ No newline at end of file
</configuration>
piplus-backend-v5-canal-docker/conf-dev/terran_user_service/instance.properties
0 → 100755
View file @
d646ee2b
#################################################
## mysql serverId
canal.instance.mysql.slaveId
=
1234
# position info
canal.instance.master.address
=
114.55.62.147:3306
canal.instance.master.journal.name
=
canal.instance.master.position
=
canal.instance.master.timestamp
=
#canal.instance.standby.address =
#canal.instance.standby.journal.name =
#canal.instance.standby.position =
#canal.instance.standby.timestamp =
# username/password
canal.instance.dbUsername
=
future
canal.instance.dbPassword
=
future123456
canal.instance.defaultDatabaseName
=
canal.instance.connectionCharset
=
UTF-8
# table regex
canal.instance.filter.regex
=
user-service.pi_user_ext
# table black regex
canal.instance.filter.black.regex
=
#################################################
piplus-backend-v5-canal-docker/conf-prod/canal.properties
0 → 100644
View file @
d646ee2b
#################################################
######### common argument #############
#################################################
canal.id
=
1
canal.ip
=
canal.port
=
11111
canal.zkServers
=
114.55.62.147
# flush data to zk
canal.zookeeper.flush.period
=
1000
# flush meta cursor/parse position to file
canal.file.data.dir
=
${canal.conf.dir}
canal.file.flush.period
=
1000
## memory store RingBuffer size, should be Math.pow(2,n)
canal.instance.memory.buffer.size
=
16384
## memory store RingBuffer used memory unit size , default 1kb
canal.instance.memory.buffer.memunit
=
1024
## meory store gets mode used MEMSIZE or ITEMSIZE
canal.instance.memory.batch.mode
=
MEMSIZE
## detecing config
canal.instance.detecting.enable
=
false
#canal.instance.detecting.sql = insert into retl.xdual values(1,now()) on duplicate key update x=now()
canal.instance.detecting.sql
=
select 1
canal.instance.detecting.interval.time
=
3
canal.instance.detecting.retry.threshold
=
3
canal.instance.detecting.heartbeatHaEnable
=
false
# support maximum transaction size, more than the size of the transaction will be cut into multiple transactions delivery
canal.instance.transaction.size
=
1024
# mysql fallback connected to new master should fallback times
canal.instance.fallbackIntervalInSeconds
=
60
# network config
canal.instance.network.receiveBufferSize
=
16384
canal.instance.network.sendBufferSize
=
16384
canal.instance.network.soTimeout
=
30
# binlog filter config
canal.instance.filter.query.dcl
=
true
canal.instance.filter.query.dml
=
false
canal.instance.filter.query.ddl
=
true
canal.instance.filter.table.error
=
true
canal.instance.filter.rows
=
false
# binlog format/image check
canal.instance.binlog.format
=
ROW,STATEMENT,MIXED
canal.instance.binlog.image
=
FULL,MINIMAL,NOBLOB
# binlog ddl isolation
canal.instance.get.ddl.isolation
=
false
#################################################
######### destinations #############
#################################################
canal.destinations
=
terran_dev
# conf root dir
canal.conf.dir
=
../conf
# auto scan instance dir add/remove and start/stop instance
canal.auto.scan
=
false
canal.auto.scan.interval
=
5
canal.instance.global.mode
=
spring
canal.instance.global.lazy
=
false
#canal.instance.global.manager.address = 127.0.0.1:1099
#canal.instance.global.spring.xml = classpath:spring/memory-instance.xml
canal.instance.global.spring.xml
=
classpath:spring/file-instance.xml
#canal.instance.global.spring.xml = classpath:spring/default-instance.xml
piplus-backend-v5-canal-docker/conf-prod/logback.xml
0 → 100644
View file @
d646ee2b
<configuration
scan=
"true"
scanPeriod=
" 5 seconds"
>
<jmxConfigurator
/>
<appender
name=
"STDOUT"
class=
"ch.qos.logback.core.ConsoleAppender"
>
<encoder>
<pattern>
%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{56} - %msg%n
</pattern>
</encoder>
</appender>
<appender
name=
"CANAL-ROOT"
class=
"ch.qos.logback.classic.sift.SiftingAppender"
>
<discriminator>
<Key>
destination
</Key>
<DefaultValue>
canal
</DefaultValue>
</discriminator>
<sift>
<appender
name=
"FILE-${destination}"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<File>
../logs/${destination}/${destination}.log
</File>
<rollingPolicy
class=
"ch.qos.logback.core.rolling.TimeBasedRollingPolicy"
>
<!-- rollover daily -->
<fileNamePattern>
../logs/${destination}/%d{yyyy-MM-dd}/${destination}-%d{yyyy-MM-dd}-%i.log.gz
</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy
class=
"ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"
>
<!-- or whenever the file size reaches 100MB -->
<maxFileSize>
512MB
</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<maxHistory>
60
</maxHistory>
</rollingPolicy>
<encoder>
<pattern>
%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{56} - %msg%n
</pattern>
</encoder>
</appender>
</sift>
</appender>
<appender
name=
"CANAL-META"
class=
"ch.qos.logback.classic.sift.SiftingAppender"
>
<discriminator>
<Key>
destination
</Key>
<DefaultValue>
canal
</DefaultValue>
</discriminator>
<sift>
<appender
name=
"META-FILE-${destination}"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<File>
../logs/${destination}/meta.log
</File>
<rollingPolicy
class=
"ch.qos.logback.core.rolling.TimeBasedRollingPolicy"
>
<!-- rollover daily -->
<fileNamePattern>
../logs/${destination}/%d{yyyy-MM-dd}/meta-%d{yyyy-MM-dd}-%i.log.gz
</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy
class=
"ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"
>
<!-- or whenever the file size reaches 100MB -->
<maxFileSize>
32MB
</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<maxHistory>
60
</maxHistory>
</rollingPolicy>
<encoder>
<pattern>
%d{yyyy-MM-dd HH:mm:ss.SSS} - %msg%n
</pattern>
</encoder>
</appender>
</sift>
</appender>
<logger
name=
"com.alibaba.otter.canal.instance"
additivity=
"false"
>
<level
value=
"INFO"
/>
<appender-ref
ref=
"CANAL-ROOT"
/>
</logger>
<logger
name=
"com.alibaba.otter.canal.deployer"
additivity=
"false"
>
<level
value=
"INFO"
/>
<appender-ref
ref=
"CANAL-ROOT"
/>
</logger>
<logger
name=
"com.alibaba.otter.canal.meta.FileMixedMetaManager"
additivity=
"false"
>
<level
value=
"INFO"
/>
<appender-ref
ref=
"CANAL-META"
/>
</logger>
<root
level=
"WARN"
>
<!--
<appender-ref ref="STDOUT"/>
-->
<appender-ref
ref=
"CANAL-ROOT"
/>
</root>
</configuration>
\ No newline at end of file
piplus-backend-v5-canal-docker/conf-prod/spring/default-instance.xml
0 → 100644
View file @
d646ee2b
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns=
"http://www.springframework.org/schema/beans"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xmlns:tx=
"http://www.springframework.org/schema/tx"
xmlns:aop=
"http://www.springframework.org/schema/aop"
xmlns:lang=
"http://www.springframework.org/schema/lang"
xmlns:context=
"http://www.springframework.org/schema/context"
xsi:schemaLocation=
"http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd"
default-autowire=
"byName"
>
<!-- properties -->
<bean
class=
"com.alibaba.otter.canal.instance.spring.support.PropertyPlaceholderConfigurer"
lazy-init=
"false"
>
<property
name=
"ignoreResourceNotFound"
value=
"true"
/>
<property
name=
"systemPropertiesModeName"
value=
"SYSTEM_PROPERTIES_MODE_OVERRIDE"
/>
<!-- 允许system覆盖 -->
<property
name=
"locationNames"
>
<list>
<value>
classpath:canal.properties
</value>
<value>
classpath:${canal.instance.destination:}/instance.properties
</value>
</list>
</property>
</bean>
<bean
id=
"socketAddressEditor"
class=
"com.alibaba.otter.canal.instance.spring.support.SocketAddressEditor"
/>
<bean
class=
"org.springframework.beans.factory.config.CustomEditorConfigurer"
>
<property
name=
"propertyEditorRegistrars"
>
<list>
<ref
bean=
"socketAddressEditor"
/>
</list>
</property>
</bean>
<bean
id=
"instance"
class=
"com.alibaba.otter.canal.instance.spring.CanalInstanceWithSpring"
>
<property
name=
"destination"
value=
"${canal.instance.destination}"
/>
<property
name=
"eventParser"
>
<ref
local=
"eventParser"
/>
</property>
<property
name=
"eventSink"
>
<ref
local=
"eventSink"
/>
</property>
<property
name=
"eventStore"
>
<ref
local=
"eventStore"
/>
</property>
<property
name=
"metaManager"
>
<ref
local=
"metaManager"
/>
</property>
<property
name=
"alarmHandler"
>
<ref
local=
"alarmHandler"
/>
</property>
</bean>
<!-- 报警处理类 -->
<bean
id=
"alarmHandler"
class=
"com.alibaba.otter.canal.common.alarm.LogAlarmHandler"
/>
<bean
id=
"zkClientx"
class=
"org.springframework.beans.factory.config.MethodInvokingFactoryBean"
>
<property
name=
"targetClass"
value=
"com.alibaba.otter.canal.common.zookeeper.ZkClientx"
/>
<property
name=
"targetMethod"
value=
"getZkClient"
/>
<property
name=
"arguments"
>
<list>
<value>
${canal.zkServers:127.0.0.1:2181}
</value>
</list>
</property>
</bean>
<bean
id=
"metaManager"
class=
"com.alibaba.otter.canal.meta.PeriodMixedMetaManager"
>
<property
name=
"zooKeeperMetaManager"
>
<bean
class=
"com.alibaba.otter.canal.meta.ZooKeeperMetaManager"
>
<property
name=
"zkClientx"
ref=
"zkClientx"
/>
</bean>
</property>
<property
name=
"period"
value=
"${canal.zookeeper.flush.period:1000}"
/>
</bean>
<bean
id=
"eventStore"
class=
"com.alibaba.otter.canal.store.memory.MemoryEventStoreWithBuffer"
>
<property
name=
"bufferSize"
value=
"${canal.instance.memory.buffer.size:16384}"
/>
<property
name=
"bufferMemUnit"
value=
"${canal.instance.memory.buffer.memunit:1024}"
/>
<property
name=
"batchMode"
value=
"${canal.instance.memory.batch.mode:MEMSIZE}"
/>
<property
name=
"ddlIsolation"
value=
"${canal.instance.get.ddl.isolation:false}"
/>
</bean>
<bean
id=
"eventSink"
class=
"com.alibaba.otter.canal.sink.entry.EntryEventSink"
>
<property
name=
"eventStore"
ref=
"eventStore"
/>
</bean>
<bean
id=
"eventParser"
class=
"com.alibaba.otter.canal.parse.inbound.mysql.MysqlEventParser"
>
<property
name=
"destination"
value=
"${canal.instance.destination}"
/>
<property
name=
"slaveId"
value=
"${canal.instance.mysql.slaveId:1234}"
/>
<!-- 心跳配置 -->
<property
name=
"detectingEnable"
value=
"${canal.instance.detecting.enable:false}"
/>
<property
name=
"detectingSQL"
value=
"${canal.instance.detecting.sql}"
/>
<property
name=
"detectingIntervalInSeconds"
value=
"${canal.instance.detecting.interval.time:5}"
/>
<property
name=
"haController"
>
<bean
class=
"com.alibaba.otter.canal.parse.ha.HeartBeatHAController"
>
<property
name=
"detectingRetryTimes"
value=
"${canal.instance.detecting.retry.threshold:3}"
/>
<property
name=
"switchEnable"
value=
"${canal.instance.detecting.heartbeatHaEnable:false}"
/>
</bean>
</property>
<property
name=
"alarmHandler"
ref=
"alarmHandler"
/>
<!-- 解析过滤处理 -->
<property
name=
"eventFilter"
>
<bean
class=
"com.alibaba.otter.canal.filter.aviater.AviaterRegexFilter"
>
<constructor-arg
index=
"0"
value=
"${canal.instance.filter.regex:.*\..*}"
/>
</bean>
</property>
<property
name=
"eventBlackFilter"
>
<bean
class=
"com.alibaba.otter.canal.filter.aviater.AviaterRegexFilter"
>
<constructor-arg
index=
"0"
value=
"${canal.instance.filter.black.regex:}"
/>
<constructor-arg
index=
"1"
value=
"false"
/>
</bean>
</property>
<!-- 最大事务解析大小,超过该大小后事务将被切分为多个事务投递 -->
<property
name=
"transactionSize"
value=
"${canal.instance.transaction.size:1024}"
/>
<!-- 网络链接参数 -->
<property
name=
"receiveBufferSize"
value=
"${canal.instance.network.receiveBufferSize:16384}"
/>
<property
name=
"sendBufferSize"
value=
"${canal.instance.network.sendBufferSize:16384}"
/>
<property
name=
"defaultConnectionTimeoutInSeconds"
value=
"${canal.instance.network.soTimeout:30}"
/>
<!-- 解析编码 -->
<!-- property name="connectionCharsetNumber" value="${canal.instance.connectionCharsetNumber:33}" /-->
<property
name=
"connectionCharset"
value=
"${canal.instance.connectionCharset:UTF-8}"
/>
<!-- 解析位点记录 -->
<property
name=
"logPositionManager"
>
<bean
class=
"com.alibaba.otter.canal.parse.index.FailbackLogPositionManager"
>
<property
name=
"primary"
>
<bean
class=
"com.alibaba.otter.canal.parse.index.MemoryLogPositionManager"
/>
</property>
<property
name=
"failback"
>
<bean
class=
"com.alibaba.otter.canal.parse.index.MetaLogPositionManager"
>
<property
name=
"metaManager"
ref=
"metaManager"
/>
</bean>
</property>
</bean>
</property>
<!-- failover切换时回退的时间 -->
<property
name=
"fallbackIntervalInSeconds"
value=
"${canal.instance.fallbackIntervalInSeconds:60}"
/>
<!-- 解析数据库信息 -->
<property
name=
"masterInfo"
>
<bean
class=
"com.alibaba.otter.canal.parse.support.AuthenticationInfo"
>
<property
name=
"address"
value=
"${canal.instance.master.address}"
/>
<property
name=
"username"
value=
"${canal.instance.dbUsername:retl}"
/>
<property
name=
"password"
value=
"${canal.instance.dbPassword:retl}"
/>
<property
name=
"defaultDatabaseName"
value=
"${canal.instance.defaultDatabaseName:retl}"
/>
</bean>
</property>
<property
name=
"standbyInfo"
>
<bean
class=
"com.alibaba.otter.canal.parse.support.AuthenticationInfo"
>
<property
name=
"address"
value=
"${canal.instance.standby.address}"
/>
<property
name=
"username"
value=
"${canal.instance.dbUsername:retl}"
/>
<property
name=
"password"
value=
"${canal.instance.dbPassword:retl}"
/>
<property
name=
"defaultDatabaseName"
value=
"${canal.instance.defaultDatabaseName:retl}"
/>
</bean>
</property>
<!-- 解析起始位点 -->
<property
name=
"masterPosition"
>
<bean
class=
"com.alibaba.otter.canal.protocol.position.EntryPosition"
>
<property
name=
"journalName"
value=
"${canal.instance.master.journal.name}"
/>
<property
name=
"position"
value=
"${canal.instance.master.position}"
/>
<property
name=
"timestamp"
value=
"${canal.instance.master.timestamp}"
/>
</bean>
</property>
<property
name=
"standbyPosition"
>
<bean
class=
"com.alibaba.otter.canal.protocol.position.EntryPosition"
>
<property
name=
"journalName"
value=
"${canal.instance.standby.journal.name}"
/>
<property
name=
"position"
value=
"${canal.instance.standby.position}"
/>
<property
name=
"timestamp"
value=
"${canal.instance.standby.timestamp}"
/>
</bean>
</property>
<property
name=
"filterQueryDml"
value=
"${canal.instance.filter.query.dml:false}"
/>
<property
name=
"filterQueryDcl"
value=
"${canal.instance.filter.query.dcl:false}"
/>
<property
name=
"filterQueryDdl"
value=
"${canal.instance.filter.query.ddl:false}"
/>
<property
name=
"filterRows"
value=
"${canal.instance.filter.rows:false}"
/>
<property
name=
"filterTableError"
value=
"${canal.instance.filter.table.error:false}"
/>
<property
name=
"supportBinlogFormats"
value=
"${canal.instance.binlog.format}"
/>
<property
name=
"supportBinlogImages"
value=
"${canal.instance.binlog.image}"
/>
</bean>
</beans>
piplus-backend-v5-canal-docker/conf-prod/spring/file-instance.xml
0 → 100644
View file @
d646ee2b
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns=
"http://www.springframework.org/schema/beans"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xmlns:tx=
"http://www.springframework.org/schema/tx"
xmlns:aop=
"http://www.springframework.org/schema/aop"
xmlns:lang=
"http://www.springframework.org/schema/lang"
xmlns:context=
"http://www.springframework.org/schema/context"
xsi:schemaLocation=
"http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd"
default-autowire=
"byName"
>
<!-- properties -->
<bean
class=
"com.alibaba.otter.canal.instance.spring.support.PropertyPlaceholderConfigurer"
lazy-init=
"false"
>
<property
name=
"ignoreResourceNotFound"
value=
"true"
/>
<property
name=
"systemPropertiesModeName"
value=
"SYSTEM_PROPERTIES_MODE_OVERRIDE"
/>
<!-- 允许system覆盖 -->
<property
name=
"locationNames"
>
<list>
<value>
classpath:canal.properties
</value>
<value>
classpath:${canal.instance.destination:}/instance.properties
</value>
</list>
</property>
</bean>
<bean
id=
"socketAddressEditor"
class=
"com.alibaba.otter.canal.instance.spring.support.SocketAddressEditor"
/>
<bean
class=
"org.springframework.beans.factory.config.CustomEditorConfigurer"
>
<property
name=
"propertyEditorRegistrars"
>
<list>
<ref
bean=
"socketAddressEditor"
/>
</list>
</property>
</bean>
<bean
id=
"instance"
class=
"com.alibaba.otter.canal.instance.spring.CanalInstanceWithSpring"
>
<property
name=
"destination"
value=
"${canal.instance.destination}"
/>
<property
name=
"eventParser"
>
<ref
local=
"eventParser"
/>
</property>
<property
name=
"eventSink"
>
<ref
local=
"eventSink"
/>
</property>
<property
name=
"eventStore"
>
<ref
local=
"eventStore"
/>
</property>
<property
name=
"metaManager"
>
<ref
local=
"metaManager"
/>
</property>
<property
name=
"alarmHandler"
>
<ref
local=
"alarmHandler"
/>
</property>
</bean>
<!-- 报警处理类 -->
<bean
id=
"alarmHandler"
class=
"com.alibaba.otter.canal.common.alarm.LogAlarmHandler"
/>
<bean
id=
"metaManager"
class=
"com.alibaba.otter.canal.meta.FileMixedMetaManager"
>
<property
name=
"dataDir"
value=
"${canal.file.data.dir:../conf}"
/>
<property
name=
"period"
value=
"${canal.file.flush.period:1000}"
/>
</bean>
<bean
id=
"eventStore"
class=
"com.alibaba.otter.canal.store.memory.MemoryEventStoreWithBuffer"
>
<property
name=
"bufferSize"
value=
"${canal.instance.memory.buffer.size:16384}"
/>
<property
name=
"bufferMemUnit"
value=
"${canal.instance.memory.buffer.memunit:1024}"
/>
<property
name=
"batchMode"
value=
"${canal.instance.memory.batch.mode:MEMSIZE}"
/>
<property
name=
"ddlIsolation"
value=
"${canal.instance.get.ddl.isolation:false}"
/>
</bean>
<bean
id=
"eventSink"
class=
"com.alibaba.otter.canal.sink.entry.EntryEventSink"
>
<property
name=
"eventStore"
ref=
"eventStore"
/>
</bean>
<bean
id=
"eventParser"
class=
"com.alibaba.otter.canal.parse.inbound.mysql.MysqlEventParser"
>
<property
name=
"destination"
value=
"${canal.instance.destination}"
/>
<property
name=
"slaveId"
value=
"${canal.instance.mysql.slaveId:1234}"
/>
<!-- 心跳配置 -->
<property
name=
"detectingEnable"
value=
"${canal.instance.detecting.enable:false}"
/>
<property
name=
"detectingSQL"
value=
"${canal.instance.detecting.sql}"
/>
<property
name=
"detectingIntervalInSeconds"
value=
"${canal.instance.detecting.interval.time:5}"
/>
<property
name=
"haController"
>
<bean
class=
"com.alibaba.otter.canal.parse.ha.HeartBeatHAController"
>
<property
name=
"detectingRetryTimes"
value=
"${canal.instance.detecting.retry.threshold:3}"
/>
<property
name=
"switchEnable"
value=
"${canal.instance.detecting.heartbeatHaEnable:false}"
/>
</bean>
</property>
<property
name=
"alarmHandler"
ref=
"alarmHandler"
/>
<!-- 解析过滤处理 -->
<property
name=
"eventFilter"
>
<bean
class=
"com.alibaba.otter.canal.filter.aviater.AviaterRegexFilter"
>
<constructor-arg
index=
"0"
value=
"${canal.instance.filter.regex:.*\..*}"
/>
</bean>
</property>
<property
name=
"eventBlackFilter"
>
<bean
class=
"com.alibaba.otter.canal.filter.aviater.AviaterRegexFilter"
>
<constructor-arg
index=
"0"
value=
"${canal.instance.filter.black.regex:}"
/>
<constructor-arg
index=
"1"
value=
"false"
/>
</bean>
</property>
<!-- 最大事务解析大小,超过该大小后事务将被切分为多个事务投递 -->
<property
name=
"transactionSize"
value=
"${canal.instance.transaction.size:1024}"
/>
<!-- 网络链接参数 -->
<property
name=
"receiveBufferSize"
value=
"${canal.instance.network.receiveBufferSize:16384}"
/>
<property
name=
"sendBufferSize"
value=
"${canal.instance.network.sendBufferSize:16384}"
/>
<property
name=
"defaultConnectionTimeoutInSeconds"
value=
"${canal.instance.network.soTimeout:30}"
/>
<!-- 解析编码 -->
<!-- property name="connectionCharsetNumber" value="${canal.instance.connectionCharsetNumber:33}" /-->
<property
name=
"connectionCharset"
value=
"${canal.instance.connectionCharset:UTF-8}"
/>
<!-- 解析位点记录 -->
<property
name=
"logPositionManager"
>
<bean
class=
"com.alibaba.otter.canal.parse.index.FailbackLogPositionManager"
>
<property
name=
"primary"
>
<bean
class=
"com.alibaba.otter.canal.parse.index.MemoryLogPositionManager"
/>
</property>
<property
name=
"failback"
>
<bean
class=
"com.alibaba.otter.canal.parse.index.MetaLogPositionManager"
>
<property
name=
"metaManager"
ref=
"metaManager"
/>
</bean>
</property>
</bean>
</property>
<!-- failover切换时回退的时间 -->
<property
name=
"fallbackIntervalInSeconds"
value=
"${canal.instance.fallbackIntervalInSeconds:60}"
/>
<!-- 解析数据库信息 -->
<property
name=
"masterInfo"
>
<bean
class=
"com.alibaba.otter.canal.parse.support.AuthenticationInfo"
>
<property
name=
"address"
value=
"${canal.instance.master.address}"
/>
<property
name=
"username"
value=
"${canal.instance.dbUsername:retl}"
/>
<property
name=
"password"
value=
"${canal.instance.dbPassword:retl}"
/>
<property
name=
"defaultDatabaseName"
value=
"${canal.instance.defaultDatabaseName:retl}"
/>
</bean>
</property>
<property
name=
"standbyInfo"
>
<bean
class=
"com.alibaba.otter.canal.parse.support.AuthenticationInfo"
>
<property
name=
"address"
value=
"${canal.instance.standby.address}"
/>
<property
name=
"username"
value=
"${canal.instance.dbUsername:retl}"
/>
<property
name=
"password"
value=
"${canal.instance.dbPassword:retl}"
/>
<property
name=
"defaultDatabaseName"
value=
"${canal.instance.defaultDatabaseName:retl}"
/>
</bean>
</property>
<!-- 解析起始位点 -->
<property
name=
"masterPosition"
>
<bean
class=
"com.alibaba.otter.canal.protocol.position.EntryPosition"
>
<property
name=
"journalName"
value=
"${canal.instance.master.journal.name}"
/>
<property
name=
"position"
value=
"${canal.instance.master.position}"
/>
<property
name=
"timestamp"
value=
"${canal.instance.master.timestamp}"
/>
</bean>
</property>
<property
name=
"standbyPosition"
>
<bean
class=
"com.alibaba.otter.canal.protocol.position.EntryPosition"
>
<property
name=
"journalName"
value=
"${canal.instance.standby.journal.name}"
/>
<property
name=
"position"
value=
"${canal.instance.standby.position}"
/>
<property
name=
"timestamp"
value=
"${canal.instance.standby.timestamp}"
/>
</bean>
</property>
<property
name=
"filterQueryDml"
value=
"${canal.instance.filter.query.dml:false}"
/>
<property
name=
"filterQueryDcl"
value=
"${canal.instance.filter.query.dcl:false}"
/>
<property
name=
"filterQueryDdl"
value=
"${canal.instance.filter.query.ddl:false}"
/>
<property
name=
"filterRows"
value=
"${canal.instance.filter.rows:false}"
/>
<property
name=
"filterTableError"
value=
"${canal.instance.filter.table.error:false}"
/>
<property
name=
"supportBinlogFormats"
value=
"${canal.instance.binlog.format}"
/>
<property
name=
"supportBinlogImages"
value=
"${canal.instance.binlog.image}"
/>
</bean>
</beans>
piplus-backend-v5-canal-docker/conf-prod/spring/group-instance.xml
0 → 100644
View file @
d646ee2b
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns=
"http://www.springframework.org/schema/beans"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xmlns:tx=
"http://www.springframework.org/schema/tx"
xmlns:aop=
"http://www.springframework.org/schema/aop"
xmlns:lang=
"http://www.springframework.org/schema/lang"
xmlns:context=
"http://www.springframework.org/schema/context"
xsi:schemaLocation=
"http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd"
default-autowire=
"byName"
>
<!-- properties -->
<bean
class=
"com.alibaba.otter.canal.instance.spring.support.PropertyPlaceholderConfigurer"
lazy-init=
"false"
>
<property
name=
"ignoreResourceNotFound"
value=
"true"
/>
<property
name=
"systemPropertiesModeName"
value=
"SYSTEM_PROPERTIES_MODE_OVERRIDE"
/>
<!-- 允许system覆盖 -->
<property
name=
"locationNames"
>
<list>
<value>
classpath:canal.properties
</value>
<value>
classpath:${canal.instance.destination:}/instance.properties
</value>
</list>
</property>
</bean>
<bean
id=
"socketAddressEditor"
class=
"com.alibaba.otter.canal.instance.spring.support.SocketAddressEditor"
/>
<bean
class=
"org.springframework.beans.factory.config.CustomEditorConfigurer"
>
<property
name=
"propertyEditorRegistrars"
>
<list>
<ref
bean=
"socketAddressEditor"
/>
</list>
</property>
</bean>
<bean
id=
"instance"
class=
"com.alibaba.otter.canal.instance.spring.CanalInstanceWithSpring"
>
<property
name=
"destination"
value=
"${canal.instance.destination}"
/>
<property
name=
"eventParser"
>
<ref
local=
"eventParser"
/>
</property>
<property
name=
"eventSink"
>
<ref
local=
"eventSink"
/>
</property>
<property
name=
"eventStore"
>
<ref
local=
"eventStore"
/>
</property>
<property
name=
"metaManager"
>
<ref
local=
"metaManager"
/>
</property>
<property
name=
"alarmHandler"
>
<ref
local=
"alarmHandler"
/>
</property>
</bean>
<!-- 报警处理类 -->
<bean
id=
"alarmHandler"
class=
"com.alibaba.otter.canal.common.alarm.LogAlarmHandler"
/>
<bean
id=
"metaManager"
class=
"com.alibaba.otter.canal.meta.MemoryMetaManager"
/>
<bean
id=
"eventStore"
class=
"com.alibaba.otter.canal.store.memory.MemoryEventStoreWithBuffer"
>
<property
name=
"bufferSize"
value=
"${canal.instance.memory.buffer.size:16384}"
/>
<property
name=
"bufferMemUnit"
value=
"${canal.instance.memory.buffer.memunit:1024}"
/>
<property
name=
"batchMode"
value=
"${canal.instance.memory.batch.mode:MEMSIZE}"
/>
<property
name=
"ddlIsolation"
value=
"${canal.instance.get.ddl.isolation:false}"
/>
</bean>
<bean
id=
"eventSink"
class=
"com.alibaba.otter.canal.sink.entry.EntryEventSink"
>
<property
name=
"eventStore"
ref=
"eventStore"
/>
</bean>
<bean
id=
"eventParser"
class=
"com.alibaba.otter.canal.parse.inbound.group.GroupEventParser"
>
<property
name=
"eventParsers"
>
<list>
<ref
bean=
"eventParser1"
/>
<ref
bean=
"eventParser2"
/>
</list>
</property>
</bean>
<bean
id=
"eventParser1"
class=
"com.alibaba.otter.canal.parse.inbound.mysql.MysqlEventParser"
>
<property
name=
"destination"
value=
"${canal.instance.destination}"
/>
<property
name=
"slaveId"
value=
"${canal.instance.mysql.slaveId:1234}"
/>
<!-- 心跳配置 -->
<property
name=
"detectingEnable"
value=
"${canal.instance.detecting.enable:false}"
/>
<property
name=
"detectingSQL"
value=
"${canal.instance.detecting.sql}"
/>
<property
name=
"detectingIntervalInSeconds"
value=
"${canal.instance.detecting.interval.time:5}"
/>
<property
name=
"haController"
>
<bean
class=
"com.alibaba.otter.canal.parse.ha.HeartBeatHAController"
>
<property
name=
"detectingRetryTimes"
value=
"${canal.instance.detecting.retry.threshold:3}"
/>
<property
name=
"switchEnable"
value=
"${canal.instance.detecting.heartbeatHaEnable:false}"
/>
</bean>
</property>
<property
name=
"alarmHandler"
ref=
"alarmHandler"
/>
<!-- 解析过滤处理 -->
<property
name=
"eventFilter"
>
<bean
class=
"com.alibaba.otter.canal.filter.aviater.AviaterRegexFilter"
>
<constructor-arg
index=
"0"
value=
"${canal.instance.filter.regex:.*\..*}"
/>
</bean>
</property>
<property
name=
"eventBlackFilter"
>
<bean
class=
"com.alibaba.otter.canal.filter.aviater.AviaterRegexFilter"
>
<constructor-arg
index=
"0"
value=
"${canal.instance.filter.black.regex:}"
/>
<constructor-arg
index=
"1"
value=
"false"
/>
</bean>
</property>
<!-- 最大事务解析大小,超过该大小后事务将被切分为多个事务投递 -->
<property
name=
"transactionSize"
value=
"${canal.instance.transaction.size:1024}"
/>
<!-- 网络链接参数 -->
<property
name=
"receiveBufferSize"
value=
"${canal.instance.network.receiveBufferSize:16384}"
/>
<property
name=
"sendBufferSize"
value=
"${canal.instance.network.sendBufferSize:16384}"
/>
<property
name=
"defaultConnectionTimeoutInSeconds"
value=
"${canal.instance.network.soTimeout:30}"
/>
<!-- 解析编码 -->
<!-- property name="connectionCharsetNumber" value="${canal.instance.connectionCharsetNumber:33}" /-->
<property
name=
"connectionCharset"
value=
"${canal.instance.connectionCharset:UTF-8}"
/>
<!-- 解析位点记录 -->
<property
name=
"logPositionManager"
>
<bean
class=
"com.alibaba.otter.canal.parse.index.MemoryLogPositionManager"
/>
</property>
<!-- failover切换时回退的时间 -->
<property
name=
"fallbackIntervalInSeconds"
value=
"${canal.instance.fallbackIntervalInSeconds:60}"
/>
<!-- 解析数据库信息 -->
<property
name=
"masterInfo"
>
<bean
class=
"com.alibaba.otter.canal.parse.support.AuthenticationInfo"
>
<property
name=
"address"
value=
"${canal.instance.master1.address}"
/>
<property
name=
"username"
value=
"${canal.instance.dbUsername:retl}"
/>
<property
name=
"password"
value=
"${canal.instance.dbPassword:retl}"
/>
<property
name=
"defaultDatabaseName"
value=
"${canal.instance.defaultDatabaseName:retl}"
/>
</bean>
</property>
<property
name=
"standbyInfo"
>
<bean
class=
"com.alibaba.otter.canal.parse.support.AuthenticationInfo"
>
<property
name=
"address"
value=
"${canal.instance.standby1.address}"
/>
<property
name=
"username"
value=
"${canal.instance.dbUsername:retl}"
/>
<property
name=
"password"
value=
"${canal.instance.dbPassword:retl}"
/>
<property
name=
"defaultDatabaseName"
value=
"${canal.instance.defaultDatabaseName:retl}"
/>
</bean>
</property>
<!-- 解析起始位点 -->
<property
name=
"masterPosition"
>
<bean
class=
"com.alibaba.otter.canal.protocol.position.EntryPosition"
>
<property
name=
"journalName"
value=
"${canal.instance.master1.journal.name}"
/>
<property
name=
"position"
value=
"${canal.instance.master1.position}"
/>
<property
name=
"timestamp"
value=
"${canal.instance.master1.timestamp}"
/>
</bean>
</property>
<property
name=
"standbyPosition"
>
<bean
class=
"com.alibaba.otter.canal.protocol.position.EntryPosition"
>
<property
name=
"journalName"
value=
"${canal.instance.standby1.journal.name}"
/>
<property
name=
"position"
value=
"${canal.instance.standby1.position}"
/>
<property
name=
"timestamp"
value=
"${canal.instance.standby1.timestamp}"
/>
</bean>
</property>
<property
name=
"filterQueryDml"
value=
"${canal.instance.filter.query.dml:false}"
/>
<property
name=
"filterQueryDcl"
value=
"${canal.instance.filter.query.dcl:false}"
/>
<property
name=
"filterQueryDdl"
value=
"${canal.instance.filter.query.ddl:false}"
/>
<property
name=
"filterTableError"
value=
"${canal.instance.filter.table.error:false}"
/>
<property
name=
"supportBinlogFormats"
value=
"${canal.instance.binlog.format}"
/>
<property
name=
"supportBinlogImages"
value=
"${canal.instance.binlog.image}"
/>
</bean>
<bean
id=
"eventParser2"
class=
"com.alibaba.otter.canal.parse.inbound.mysql.MysqlEventParser"
>
<property
name=
"destination"
value=
"${canal.instance.destination}"
/>
<property
name=
"slaveId"
value=
"${canal.instance.mysql.slaveId:1234}"
/>
<!-- 心跳配置 -->
<property
name=
"detectingEnable"
value=
"${canal.instance.detecting.enable:false}"
/>
<property
name=
"detectingSQL"
value=
"${canal.instance.detecting.sql}"
/>
<property
name=
"detectingIntervalInSeconds"
value=
"${canal.instance.detecting.interval.time:5}"
/>
<property
name=
"haController"
>
<bean
class=
"com.alibaba.otter.canal.parse.ha.HeartBeatHAController"
>
<property
name=
"detectingRetryTimes"
value=
"${canal.instance.detecting.retry.threshold:3}"
/>
<property
name=
"switchEnable"
value=
"${canal.instance.detecting.heartbeatHaEnable:false}"
/>
</bean>
</property>
<property
name=
"alarmHandler"
ref=
"alarmHandler"
/>
<!-- 解析过滤处理 -->
<property
name=
"eventFilter"
>
<bean
class=
"com.alibaba.otter.canal.filter.aviater.AviaterRegexFilter"
>
<constructor-arg
index=
"0"
value=
"${canal.instance.filter.regex:.*\..*}"
/>
</bean>
</property>
<property
name=
"eventBlackFilter"
>
<bean
class=
"com.alibaba.otter.canal.filter.aviater.AviaterRegexFilter"
>
<constructor-arg
index=
"0"
value=
"${canal.instance.filter.black.regex:}"
/>
<constructor-arg
index=
"1"
value=
"false"
/>
</bean>
</property>
<!-- 最大事务解析大小,超过该大小后事务将被切分为多个事务投递 -->
<property
name=
"transactionSize"
value=
"${canal.instance.transaction.size:1024}"
/>
<!-- 网络链接参数 -->
<property
name=
"receiveBufferSize"
value=
"${canal.instance.network.receiveBufferSize:16384}"
/>
<property
name=
"sendBufferSize"
value=
"${canal.instance.network.sendBufferSize:16384}"
/>
<property
name=
"defaultConnectionTimeoutInSeconds"
value=
"${canal.instance.network.soTimeout:30}"
/>
<!-- 解析编码 -->
<!-- property name="connectionCharsetNumber" value="${canal.instance.connectionCharsetNumber:33}" /-->
<property
name=
"connectionCharset"
value=
"${canal.instance.connectionCharset:UTF-8}"
/>
<!-- 解析位点记录 -->
<property
name=
"logPositionManager"
>
<bean
class=
"com.alibaba.otter.canal.parse.index.MemoryLogPositionManager"
/>
</property>
<!-- failover切换时回退的时间 -->
<property
name=
"fallbackIntervalInSeconds"
value=
"${canal.instance.fallbackIntervalInSeconds:60}"
/>
<!-- 解析数据库信息 -->
<property
name=
"masterInfo"
>
<bean
class=
"com.alibaba.otter.canal.parse.support.AuthenticationInfo"
>
<property
name=
"address"
value=
"${canal.instance.master2.address}"
/>
<property
name=
"username"
value=
"${canal.instance.dbUsername:retl}"
/>
<property
name=
"password"
value=
"${canal.instance.dbPassword:retl}"
/>
<property
name=
"defaultDatabaseName"
value=
"${canal.instance.defaultDatabaseName:retl}"
/>
</bean>
</property>
<property
name=
"standbyInfo"
>
<bean
class=
"com.alibaba.otter.canal.parse.support.AuthenticationInfo"
>
<property
name=
"address"
value=
"${canal.instance.standby2.address}"
/>
<property
name=
"username"
value=
"${canal.instance.dbUsername:retl}"
/>
<property
name=
"password"
value=
"${canal.instance.dbPassword:retl}"
/>
<property
name=
"defaultDatabaseName"
value=
"${canal.instance.defaultDatabaseName:retl}"
/>
</bean>
</property>
<!-- 解析起始位点 -->
<property
name=
"masterPosition"
>
<bean
class=
"com.alibaba.otter.canal.protocol.position.EntryPosition"
>
<property
name=
"journalName"
value=
"${canal.instance.master2.journal.name}"
/>
<property
name=
"position"
value=
"${canal.instance.master2.position}"
/>
<property
name=
"timestamp"
value=
"${canal.instance.master2.timestamp}"
/>
</bean>
</property>
<property
name=
"standbyPosition"
>
<bean
class=
"com.alibaba.otter.canal.protocol.position.EntryPosition"
>
<property
name=
"journalName"
value=
"${canal.instance.standby2.journal.name}"
/>
<property
name=
"position"
value=
"${canal.instance.standby2.position}"
/>
<property
name=
"timestamp"
value=
"${canal.instance.standby2.timestamp}"
/>
</bean>
</property>
<property
name=
"filterQueryDml"
value=
"${canal.instance.filter.query.dml:false}"
/>
<property
name=
"filterQueryDcl"
value=
"${canal.instance.filter.query.dcl:false}"
/>
<property
name=
"filterQueryDdl"
value=
"${canal.instance.filter.query.ddl:false}"
/>
<property
name=
"filterRows"
value=
"${canal.instance.filter.rows:false}"
/>
<property
name=
"filterTableError"
value=
"${canal.instance.filter.table.error:false}"
/>
<property
name=
"supportBinlogFormats"
value=
"${canal.instance.binlog.format}"
/>
<property
name=
"supportBinlogImages"
value=
"${canal.instance.binlog.image}"
/>
</bean>
</beans>
piplus-backend-v5-canal-docker/conf-prod/spring/memory-instance.xml
0 → 100644
View file @
d646ee2b
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns=
"http://www.springframework.org/schema/beans"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xmlns:tx=
"http://www.springframework.org/schema/tx"
xmlns:aop=
"http://www.springframework.org/schema/aop"
xmlns:lang=
"http://www.springframework.org/schema/lang"
xmlns:context=
"http://www.springframework.org/schema/context"
xsi:schemaLocation=
"http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd"
default-autowire=
"byName"
>
<!-- properties -->
<bean
class=
"com.alibaba.otter.canal.instance.spring.support.PropertyPlaceholderConfigurer"
lazy-init=
"false"
>
<property
name=
"ignoreResourceNotFound"
value=
"true"
/>
<property
name=
"systemPropertiesModeName"
value=
"SYSTEM_PROPERTIES_MODE_OVERRIDE"
/>
<!-- 允许system覆盖 -->
<property
name=
"locationNames"
>
<list>
<value>
classpath:canal.properties
</value>
<value>
classpath:${canal.instance.destination:}/instance.properties
</value>
</list>
</property>
</bean>
<bean
id=
"socketAddressEditor"
class=
"com.alibaba.otter.canal.instance.spring.support.SocketAddressEditor"
/>
<bean
class=
"org.springframework.beans.factory.config.CustomEditorConfigurer"
>
<property
name=
"propertyEditorRegistrars"
>
<list>
<ref
bean=
"socketAddressEditor"
/>
</list>
</property>
</bean>
<bean
id=
"instance"
class=
"com.alibaba.otter.canal.instance.spring.CanalInstanceWithSpring"
>
<property
name=
"destination"
value=
"${canal.instance.destination}"
/>
<property
name=
"eventParser"
>
<ref
local=
"eventParser"
/>
</property>
<property
name=
"eventSink"
>
<ref
local=
"eventSink"
/>
</property>
<property
name=
"eventStore"
>
<ref
local=
"eventStore"
/>
</property>
<property
name=
"metaManager"
>
<ref
local=
"metaManager"
/>
</property>
<property
name=
"alarmHandler"
>
<ref
local=
"alarmHandler"
/>
</property>
</bean>
<!-- 报警处理类 -->
<bean
id=
"alarmHandler"
class=
"com.alibaba.otter.canal.common.alarm.LogAlarmHandler"
/>
<bean
id=
"metaManager"
class=
"com.alibaba.otter.canal.meta.MemoryMetaManager"
/>
<bean
id=
"eventStore"
class=
"com.alibaba.otter.canal.store.memory.MemoryEventStoreWithBuffer"
>
<property
name=
"bufferSize"
value=
"${canal.instance.memory.buffer.size:16384}"
/>
<property
name=
"bufferMemUnit"
value=
"${canal.instance.memory.buffer.memunit:1024}"
/>
<property
name=
"batchMode"
value=
"${canal.instance.memory.batch.mode:MEMSIZE}"
/>
<property
name=
"ddlIsolation"
value=
"${canal.instance.get.ddl.isolation:false}"
/>
</bean>
<bean
id=
"eventSink"
class=
"com.alibaba.otter.canal.sink.entry.EntryEventSink"
>
<property
name=
"eventStore"
ref=
"eventStore"
/>
</bean>
<bean
id=
"eventParser"
class=
"com.alibaba.otter.canal.parse.inbound.mysql.MysqlEventParser"
>
<property
name=
"destination"
value=
"${canal.instance.destination}"
/>
<property
name=
"slaveId"
value=
"${canal.instance.mysql.slaveId:1234}"
/>
<!-- 心跳配置 -->
<property
name=
"detectingEnable"
value=
"${canal.instance.detecting.enable:false}"
/>
<property
name=
"detectingSQL"
value=
"${canal.instance.detecting.sql}"
/>
<property
name=
"detectingIntervalInSeconds"
value=
"${canal.instance.detecting.interval.time:5}"
/>
<property
name=
"haController"
>
<bean
class=
"com.alibaba.otter.canal.parse.ha.HeartBeatHAController"
>
<property
name=
"detectingRetryTimes"
value=
"${canal.instance.detecting.retry.threshold:3}"
/>
<property
name=
"switchEnable"
value=
"${canal.instance.detecting.heartbeatHaEnable:false}"
/>
</bean>
</property>
<property
name=
"alarmHandler"
ref=
"alarmHandler"
/>
<!-- 解析过滤处理 -->
<property
name=
"eventFilter"
>
<bean
class=
"com.alibaba.otter.canal.filter.aviater.AviaterRegexFilter"
>
<constructor-arg
index=
"0"
value=
"${canal.instance.filter.regex:.*\..*}"
/>
</bean>
</property>
<property
name=
"eventBlackFilter"
>
<bean
class=
"com.alibaba.otter.canal.filter.aviater.AviaterRegexFilter"
>
<constructor-arg
index=
"0"
value=
"${canal.instance.filter.black.regex:}"
/>
<constructor-arg
index=
"1"
value=
"false"
/>
</bean>
</property>
<!-- 最大事务解析大小,超过该大小后事务将被切分为多个事务投递 -->
<property
name=
"transactionSize"
value=
"${canal.instance.transaction.size:1024}"
/>
<!-- 网络链接参数 -->
<property
name=
"receiveBufferSize"
value=
"${canal.instance.network.receiveBufferSize:16384}"
/>
<property
name=
"sendBufferSize"
value=
"${canal.instance.network.sendBufferSize:16384}"
/>
<property
name=
"defaultConnectionTimeoutInSeconds"
value=
"${canal.instance.network.soTimeout:30}"
/>
<!-- 解析编码 -->
<!-- property name="connectionCharsetNumber" value="${canal.instance.connectionCharsetNumber:33}" /-->
<property
name=
"connectionCharset"
value=
"${canal.instance.connectionCharset:UTF-8}"
/>
<!-- 解析位点记录 -->
<property
name=
"logPositionManager"
>
<bean
class=
"com.alibaba.otter.canal.parse.index.MemoryLogPositionManager"
/>
</property>
<!-- failover切换时回退的时间 -->
<property
name=
"fallbackIntervalInSeconds"
value=
"${canal.instance.fallbackIntervalInSeconds:60}"
/>
<!-- 解析数据库信息 -->
<property
name=
"masterInfo"
>
<bean
class=
"com.alibaba.otter.canal.parse.support.AuthenticationInfo"
>
<property
name=
"address"
value=
"${canal.instance.master.address}"
/>
<property
name=
"username"
value=
"${canal.instance.dbUsername:retl}"
/>
<property
name=
"password"
value=
"${canal.instance.dbPassword:retl}"
/>
<property
name=
"defaultDatabaseName"
value=
"${canal.instance.defaultDatabaseName:retl}"
/>
</bean>
</property>
<property
name=
"standbyInfo"
>
<bean
class=
"com.alibaba.otter.canal.parse.support.AuthenticationInfo"
>
<property
name=
"address"
value=
"${canal.instance.standby.address}"
/>
<property
name=
"username"
value=
"${canal.instance.dbUsername:retl}"
/>
<property
name=
"password"
value=
"${canal.instance.dbPassword:retl}"
/>
<property
name=
"defaultDatabaseName"
value=
"${canal.instance.defaultDatabaseName:retl}"
/>
</bean>
</property>
<!-- 解析起始位点 -->
<property
name=
"masterPosition"
>
<bean
class=
"com.alibaba.otter.canal.protocol.position.EntryPosition"
>
<property
name=
"journalName"
value=
"${canal.instance.master.journal.name}"
/>
<property
name=
"position"
value=
"${canal.instance.master.position}"
/>
<property
name=
"timestamp"
value=
"${canal.instance.master.timestamp}"
/>
</bean>
</property>
<property
name=
"standbyPosition"
>
<bean
class=
"com.alibaba.otter.canal.protocol.position.EntryPosition"
>
<property
name=
"journalName"
value=
"${canal.instance.standby.journal.name}"
/>
<property
name=
"position"
value=
"${canal.instance.standby.position}"
/>
<property
name=
"timestamp"
value=
"${canal.instance.standby.timestamp}"
/>
</bean>
</property>
<property
name=
"filterQueryDml"
value=
"${canal.instance.filter.query.dml:false}"
/>
<property
name=
"filterQueryDcl"
value=
"${canal.instance.filter.query.dcl:false}"
/>
<property
name=
"filterQueryDdl"
value=
"${canal.instance.filter.query.ddl:false}"
/>
<property
name=
"filterRows"
value=
"${canal.instance.filter.rows:false}"
/>
<property
name=
"filterTableError"
value=
"${canal.instance.filter.table.error:false}"
/>
<property
name=
"supportBinlogFormats"
value=
"${canal.instance.binlog.format}"
/>
<property
name=
"supportBinlogImages"
value=
"${canal.instance.binlog.image}"
/>
</bean>
</beans>
piplus-backend-v5-canal-docker/conf-
dev
/terran_dev/instance.properties
→
piplus-backend-v5-canal-docker/conf-
prod
/terran_dev/instance.properties
100755 → 100644
View file @
d646ee2b
File moved
piplus-backend-v5-canal-docker/conf-
dev
/terran_dev/meta.dat
→
piplus-backend-v5-canal-docker/conf-
prod
/terran_dev/meta.dat
View file @
d646ee2b
File moved
piplus-backend-v5-canal-docker/conf-sandbox/canal.properties
0 → 100644
View file @
d646ee2b
#################################################
######### common argument #############
#################################################
canal.id
=
1
canal.ip
=
canal.port
=
11111
canal.zkServers
=
114.55.62.147
# flush data to zk
canal.zookeeper.flush.period
=
1000
# flush meta cursor/parse position to file
canal.file.data.dir
=
${canal.conf.dir}
canal.file.flush.period
=
1000
## memory store RingBuffer size, should be Math.pow(2,n)
canal.instance.memory.buffer.size
=
16384
## memory store RingBuffer used memory unit size , default 1kb
canal.instance.memory.buffer.memunit
=
1024
## meory store gets mode used MEMSIZE or ITEMSIZE
canal.instance.memory.batch.mode
=
MEMSIZE
## detecing config
canal.instance.detecting.enable
=
false
#canal.instance.detecting.sql = insert into retl.xdual values(1,now()) on duplicate key update x=now()
canal.instance.detecting.sql
=
select 1
canal.instance.detecting.interval.time
=
3
canal.instance.detecting.retry.threshold
=
3
canal.instance.detecting.heartbeatHaEnable
=
false
# support maximum transaction size, more than the size of the transaction will be cut into multiple transactions delivery
canal.instance.transaction.size
=
1024
# mysql fallback connected to new master should fallback times
canal.instance.fallbackIntervalInSeconds
=
60
# network config
canal.instance.network.receiveBufferSize
=
16384
canal.instance.network.sendBufferSize
=
16384
canal.instance.network.soTimeout
=
30
# binlog filter config
canal.instance.filter.query.dcl
=
true
canal.instance.filter.query.dml
=
false
canal.instance.filter.query.ddl
=
true
canal.instance.filter.table.error
=
true
canal.instance.filter.rows
=
false
# binlog format/image check
canal.instance.binlog.format
=
ROW,STATEMENT,MIXED
canal.instance.binlog.image
=
FULL,MINIMAL,NOBLOB
# binlog ddl isolation
canal.instance.get.ddl.isolation
=
false
#################################################
######### destinations #############
#################################################
canal.destinations
=
terran_dev
# conf root dir
canal.conf.dir
=
../conf
# auto scan instance dir add/remove and start/stop instance
canal.auto.scan
=
false
canal.auto.scan.interval
=
5
canal.instance.global.mode
=
spring
canal.instance.global.lazy
=
false
#canal.instance.global.manager.address = 127.0.0.1:1099
#canal.instance.global.spring.xml = classpath:spring/memory-instance.xml
canal.instance.global.spring.xml
=
classpath:spring/file-instance.xml
#canal.instance.global.spring.xml = classpath:spring/default-instance.xml
piplus-backend-v5-canal-docker/conf-sandbox/logback.xml
0 → 100644
View file @
d646ee2b
<configuration
scan=
"true"
scanPeriod=
" 5 seconds"
>
<jmxConfigurator
/>
<appender
name=
"STDOUT"
class=
"ch.qos.logback.core.ConsoleAppender"
>
<encoder>
<pattern>
%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{56} - %msg%n
</pattern>
</encoder>
</appender>
<appender
name=
"CANAL-ROOT"
class=
"ch.qos.logback.classic.sift.SiftingAppender"
>
<discriminator>
<Key>
destination
</Key>
<DefaultValue>
canal
</DefaultValue>
</discriminator>
<sift>
<appender
name=
"FILE-${destination}"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<File>
../logs/${destination}/${destination}.log
</File>
<rollingPolicy
class=
"ch.qos.logback.core.rolling.TimeBasedRollingPolicy"
>
<!-- rollover daily -->
<fileNamePattern>
../logs/${destination}/%d{yyyy-MM-dd}/${destination}-%d{yyyy-MM-dd}-%i.log.gz
</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy
class=
"ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"
>
<!-- or whenever the file size reaches 100MB -->
<maxFileSize>
512MB
</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<maxHistory>
60
</maxHistory>
</rollingPolicy>
<encoder>
<pattern>
%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{56} - %msg%n
</pattern>
</encoder>
</appender>
</sift>
</appender>
<appender
name=
"CANAL-META"
class=
"ch.qos.logback.classic.sift.SiftingAppender"
>
<discriminator>
<Key>
destination
</Key>
<DefaultValue>
canal
</DefaultValue>
</discriminator>
<sift>
<appender
name=
"META-FILE-${destination}"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<File>
../logs/${destination}/meta.log
</File>
<rollingPolicy
class=
"ch.qos.logback.core.rolling.TimeBasedRollingPolicy"
>
<!-- rollover daily -->
<fileNamePattern>
../logs/${destination}/%d{yyyy-MM-dd}/meta-%d{yyyy-MM-dd}-%i.log.gz
</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy
class=
"ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"
>
<!-- or whenever the file size reaches 100MB -->
<maxFileSize>
32MB
</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<maxHistory>
60
</maxHistory>
</rollingPolicy>
<encoder>
<pattern>
%d{yyyy-MM-dd HH:mm:ss.SSS} - %msg%n
</pattern>
</encoder>
</appender>
</sift>
</appender>
<logger
name=
"com.alibaba.otter.canal.instance"
additivity=
"false"
>
<level
value=
"INFO"
/>
<appender-ref
ref=
"CANAL-ROOT"
/>
</logger>
<logger
name=
"com.alibaba.otter.canal.deployer"
additivity=
"false"
>
<level
value=
"INFO"
/>
<appender-ref
ref=
"CANAL-ROOT"
/>
</logger>
<logger
name=
"com.alibaba.otter.canal.meta.FileMixedMetaManager"
additivity=
"false"
>
<level
value=
"INFO"
/>
<appender-ref
ref=
"CANAL-META"
/>
</logger>
<root
level=
"WARN"
>
<!--
<appender-ref ref="STDOUT"/>
-->
<appender-ref
ref=
"CANAL-ROOT"
/>
</root>
</configuration>
\ No newline at end of file
piplus-backend-v5-canal-docker/conf-sandbox/spring/default-instance.xml
0 → 100644
View file @
d646ee2b
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns=
"http://www.springframework.org/schema/beans"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xmlns:tx=
"http://www.springframework.org/schema/tx"
xmlns:aop=
"http://www.springframework.org/schema/aop"
xmlns:lang=
"http://www.springframework.org/schema/lang"
xmlns:context=
"http://www.springframework.org/schema/context"
xsi:schemaLocation=
"http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd"
default-autowire=
"byName"
>
<!-- properties -->
<bean
class=
"com.alibaba.otter.canal.instance.spring.support.PropertyPlaceholderConfigurer"
lazy-init=
"false"
>
<property
name=
"ignoreResourceNotFound"
value=
"true"
/>
<property
name=
"systemPropertiesModeName"
value=
"SYSTEM_PROPERTIES_MODE_OVERRIDE"
/>
<!-- 允许system覆盖 -->
<property
name=
"locationNames"
>
<list>
<value>
classpath:canal.properties
</value>
<value>
classpath:${canal.instance.destination:}/instance.properties
</value>
</list>
</property>
</bean>
<bean
id=
"socketAddressEditor"
class=
"com.alibaba.otter.canal.instance.spring.support.SocketAddressEditor"
/>
<bean
class=
"org.springframework.beans.factory.config.CustomEditorConfigurer"
>
<property
name=
"propertyEditorRegistrars"
>
<list>
<ref
bean=
"socketAddressEditor"
/>
</list>
</property>
</bean>
<bean
id=
"instance"
class=
"com.alibaba.otter.canal.instance.spring.CanalInstanceWithSpring"
>
<property
name=
"destination"
value=
"${canal.instance.destination}"
/>
<property
name=
"eventParser"
>
<ref
local=
"eventParser"
/>
</property>
<property
name=
"eventSink"
>
<ref
local=
"eventSink"
/>
</property>
<property
name=
"eventStore"
>
<ref
local=
"eventStore"
/>
</property>
<property
name=
"metaManager"
>
<ref
local=
"metaManager"
/>
</property>
<property
name=
"alarmHandler"
>
<ref
local=
"alarmHandler"
/>
</property>
</bean>
<!-- 报警处理类 -->
<bean
id=
"alarmHandler"
class=
"com.alibaba.otter.canal.common.alarm.LogAlarmHandler"
/>
<bean
id=
"zkClientx"
class=
"org.springframework.beans.factory.config.MethodInvokingFactoryBean"
>
<property
name=
"targetClass"
value=
"com.alibaba.otter.canal.common.zookeeper.ZkClientx"
/>
<property
name=
"targetMethod"
value=
"getZkClient"
/>
<property
name=
"arguments"
>
<list>
<value>
${canal.zkServers:127.0.0.1:2181}
</value>
</list>
</property>
</bean>
<bean
id=
"metaManager"
class=
"com.alibaba.otter.canal.meta.PeriodMixedMetaManager"
>
<property
name=
"zooKeeperMetaManager"
>
<bean
class=
"com.alibaba.otter.canal.meta.ZooKeeperMetaManager"
>
<property
name=
"zkClientx"
ref=
"zkClientx"
/>
</bean>
</property>
<property
name=
"period"
value=
"${canal.zookeeper.flush.period:1000}"
/>
</bean>
<bean
id=
"eventStore"
class=
"com.alibaba.otter.canal.store.memory.MemoryEventStoreWithBuffer"
>
<property
name=
"bufferSize"
value=
"${canal.instance.memory.buffer.size:16384}"
/>
<property
name=
"bufferMemUnit"
value=
"${canal.instance.memory.buffer.memunit:1024}"
/>
<property
name=
"batchMode"
value=
"${canal.instance.memory.batch.mode:MEMSIZE}"
/>
<property
name=
"ddlIsolation"
value=
"${canal.instance.get.ddl.isolation:false}"
/>
</bean>
<bean
id=
"eventSink"
class=
"com.alibaba.otter.canal.sink.entry.EntryEventSink"
>
<property
name=
"eventStore"
ref=
"eventStore"
/>
</bean>
<bean
id=
"eventParser"
class=
"com.alibaba.otter.canal.parse.inbound.mysql.MysqlEventParser"
>
<property
name=
"destination"
value=
"${canal.instance.destination}"
/>
<property
name=
"slaveId"
value=
"${canal.instance.mysql.slaveId:1234}"
/>
<!-- 心跳配置 -->
<property
name=
"detectingEnable"
value=
"${canal.instance.detecting.enable:false}"
/>
<property
name=
"detectingSQL"
value=
"${canal.instance.detecting.sql}"
/>
<property
name=
"detectingIntervalInSeconds"
value=
"${canal.instance.detecting.interval.time:5}"
/>
<property
name=
"haController"
>
<bean
class=
"com.alibaba.otter.canal.parse.ha.HeartBeatHAController"
>
<property
name=
"detectingRetryTimes"
value=
"${canal.instance.detecting.retry.threshold:3}"
/>
<property
name=
"switchEnable"
value=
"${canal.instance.detecting.heartbeatHaEnable:false}"
/>
</bean>
</property>
<property
name=
"alarmHandler"
ref=
"alarmHandler"
/>
<!-- 解析过滤处理 -->
<property
name=
"eventFilter"
>
<bean
class=
"com.alibaba.otter.canal.filter.aviater.AviaterRegexFilter"
>
<constructor-arg
index=
"0"
value=
"${canal.instance.filter.regex:.*\..*}"
/>
</bean>
</property>
<property
name=
"eventBlackFilter"
>
<bean
class=
"com.alibaba.otter.canal.filter.aviater.AviaterRegexFilter"
>
<constructor-arg
index=
"0"
value=
"${canal.instance.filter.black.regex:}"
/>
<constructor-arg
index=
"1"
value=
"false"
/>
</bean>
</property>
<!-- 最大事务解析大小,超过该大小后事务将被切分为多个事务投递 -->
<property
name=
"transactionSize"
value=
"${canal.instance.transaction.size:1024}"
/>
<!-- 网络链接参数 -->
<property
name=
"receiveBufferSize"
value=
"${canal.instance.network.receiveBufferSize:16384}"
/>
<property
name=
"sendBufferSize"
value=
"${canal.instance.network.sendBufferSize:16384}"
/>
<property
name=
"defaultConnectionTimeoutInSeconds"
value=
"${canal.instance.network.soTimeout:30}"
/>
<!-- 解析编码 -->
<!-- property name="connectionCharsetNumber" value="${canal.instance.connectionCharsetNumber:33}" /-->
<property
name=
"connectionCharset"
value=
"${canal.instance.connectionCharset:UTF-8}"
/>
<!-- 解析位点记录 -->
<property
name=
"logPositionManager"
>
<bean
class=
"com.alibaba.otter.canal.parse.index.FailbackLogPositionManager"
>
<property
name=
"primary"
>
<bean
class=
"com.alibaba.otter.canal.parse.index.MemoryLogPositionManager"
/>
</property>
<property
name=
"failback"
>
<bean
class=
"com.alibaba.otter.canal.parse.index.MetaLogPositionManager"
>
<property
name=
"metaManager"
ref=
"metaManager"
/>
</bean>
</property>
</bean>
</property>
<!-- failover切换时回退的时间 -->
<property
name=
"fallbackIntervalInSeconds"
value=
"${canal.instance.fallbackIntervalInSeconds:60}"
/>
<!-- 解析数据库信息 -->
<property
name=
"masterInfo"
>
<bean
class=
"com.alibaba.otter.canal.parse.support.AuthenticationInfo"
>
<property
name=
"address"
value=
"${canal.instance.master.address}"
/>
<property
name=
"username"
value=
"${canal.instance.dbUsername:retl}"
/>
<property
name=
"password"
value=
"${canal.instance.dbPassword:retl}"
/>
<property
name=
"defaultDatabaseName"
value=
"${canal.instance.defaultDatabaseName:retl}"
/>
</bean>
</property>
<property
name=
"standbyInfo"
>
<bean
class=
"com.alibaba.otter.canal.parse.support.AuthenticationInfo"
>
<property
name=
"address"
value=
"${canal.instance.standby.address}"
/>
<property
name=
"username"
value=
"${canal.instance.dbUsername:retl}"
/>
<property
name=
"password"
value=
"${canal.instance.dbPassword:retl}"
/>
<property
name=
"defaultDatabaseName"
value=
"${canal.instance.defaultDatabaseName:retl}"
/>
</bean>
</property>
<!-- 解析起始位点 -->
<property
name=
"masterPosition"
>
<bean
class=
"com.alibaba.otter.canal.protocol.position.EntryPosition"
>
<property
name=
"journalName"
value=
"${canal.instance.master.journal.name}"
/>
<property
name=
"position"
value=
"${canal.instance.master.position}"
/>
<property
name=
"timestamp"
value=
"${canal.instance.master.timestamp}"
/>
</bean>
</property>
<property
name=
"standbyPosition"
>
<bean
class=
"com.alibaba.otter.canal.protocol.position.EntryPosition"
>
<property
name=
"journalName"
value=
"${canal.instance.standby.journal.name}"
/>
<property
name=
"position"
value=
"${canal.instance.standby.position}"
/>
<property
name=
"timestamp"
value=
"${canal.instance.standby.timestamp}"
/>
</bean>
</property>
<property
name=
"filterQueryDml"
value=
"${canal.instance.filter.query.dml:false}"
/>
<property
name=
"filterQueryDcl"
value=
"${canal.instance.filter.query.dcl:false}"
/>
<property
name=
"filterQueryDdl"
value=
"${canal.instance.filter.query.ddl:false}"
/>
<property
name=
"filterRows"
value=
"${canal.instance.filter.rows:false}"
/>
<property
name=
"filterTableError"
value=
"${canal.instance.filter.table.error:false}"
/>
<property
name=
"supportBinlogFormats"
value=
"${canal.instance.binlog.format}"
/>
<property
name=
"supportBinlogImages"
value=
"${canal.instance.binlog.image}"
/>
</bean>
</beans>
piplus-backend-v5-canal-docker/conf-sandbox/spring/file-instance.xml
0 → 100644
View file @
d646ee2b
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns=
"http://www.springframework.org/schema/beans"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xmlns:tx=
"http://www.springframework.org/schema/tx"
xmlns:aop=
"http://www.springframework.org/schema/aop"
xmlns:lang=
"http://www.springframework.org/schema/lang"
xmlns:context=
"http://www.springframework.org/schema/context"
xsi:schemaLocation=
"http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd"
default-autowire=
"byName"
>
<!-- properties -->
<bean
class=
"com.alibaba.otter.canal.instance.spring.support.PropertyPlaceholderConfigurer"
lazy-init=
"false"
>
<property
name=
"ignoreResourceNotFound"
value=
"true"
/>
<property
name=
"systemPropertiesModeName"
value=
"SYSTEM_PROPERTIES_MODE_OVERRIDE"
/>
<!-- 允许system覆盖 -->
<property
name=
"locationNames"
>
<list>
<value>
classpath:canal.properties
</value>
<value>
classpath:${canal.instance.destination:}/instance.properties
</value>
</list>
</property>
</bean>
<bean
id=
"socketAddressEditor"
class=
"com.alibaba.otter.canal.instance.spring.support.SocketAddressEditor"
/>
<bean
class=
"org.springframework.beans.factory.config.CustomEditorConfigurer"
>
<property
name=
"propertyEditorRegistrars"
>
<list>
<ref
bean=
"socketAddressEditor"
/>
</list>
</property>
</bean>
<bean
id=
"instance"
class=
"com.alibaba.otter.canal.instance.spring.CanalInstanceWithSpring"
>
<property
name=
"destination"
value=
"${canal.instance.destination}"
/>
<property
name=
"eventParser"
>
<ref
local=
"eventParser"
/>
</property>
<property
name=
"eventSink"
>
<ref
local=
"eventSink"
/>
</property>
<property
name=
"eventStore"
>
<ref
local=
"eventStore"
/>
</property>
<property
name=
"metaManager"
>
<ref
local=
"metaManager"
/>
</property>
<property
name=
"alarmHandler"
>
<ref
local=
"alarmHandler"
/>
</property>
</bean>
<!-- 报警处理类 -->
<bean
id=
"alarmHandler"
class=
"com.alibaba.otter.canal.common.alarm.LogAlarmHandler"
/>
<bean
id=
"metaManager"
class=
"com.alibaba.otter.canal.meta.FileMixedMetaManager"
>
<property
name=
"dataDir"
value=
"${canal.file.data.dir:../conf}"
/>
<property
name=
"period"
value=
"${canal.file.flush.period:1000}"
/>
</bean>
<bean
id=
"eventStore"
class=
"com.alibaba.otter.canal.store.memory.MemoryEventStoreWithBuffer"
>
<property
name=
"bufferSize"
value=
"${canal.instance.memory.buffer.size:16384}"
/>
<property
name=
"bufferMemUnit"
value=
"${canal.instance.memory.buffer.memunit:1024}"
/>
<property
name=
"batchMode"
value=
"${canal.instance.memory.batch.mode:MEMSIZE}"
/>
<property
name=
"ddlIsolation"
value=
"${canal.instance.get.ddl.isolation:false}"
/>
</bean>
<bean
id=
"eventSink"
class=
"com.alibaba.otter.canal.sink.entry.EntryEventSink"
>
<property
name=
"eventStore"
ref=
"eventStore"
/>
</bean>
<bean
id=
"eventParser"
class=
"com.alibaba.otter.canal.parse.inbound.mysql.MysqlEventParser"
>
<property
name=
"destination"
value=
"${canal.instance.destination}"
/>
<property
name=
"slaveId"
value=
"${canal.instance.mysql.slaveId:1234}"
/>
<!-- 心跳配置 -->
<property
name=
"detectingEnable"
value=
"${canal.instance.detecting.enable:false}"
/>
<property
name=
"detectingSQL"
value=
"${canal.instance.detecting.sql}"
/>
<property
name=
"detectingIntervalInSeconds"
value=
"${canal.instance.detecting.interval.time:5}"
/>
<property
name=
"haController"
>
<bean
class=
"com.alibaba.otter.canal.parse.ha.HeartBeatHAController"
>
<property
name=
"detectingRetryTimes"
value=
"${canal.instance.detecting.retry.threshold:3}"
/>
<property
name=
"switchEnable"
value=
"${canal.instance.detecting.heartbeatHaEnable:false}"
/>
</bean>
</property>
<property
name=
"alarmHandler"
ref=
"alarmHandler"
/>
<!-- 解析过滤处理 -->
<property
name=
"eventFilter"
>
<bean
class=
"com.alibaba.otter.canal.filter.aviater.AviaterRegexFilter"
>
<constructor-arg
index=
"0"
value=
"${canal.instance.filter.regex:.*\..*}"
/>
</bean>
</property>
<property
name=
"eventBlackFilter"
>
<bean
class=
"com.alibaba.otter.canal.filter.aviater.AviaterRegexFilter"
>
<constructor-arg
index=
"0"
value=
"${canal.instance.filter.black.regex:}"
/>
<constructor-arg
index=
"1"
value=
"false"
/>
</bean>
</property>
<!-- 最大事务解析大小,超过该大小后事务将被切分为多个事务投递 -->
<property
name=
"transactionSize"
value=
"${canal.instance.transaction.size:1024}"
/>
<!-- 网络链接参数 -->
<property
name=
"receiveBufferSize"
value=
"${canal.instance.network.receiveBufferSize:16384}"
/>
<property
name=
"sendBufferSize"
value=
"${canal.instance.network.sendBufferSize:16384}"
/>
<property
name=
"defaultConnectionTimeoutInSeconds"
value=
"${canal.instance.network.soTimeout:30}"
/>
<!-- 解析编码 -->
<!-- property name="connectionCharsetNumber" value="${canal.instance.connectionCharsetNumber:33}" /-->
<property
name=
"connectionCharset"
value=
"${canal.instance.connectionCharset:UTF-8}"
/>
<!-- 解析位点记录 -->
<property
name=
"logPositionManager"
>
<bean
class=
"com.alibaba.otter.canal.parse.index.FailbackLogPositionManager"
>
<property
name=
"primary"
>
<bean
class=
"com.alibaba.otter.canal.parse.index.MemoryLogPositionManager"
/>
</property>
<property
name=
"failback"
>
<bean
class=
"com.alibaba.otter.canal.parse.index.MetaLogPositionManager"
>
<property
name=
"metaManager"
ref=
"metaManager"
/>
</bean>
</property>
</bean>
</property>
<!-- failover切换时回退的时间 -->
<property
name=
"fallbackIntervalInSeconds"
value=
"${canal.instance.fallbackIntervalInSeconds:60}"
/>
<!-- 解析数据库信息 -->
<property
name=
"masterInfo"
>
<bean
class=
"com.alibaba.otter.canal.parse.support.AuthenticationInfo"
>
<property
name=
"address"
value=
"${canal.instance.master.address}"
/>
<property
name=
"username"
value=
"${canal.instance.dbUsername:retl}"
/>
<property
name=
"password"
value=
"${canal.instance.dbPassword:retl}"
/>
<property
name=
"defaultDatabaseName"
value=
"${canal.instance.defaultDatabaseName:retl}"
/>
</bean>
</property>
<property
name=
"standbyInfo"
>
<bean
class=
"com.alibaba.otter.canal.parse.support.AuthenticationInfo"
>
<property
name=
"address"
value=
"${canal.instance.standby.address}"
/>
<property
name=
"username"
value=
"${canal.instance.dbUsername:retl}"
/>
<property
name=
"password"
value=
"${canal.instance.dbPassword:retl}"
/>
<property
name=
"defaultDatabaseName"
value=
"${canal.instance.defaultDatabaseName:retl}"
/>
</bean>
</property>
<!-- 解析起始位点 -->
<property
name=
"masterPosition"
>
<bean
class=
"com.alibaba.otter.canal.protocol.position.EntryPosition"
>
<property
name=
"journalName"
value=
"${canal.instance.master.journal.name}"
/>
<property
name=
"position"
value=
"${canal.instance.master.position}"
/>
<property
name=
"timestamp"
value=
"${canal.instance.master.timestamp}"
/>
</bean>
</property>
<property
name=
"standbyPosition"
>
<bean
class=
"com.alibaba.otter.canal.protocol.position.EntryPosition"
>
<property
name=
"journalName"
value=
"${canal.instance.standby.journal.name}"
/>
<property
name=
"position"
value=
"${canal.instance.standby.position}"
/>
<property
name=
"timestamp"
value=
"${canal.instance.standby.timestamp}"
/>
</bean>
</property>
<property
name=
"filterQueryDml"
value=
"${canal.instance.filter.query.dml:false}"
/>
<property
name=
"filterQueryDcl"
value=
"${canal.instance.filter.query.dcl:false}"
/>
<property
name=
"filterQueryDdl"
value=
"${canal.instance.filter.query.ddl:false}"
/>
<property
name=
"filterRows"
value=
"${canal.instance.filter.rows:false}"
/>
<property
name=
"filterTableError"
value=
"${canal.instance.filter.table.error:false}"
/>
<property
name=
"supportBinlogFormats"
value=
"${canal.instance.binlog.format}"
/>
<property
name=
"supportBinlogImages"
value=
"${canal.instance.binlog.image}"
/>
</bean>
</beans>
piplus-backend-v5-canal-docker/conf-sandbox/spring/group-instance.xml
0 → 100644
View file @
d646ee2b
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns=
"http://www.springframework.org/schema/beans"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xmlns:tx=
"http://www.springframework.org/schema/tx"
xmlns:aop=
"http://www.springframework.org/schema/aop"
xmlns:lang=
"http://www.springframework.org/schema/lang"
xmlns:context=
"http://www.springframework.org/schema/context"
xsi:schemaLocation=
"http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd"
default-autowire=
"byName"
>
<!-- properties -->
<bean
class=
"com.alibaba.otter.canal.instance.spring.support.PropertyPlaceholderConfigurer"
lazy-init=
"false"
>
<property
name=
"ignoreResourceNotFound"
value=
"true"
/>
<property
name=
"systemPropertiesModeName"
value=
"SYSTEM_PROPERTIES_MODE_OVERRIDE"
/>
<!-- 允许system覆盖 -->
<property
name=
"locationNames"
>
<list>
<value>
classpath:canal.properties
</value>
<value>
classpath:${canal.instance.destination:}/instance.properties
</value>
</list>
</property>
</bean>
<bean
id=
"socketAddressEditor"
class=
"com.alibaba.otter.canal.instance.spring.support.SocketAddressEditor"
/>
<bean
class=
"org.springframework.beans.factory.config.CustomEditorConfigurer"
>
<property
name=
"propertyEditorRegistrars"
>
<list>
<ref
bean=
"socketAddressEditor"
/>
</list>
</property>
</bean>
<bean
id=
"instance"
class=
"com.alibaba.otter.canal.instance.spring.CanalInstanceWithSpring"
>
<property
name=
"destination"
value=
"${canal.instance.destination}"
/>
<property
name=
"eventParser"
>
<ref
local=
"eventParser"
/>
</property>
<property
name=
"eventSink"
>
<ref
local=
"eventSink"
/>
</property>
<property
name=
"eventStore"
>
<ref
local=
"eventStore"
/>
</property>
<property
name=
"metaManager"
>
<ref
local=
"metaManager"
/>
</property>
<property
name=
"alarmHandler"
>
<ref
local=
"alarmHandler"
/>
</property>
</bean>
<!-- 报警处理类 -->
<bean
id=
"alarmHandler"
class=
"com.alibaba.otter.canal.common.alarm.LogAlarmHandler"
/>
<bean
id=
"metaManager"
class=
"com.alibaba.otter.canal.meta.MemoryMetaManager"
/>
<bean
id=
"eventStore"
class=
"com.alibaba.otter.canal.store.memory.MemoryEventStoreWithBuffer"
>
<property
name=
"bufferSize"
value=
"${canal.instance.memory.buffer.size:16384}"
/>
<property
name=
"bufferMemUnit"
value=
"${canal.instance.memory.buffer.memunit:1024}"
/>
<property
name=
"batchMode"
value=
"${canal.instance.memory.batch.mode:MEMSIZE}"
/>
<property
name=
"ddlIsolation"
value=
"${canal.instance.get.ddl.isolation:false}"
/>
</bean>
<bean
id=
"eventSink"
class=
"com.alibaba.otter.canal.sink.entry.EntryEventSink"
>
<property
name=
"eventStore"
ref=
"eventStore"
/>
</bean>
<bean
id=
"eventParser"
class=
"com.alibaba.otter.canal.parse.inbound.group.GroupEventParser"
>
<property
name=
"eventParsers"
>
<list>
<ref
bean=
"eventParser1"
/>
<ref
bean=
"eventParser2"
/>
</list>
</property>
</bean>
<bean
id=
"eventParser1"
class=
"com.alibaba.otter.canal.parse.inbound.mysql.MysqlEventParser"
>
<property
name=
"destination"
value=
"${canal.instance.destination}"
/>
<property
name=
"slaveId"
value=
"${canal.instance.mysql.slaveId:1234}"
/>
<!-- 心跳配置 -->
<property
name=
"detectingEnable"
value=
"${canal.instance.detecting.enable:false}"
/>
<property
name=
"detectingSQL"
value=
"${canal.instance.detecting.sql}"
/>
<property
name=
"detectingIntervalInSeconds"
value=
"${canal.instance.detecting.interval.time:5}"
/>
<property
name=
"haController"
>
<bean
class=
"com.alibaba.otter.canal.parse.ha.HeartBeatHAController"
>
<property
name=
"detectingRetryTimes"
value=
"${canal.instance.detecting.retry.threshold:3}"
/>
<property
name=
"switchEnable"
value=
"${canal.instance.detecting.heartbeatHaEnable:false}"
/>
</bean>
</property>
<property
name=
"alarmHandler"
ref=
"alarmHandler"
/>
<!-- 解析过滤处理 -->
<property
name=
"eventFilter"
>
<bean
class=
"com.alibaba.otter.canal.filter.aviater.AviaterRegexFilter"
>
<constructor-arg
index=
"0"
value=
"${canal.instance.filter.regex:.*\..*}"
/>
</bean>
</property>
<property
name=
"eventBlackFilter"
>
<bean
class=
"com.alibaba.otter.canal.filter.aviater.AviaterRegexFilter"
>
<constructor-arg
index=
"0"
value=
"${canal.instance.filter.black.regex:}"
/>
<constructor-arg
index=
"1"
value=
"false"
/>
</bean>
</property>
<!-- 最大事务解析大小,超过该大小后事务将被切分为多个事务投递 -->
<property
name=
"transactionSize"
value=
"${canal.instance.transaction.size:1024}"
/>
<!-- 网络链接参数 -->
<property
name=
"receiveBufferSize"
value=
"${canal.instance.network.receiveBufferSize:16384}"
/>
<property
name=
"sendBufferSize"
value=
"${canal.instance.network.sendBufferSize:16384}"
/>
<property
name=
"defaultConnectionTimeoutInSeconds"
value=
"${canal.instance.network.soTimeout:30}"
/>
<!-- 解析编码 -->
<!-- property name="connectionCharsetNumber" value="${canal.instance.connectionCharsetNumber:33}" /-->
<property
name=
"connectionCharset"
value=
"${canal.instance.connectionCharset:UTF-8}"
/>
<!-- 解析位点记录 -->
<property
name=
"logPositionManager"
>
<bean
class=
"com.alibaba.otter.canal.parse.index.MemoryLogPositionManager"
/>
</property>
<!-- failover切换时回退的时间 -->
<property
name=
"fallbackIntervalInSeconds"
value=
"${canal.instance.fallbackIntervalInSeconds:60}"
/>
<!-- 解析数据库信息 -->
<property
name=
"masterInfo"
>
<bean
class=
"com.alibaba.otter.canal.parse.support.AuthenticationInfo"
>
<property
name=
"address"
value=
"${canal.instance.master1.address}"
/>
<property
name=
"username"
value=
"${canal.instance.dbUsername:retl}"
/>
<property
name=
"password"
value=
"${canal.instance.dbPassword:retl}"
/>
<property
name=
"defaultDatabaseName"
value=
"${canal.instance.defaultDatabaseName:retl}"
/>
</bean>
</property>
<property
name=
"standbyInfo"
>
<bean
class=
"com.alibaba.otter.canal.parse.support.AuthenticationInfo"
>
<property
name=
"address"
value=
"${canal.instance.standby1.address}"
/>
<property
name=
"username"
value=
"${canal.instance.dbUsername:retl}"
/>
<property
name=
"password"
value=
"${canal.instance.dbPassword:retl}"
/>
<property
name=
"defaultDatabaseName"
value=
"${canal.instance.defaultDatabaseName:retl}"
/>
</bean>
</property>
<!-- 解析起始位点 -->
<property
name=
"masterPosition"
>
<bean
class=
"com.alibaba.otter.canal.protocol.position.EntryPosition"
>
<property
name=
"journalName"
value=
"${canal.instance.master1.journal.name}"
/>
<property
name=
"position"
value=
"${canal.instance.master1.position}"
/>
<property
name=
"timestamp"
value=
"${canal.instance.master1.timestamp}"
/>
</bean>
</property>
<property
name=
"standbyPosition"
>
<bean
class=
"com.alibaba.otter.canal.protocol.position.EntryPosition"
>
<property
name=
"journalName"
value=
"${canal.instance.standby1.journal.name}"
/>
<property
name=
"position"
value=
"${canal.instance.standby1.position}"
/>
<property
name=
"timestamp"
value=
"${canal.instance.standby1.timestamp}"
/>
</bean>
</property>
<property
name=
"filterQueryDml"
value=
"${canal.instance.filter.query.dml:false}"
/>
<property
name=
"filterQueryDcl"
value=
"${canal.instance.filter.query.dcl:false}"
/>
<property
name=
"filterQueryDdl"
value=
"${canal.instance.filter.query.ddl:false}"
/>
<property
name=
"filterTableError"
value=
"${canal.instance.filter.table.error:false}"
/>
<property
name=
"supportBinlogFormats"
value=
"${canal.instance.binlog.format}"
/>
<property
name=
"supportBinlogImages"
value=
"${canal.instance.binlog.image}"
/>
</bean>
<bean
id=
"eventParser2"
class=
"com.alibaba.otter.canal.parse.inbound.mysql.MysqlEventParser"
>
<property
name=
"destination"
value=
"${canal.instance.destination}"
/>
<property
name=
"slaveId"
value=
"${canal.instance.mysql.slaveId:1234}"
/>
<!-- 心跳配置 -->
<property
name=
"detectingEnable"
value=
"${canal.instance.detecting.enable:false}"
/>
<property
name=
"detectingSQL"
value=
"${canal.instance.detecting.sql}"
/>
<property
name=
"detectingIntervalInSeconds"
value=
"${canal.instance.detecting.interval.time:5}"
/>
<property
name=
"haController"
>
<bean
class=
"com.alibaba.otter.canal.parse.ha.HeartBeatHAController"
>
<property
name=
"detectingRetryTimes"
value=
"${canal.instance.detecting.retry.threshold:3}"
/>
<property
name=
"switchEnable"
value=
"${canal.instance.detecting.heartbeatHaEnable:false}"
/>
</bean>
</property>
<property
name=
"alarmHandler"
ref=
"alarmHandler"
/>
<!-- 解析过滤处理 -->
<property
name=
"eventFilter"
>
<bean
class=
"com.alibaba.otter.canal.filter.aviater.AviaterRegexFilter"
>
<constructor-arg
index=
"0"
value=
"${canal.instance.filter.regex:.*\..*}"
/>
</bean>
</property>
<property
name=
"eventBlackFilter"
>
<bean
class=
"com.alibaba.otter.canal.filter.aviater.AviaterRegexFilter"
>
<constructor-arg
index=
"0"
value=
"${canal.instance.filter.black.regex:}"
/>
<constructor-arg
index=
"1"
value=
"false"
/>
</bean>
</property>
<!-- 最大事务解析大小,超过该大小后事务将被切分为多个事务投递 -->
<property
name=
"transactionSize"
value=
"${canal.instance.transaction.size:1024}"
/>
<!-- 网络链接参数 -->
<property
name=
"receiveBufferSize"
value=
"${canal.instance.network.receiveBufferSize:16384}"
/>
<property
name=
"sendBufferSize"
value=
"${canal.instance.network.sendBufferSize:16384}"
/>
<property
name=
"defaultConnectionTimeoutInSeconds"
value=
"${canal.instance.network.soTimeout:30}"
/>
<!-- 解析编码 -->
<!-- property name="connectionCharsetNumber" value="${canal.instance.connectionCharsetNumber:33}" /-->
<property
name=
"connectionCharset"
value=
"${canal.instance.connectionCharset:UTF-8}"
/>
<!-- 解析位点记录 -->
<property
name=
"logPositionManager"
>
<bean
class=
"com.alibaba.otter.canal.parse.index.MemoryLogPositionManager"
/>
</property>
<!-- failover切换时回退的时间 -->
<property
name=
"fallbackIntervalInSeconds"
value=
"${canal.instance.fallbackIntervalInSeconds:60}"
/>
<!-- 解析数据库信息 -->
<property
name=
"masterInfo"
>
<bean
class=
"com.alibaba.otter.canal.parse.support.AuthenticationInfo"
>
<property
name=
"address"
value=
"${canal.instance.master2.address}"
/>
<property
name=
"username"
value=
"${canal.instance.dbUsername:retl}"
/>
<property
name=
"password"
value=
"${canal.instance.dbPassword:retl}"
/>
<property
name=
"defaultDatabaseName"
value=
"${canal.instance.defaultDatabaseName:retl}"
/>
</bean>
</property>
<property
name=
"standbyInfo"
>
<bean
class=
"com.alibaba.otter.canal.parse.support.AuthenticationInfo"
>
<property
name=
"address"
value=
"${canal.instance.standby2.address}"
/>
<property
name=
"username"
value=
"${canal.instance.dbUsername:retl}"
/>
<property
name=
"password"
value=
"${canal.instance.dbPassword:retl}"
/>
<property
name=
"defaultDatabaseName"
value=
"${canal.instance.defaultDatabaseName:retl}"
/>
</bean>
</property>
<!-- 解析起始位点 -->
<property
name=
"masterPosition"
>
<bean
class=
"com.alibaba.otter.canal.protocol.position.EntryPosition"
>
<property
name=
"journalName"
value=
"${canal.instance.master2.journal.name}"
/>
<property
name=
"position"
value=
"${canal.instance.master2.position}"
/>
<property
name=
"timestamp"
value=
"${canal.instance.master2.timestamp}"
/>
</bean>
</property>
<property
name=
"standbyPosition"
>
<bean
class=
"com.alibaba.otter.canal.protocol.position.EntryPosition"
>
<property
name=
"journalName"
value=
"${canal.instance.standby2.journal.name}"
/>
<property
name=
"position"
value=
"${canal.instance.standby2.position}"
/>
<property
name=
"timestamp"
value=
"${canal.instance.standby2.timestamp}"
/>
</bean>
</property>
<property
name=
"filterQueryDml"
value=
"${canal.instance.filter.query.dml:false}"
/>
<property
name=
"filterQueryDcl"
value=
"${canal.instance.filter.query.dcl:false}"
/>
<property
name=
"filterQueryDdl"
value=
"${canal.instance.filter.query.ddl:false}"
/>
<property
name=
"filterRows"
value=
"${canal.instance.filter.rows:false}"
/>
<property
name=
"filterTableError"
value=
"${canal.instance.filter.table.error:false}"
/>
<property
name=
"supportBinlogFormats"
value=
"${canal.instance.binlog.format}"
/>
<property
name=
"supportBinlogImages"
value=
"${canal.instance.binlog.image}"
/>
</bean>
</beans>
piplus-backend-v5-canal-docker/conf-sandbox/spring/memory-instance.xml
0 → 100644
View file @
d646ee2b
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns=
"http://www.springframework.org/schema/beans"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xmlns:tx=
"http://www.springframework.org/schema/tx"
xmlns:aop=
"http://www.springframework.org/schema/aop"
xmlns:lang=
"http://www.springframework.org/schema/lang"
xmlns:context=
"http://www.springframework.org/schema/context"
xsi:schemaLocation=
"http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd"
default-autowire=
"byName"
>
<!-- properties -->
<bean
class=
"com.alibaba.otter.canal.instance.spring.support.PropertyPlaceholderConfigurer"
lazy-init=
"false"
>
<property
name=
"ignoreResourceNotFound"
value=
"true"
/>
<property
name=
"systemPropertiesModeName"
value=
"SYSTEM_PROPERTIES_MODE_OVERRIDE"
/>
<!-- 允许system覆盖 -->
<property
name=
"locationNames"
>
<list>
<value>
classpath:canal.properties
</value>
<value>
classpath:${canal.instance.destination:}/instance.properties
</value>
</list>
</property>
</bean>
<bean
id=
"socketAddressEditor"
class=
"com.alibaba.otter.canal.instance.spring.support.SocketAddressEditor"
/>
<bean
class=
"org.springframework.beans.factory.config.CustomEditorConfigurer"
>
<property
name=
"propertyEditorRegistrars"
>
<list>
<ref
bean=
"socketAddressEditor"
/>
</list>
</property>
</bean>
<bean
id=
"instance"
class=
"com.alibaba.otter.canal.instance.spring.CanalInstanceWithSpring"
>
<property
name=
"destination"
value=
"${canal.instance.destination}"
/>
<property
name=
"eventParser"
>
<ref
local=
"eventParser"
/>
</property>
<property
name=
"eventSink"
>
<ref
local=
"eventSink"
/>
</property>
<property
name=
"eventStore"
>
<ref
local=
"eventStore"
/>
</property>
<property
name=
"metaManager"
>
<ref
local=
"metaManager"
/>
</property>
<property
name=
"alarmHandler"
>
<ref
local=
"alarmHandler"
/>
</property>
</bean>
<!-- 报警处理类 -->
<bean
id=
"alarmHandler"
class=
"com.alibaba.otter.canal.common.alarm.LogAlarmHandler"
/>
<bean
id=
"metaManager"
class=
"com.alibaba.otter.canal.meta.MemoryMetaManager"
/>
<bean
id=
"eventStore"
class=
"com.alibaba.otter.canal.store.memory.MemoryEventStoreWithBuffer"
>
<property
name=
"bufferSize"
value=
"${canal.instance.memory.buffer.size:16384}"
/>
<property
name=
"bufferMemUnit"
value=
"${canal.instance.memory.buffer.memunit:1024}"
/>
<property
name=
"batchMode"
value=
"${canal.instance.memory.batch.mode:MEMSIZE}"
/>
<property
name=
"ddlIsolation"
value=
"${canal.instance.get.ddl.isolation:false}"
/>
</bean>
<bean
id=
"eventSink"
class=
"com.alibaba.otter.canal.sink.entry.EntryEventSink"
>
<property
name=
"eventStore"
ref=
"eventStore"
/>
</bean>
<bean
id=
"eventParser"
class=
"com.alibaba.otter.canal.parse.inbound.mysql.MysqlEventParser"
>
<property
name=
"destination"
value=
"${canal.instance.destination}"
/>
<property
name=
"slaveId"
value=
"${canal.instance.mysql.slaveId:1234}"
/>
<!-- 心跳配置 -->
<property
name=
"detectingEnable"
value=
"${canal.instance.detecting.enable:false}"
/>
<property
name=
"detectingSQL"
value=
"${canal.instance.detecting.sql}"
/>
<property
name=
"detectingIntervalInSeconds"
value=
"${canal.instance.detecting.interval.time:5}"
/>
<property
name=
"haController"
>
<bean
class=
"com.alibaba.otter.canal.parse.ha.HeartBeatHAController"
>
<property
name=
"detectingRetryTimes"
value=
"${canal.instance.detecting.retry.threshold:3}"
/>
<property
name=
"switchEnable"
value=
"${canal.instance.detecting.heartbeatHaEnable:false}"
/>
</bean>
</property>
<property
name=
"alarmHandler"
ref=
"alarmHandler"
/>
<!-- 解析过滤处理 -->
<property
name=
"eventFilter"
>
<bean
class=
"com.alibaba.otter.canal.filter.aviater.AviaterRegexFilter"
>
<constructor-arg
index=
"0"
value=
"${canal.instance.filter.regex:.*\..*}"
/>
</bean>
</property>
<property
name=
"eventBlackFilter"
>
<bean
class=
"com.alibaba.otter.canal.filter.aviater.AviaterRegexFilter"
>
<constructor-arg
index=
"0"
value=
"${canal.instance.filter.black.regex:}"
/>
<constructor-arg
index=
"1"
value=
"false"
/>
</bean>
</property>
<!-- 最大事务解析大小,超过该大小后事务将被切分为多个事务投递 -->
<property
name=
"transactionSize"
value=
"${canal.instance.transaction.size:1024}"
/>
<!-- 网络链接参数 -->
<property
name=
"receiveBufferSize"
value=
"${canal.instance.network.receiveBufferSize:16384}"
/>
<property
name=
"sendBufferSize"
value=
"${canal.instance.network.sendBufferSize:16384}"
/>
<property
name=
"defaultConnectionTimeoutInSeconds"
value=
"${canal.instance.network.soTimeout:30}"
/>
<!-- 解析编码 -->
<!-- property name="connectionCharsetNumber" value="${canal.instance.connectionCharsetNumber:33}" /-->
<property
name=
"connectionCharset"
value=
"${canal.instance.connectionCharset:UTF-8}"
/>
<!-- 解析位点记录 -->
<property
name=
"logPositionManager"
>
<bean
class=
"com.alibaba.otter.canal.parse.index.MemoryLogPositionManager"
/>
</property>
<!-- failover切换时回退的时间 -->
<property
name=
"fallbackIntervalInSeconds"
value=
"${canal.instance.fallbackIntervalInSeconds:60}"
/>
<!-- 解析数据库信息 -->
<property
name=
"masterInfo"
>
<bean
class=
"com.alibaba.otter.canal.parse.support.AuthenticationInfo"
>
<property
name=
"address"
value=
"${canal.instance.master.address}"
/>
<property
name=
"username"
value=
"${canal.instance.dbUsername:retl}"
/>
<property
name=
"password"
value=
"${canal.instance.dbPassword:retl}"
/>
<property
name=
"defaultDatabaseName"
value=
"${canal.instance.defaultDatabaseName:retl}"
/>
</bean>
</property>
<property
name=
"standbyInfo"
>
<bean
class=
"com.alibaba.otter.canal.parse.support.AuthenticationInfo"
>
<property
name=
"address"
value=
"${canal.instance.standby.address}"
/>
<property
name=
"username"
value=
"${canal.instance.dbUsername:retl}"
/>
<property
name=
"password"
value=
"${canal.instance.dbPassword:retl}"
/>
<property
name=
"defaultDatabaseName"
value=
"${canal.instance.defaultDatabaseName:retl}"
/>
</bean>
</property>
<!-- 解析起始位点 -->
<property
name=
"masterPosition"
>
<bean
class=
"com.alibaba.otter.canal.protocol.position.EntryPosition"
>
<property
name=
"journalName"
value=
"${canal.instance.master.journal.name}"
/>
<property
name=
"position"
value=
"${canal.instance.master.position}"
/>
<property
name=
"timestamp"
value=
"${canal.instance.master.timestamp}"
/>
</bean>
</property>
<property
name=
"standbyPosition"
>
<bean
class=
"com.alibaba.otter.canal.protocol.position.EntryPosition"
>
<property
name=
"journalName"
value=
"${canal.instance.standby.journal.name}"
/>
<property
name=
"position"
value=
"${canal.instance.standby.position}"
/>
<property
name=
"timestamp"
value=
"${canal.instance.standby.timestamp}"
/>
</bean>
</property>
<property
name=
"filterQueryDml"
value=
"${canal.instance.filter.query.dml:false}"
/>
<property
name=
"filterQueryDcl"
value=
"${canal.instance.filter.query.dcl:false}"
/>
<property
name=
"filterQueryDdl"
value=
"${canal.instance.filter.query.ddl:false}"
/>
<property
name=
"filterRows"
value=
"${canal.instance.filter.rows:false}"
/>
<property
name=
"filterTableError"
value=
"${canal.instance.filter.table.error:false}"
/>
<property
name=
"supportBinlogFormats"
value=
"${canal.instance.binlog.format}"
/>
<property
name=
"supportBinlogImages"
value=
"${canal.instance.binlog.image}"
/>
</bean>
</beans>
piplus-backend-v5-canal-docker/conf-sandbox/terran_dev/instance.properties
0 → 100644
View file @
d646ee2b
#################################################
## mysql serverId
canal.instance.mysql.slaveId
=
1234
# position info
canal.instance.master.address
=
114.55.62.147:3306
canal.instance.master.journal.name
=
canal.instance.master.position =
canal.instance.master.timestamp
=
#canal.instance.standby.address =
#canal.instance.standby.journal.name =
#canal.instance.standby.position =
#canal.instance.standby.timestamp =
# username/password
canal.instance.dbUsername
=
future
canal.instance.dbPassword
=
future123456
canal.instance.defaultDatabaseName
=
canal.instance.connectionCharset
=
UTF-8
# table regex
canal.instance.filter.regex
=
.*
\\
..*
# table black regex
canal.instance.filter.black.regex
=
#################################################
\ No newline at end of file
piplus-backend-v5-canal-docker/conf-sandbox/terran_dev/meta.dat
0 → 100644
View file @
d646ee2b
{"clientDatas":[{"clientIdentity":{"clientId":1001,"destination":"terran_dev","filter":".*\\..*"},"cursor":{"identity":{"slaveId":-1,"sourceAddress":{"address":"114.55.62.147","port":3306}},"postion":{"included":false,"journalName":"mysql-bin.000006","position":128773473,"serverId":1,"timestamp":1476685229000}}}],"destination":"terran_dev"}
\ No newline at end of file
piplus-backend-v5-ltsadmin-docker/Dockerfile
→
piplus-backend-v5-lts
-
admin-docker/Dockerfile
View file @
d646ee2b
...
...
@@ -9,13 +9,23 @@ RUN yum install -y java-1.8.0-openjdk.x86_64 && \
cd
/opt
&&
\
wget http://
$OSS
/
$ROOT_DIR
/lib/lts-1.6.9.tar.gz
&&
\
mkdir
lts
&&
\
tar
xvzf lts-1.6.9.tar.gz
-C
lts
&&
\
chmod
+x lts/bin/lts-admin.sh
tar
xvzf lts-1.6.9.tar.gz
-C
lts
ADD
conf-$RUN_ENV /opt/lts/conf
EXPOSE
8081
ADD
conf-dev /opt/lts/conf-dev
ADD
conf-sandbox /opt/lts/conf-sandbox
ADD
conf-prod /opt/lts/conf-prod
ADD
lts-admin.sh /opt/lts/bin/lts-admin.sh
#touch startup.sh
RUN
touch
startup.sh
\
&&
echo
'#!/bin/bash'
>>
startup.sh
\
&&
echo
'chmod +x /opt/lts/bin/lts-admin.sh'
>>
startup.sh
\
&&
echo
'rm -rf /opt/lts/conf'
>>
startup.sh
\
&&
echo
'cp -a /opt/lts/conf-$RUN_ENV /opt/lts/conf'
>>
startup.sh
\
&&
echo
'./opt/lts/bin/lts-admin.sh startwithfront'
>>
startup.sh
\
&&
chmod
+x startup.sh
WORKDIR
/opt/lts
EXPOSE
8081
CMD
["
bin/lts-admin.sh", "start
"]
CMD
["
./startup.sh
"]
piplus-backend-v5-ltsadmin-docker/conf-dev/log4j.properties
→
piplus-backend-v5-lts
-
admin-docker/conf-dev/log4j.properties
View file @
d646ee2b
File moved
piplus-backend-v5-ltsadmin-docker/conf-dev/lts-admin.cfg
→
piplus-backend-v5-lts
-
admin-docker/conf-dev/lts-admin.cfg
View file @
d646ee2b
File moved
piplus-backend-v5-ltsadmin-docker/conf-dev/lts-monitor.cfg
→
piplus-backend-v5-lts
-
admin-docker/conf-dev/lts-monitor.cfg
View file @
d646ee2b
File moved
piplus-backend-v5-lts
admin-docker/conf-dev/zoo
/log4j.properties
→
piplus-backend-v5-lts
-admin-docker/conf-prod
/log4j.properties
View file @
d646ee2b
File moved
piplus-backend-v5-lts-admin-docker/conf-prod/lts-admin.cfg
0 → 100644
View file @
d646ee2b
// 后台的用户名密码
console.username=root
console.password=1234567!root
# 注册中心地址,可以是zk,也可以是redis
registryAddress=zookeeper://infra1.prod.internal.terran.vip:2181,infra2.prod.internal.terran.vip:2181,infra3.prod.internal.terran.vip:2181
# registryAddress=redis://127.0.0.1:6379
# 集群名称
clusterName=terran_scheduler
# zk客户端,可选值 zkclient, curator
configs.zk.client=zkclient
# ------ 这个是Admin存储数据的地方,也可以和JobQueue的地址一样 ------
configs.jdbc.url=jdbc:mysql://v5-prod-mycat-cluster:8066/schedule_service?useSSL=false
configs.jdbc.username=schedule_service
configs.jdbc.password=Terran123456
# admin 数据使用mysql 默认 mysql, 可以自行扩展
jdbc.datasource.provider=mysql
# 使用 可选值 fastjson, jackson
# configs.lts.json=fastjson
# 是否在admin启动monitor服务, monitor服务也可以单独启动
lts.monitorAgent.enable=true
#======================以下相关配置是JobTracker的JobQueue和JobLogger的相关配置 要保持和JobTracker一样==========================
## (可选配置)jobT. 开头的, 因为JobTracker和Admin可能使用的数据库不是同一个
# LTS业务日志, 可选值 mysql, mongo
jobT.job.logger=mysql
# ---------以下是任务队列配置-----------
# 任务队列,可选值 mysql, mongo
jobT.job.queue=mysql
# ------ 1. 如果是mysql作为任务队列 (如果不配置,表示和Admin的在一个数据库)------
# jobT.jdbc.url=jdbc:mysql://127.0.0.1:3306/lts
# jobT.jdbc.username=root
# jobT.jdbc.password=root
# ------ 2. 如果是mongo作为任务队列 ------
# jobT.mongo.addresses=127.0.0.1:27017
# jobT.mongo.database=lts
# jobT.mongo.username=xxx #如果有的话
# jobT.mongo.password=xxx #如果有的话
# admin 数据使用mysql 默认 mysql, 可以自行扩展
# jobT.jdbc.datasource.provider=mysql
piplus-backend-v5-lts
admin-docker/conf-dev/zoo/jobtracke
r.cfg
→
piplus-backend-v5-lts
-admin-docker/conf-prod/lts-monito
r.cfg
View file @
d646ee2b
# 注册中心地址,可以是zk,也可以是redis
registryAddress=zookeeper://127.0.0.1:2181
# JobTracker的监听端口
listenPort=3502
registryAddress=zookeeper://infra1.prod.internal.terran.vip:2181,infra2.prod.internal.terran.vip:2181,infra3.prod.internal.terran.vip:2181
# registryAddress=redis://127.0.0.1:6379
# 集群名称
clusterName=te
st_clust
er
clusterName=te
rran_schedul
er
# LTS业务日志, 可选值
console,
mysql, mongo
# LTS业务日志, 可选值 mysql, mongo
configs.job.logger=mysql
# zk客户端,可选值 zkclient, curator
...
...
@@ -19,12 +17,18 @@ configs.zk.client=zkclient
configs.job.queue=mysql
# ------ 1. 如果是mysql作为任务队列 ------
configs.jdbc.url=jdbc:mysql://
127.0.0.1:3306/lts
configs.jdbc.username=
root
configs.jdbc.password=
root
configs.jdbc.url=jdbc:mysql://
v5-prod-mycat-cluster:8066/schedule_service?useSSL=false
configs.jdbc.username=
schedule_service
configs.jdbc.password=
Terran123456
# ------ 2. 如果是mongo作为任务队列 ------
configs.mongo.addresses=127.0.0.1:27017
configs.mongo.database=lts
#
configs.mongo.addresses=127.0.0.1:27017
#
configs.mongo.database=lts
# configs.mongo.username=xxx #如果有的话
# configs.mongo.password=xxx #如果有的话
\ No newline at end of file
# configs.mongo.password=xxx #如果有的话
# admin 数据使用mysql, h2 默认 h2 embedded
jdbc.datasource.provider=mysql
# 使用 可选值 fastjson, jackson
# configs.lts.json=fastjson
piplus-backend-v5-lts-admin-docker/conf-sandbox/log4j.properties
0 → 100644
View file @
d646ee2b
log4j.rootLogger
=
INFO,stdout
log4j.appender.stdout.Threshold
=
INFO
log4j.appender.stdout
=
org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout
=
org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern
=
[%-5p] [%d{HH:mm:ss}] %c - %m%n
\ No newline at end of file
piplus-backend-v5-lts-admin-docker/conf-sandbox/lts-admin.cfg
0 → 100644
View file @
d646ee2b
// 后台的用户名密码
console.username=admin
console.password=admin
# 注册中心地址,可以是zk,也可以是redis
registryAddress=zookeeper://118.178.24.124:2181
# registryAddress=redis://127.0.0.1:6379
# 集群名称
clusterName=terran_scheduler
# zk客户端,可选值 zkclient, curator
configs.zk.client=zkclient
# ------ 这个是Admin存储数据的地方,也可以和JobQueue的地址一样 ------
configs.jdbc.url=jdbc:mysql://118.178.24.124/schedule-service?useSSL=false
configs.jdbc.username=future
configs.jdbc.password=future123456
# admin 数据使用mysql 默认 mysql, 可以自行扩展
jdbc.datasource.provider=mysql
# 使用 可选值 fastjson, jackson
# configs.lts.json=fastjson
# 是否在admin启动monitor服务, monitor服务也可以单独启动
lts.monitorAgent.enable=true
#======================以下相关配置是JobTracker的JobQueue和JobLogger的相关配置 要保持和JobTracker一样==========================
## (可选配置)jobT. 开头的, 因为JobTracker和Admin可能使用的数据库不是同一个
# LTS业务日志, 可选值 mysql, mongo
jobT.job.logger=mysql
# ---------以下是任务队列配置-----------
# 任务队列,可选值 mysql, mongo
jobT.job.queue=mysql
# ------ 1. 如果是mysql作为任务队列 (如果不配置,表示和Admin的在一个数据库)------
# jobT.jdbc.url=jdbc:mysql://127.0.0.1:3306/lts
# jobT.jdbc.username=root
# jobT.jdbc.password=root
# ------ 2. 如果是mongo作为任务队列 ------
# jobT.mongo.addresses=127.0.0.1:27017
# jobT.mongo.database=lts
# jobT.mongo.username=xxx #如果有的话
# jobT.mongo.password=xxx #如果有的话
# admin 数据使用mysql 默认 mysql, 可以自行扩展
# jobT.jdbc.datasource.provider=mysql
piplus-backend-v5-lts
admin-docker/conf-dev/zoo
/lts-monitor.cfg
→
piplus-backend-v5-lts
-admin-docker/conf-sandbox
/lts-monitor.cfg
View file @
d646ee2b
# 注册中心地址,可以是zk,也可以是redis
registryAddress=zookeeper://1
27.0.0.1
:2181
registryAddress=zookeeper://1
18.178.24.124
:2181
# registryAddress=redis://127.0.0.1:6379
# 集群名称
clusterName=te
st_clust
er
clusterName=te
rran_schedul
er
# LTS业务日志, 可选值 mysql, mongo
configs.job.logger=mysql
...
...
@@ -17,17 +17,18 @@ configs.zk.client=zkclient
configs.job.queue=mysql
# ------ 1. 如果是mysql作为任务队列 ------
configs.jdbc.url=jdbc:mysql://1
27.0.0.1:3306/lts
configs.jdbc.username=
root
configs.jdbc.password=
root
configs.jdbc.url=jdbc:mysql://1
14.55.62.147/schedule-service?useSSL=false
configs.jdbc.username=
future
configs.jdbc.password=
future123456
# ------ 2. 如果是mongo作为任务队列 ------
configs.mongo.addresses=127.0.0.1:27017
configs.mongo.database=lts
#
configs.mongo.addresses=127.0.0.1:27017
#
configs.mongo.database=lts
# configs.mongo.username=xxx #如果有的话
# configs.mongo.password=xxx #如果有的话
# admin 数据使用mysql, h2 默认 h2 embedded
jdbc.datasource.provider=mysql
# 使用 可选值 fastjson, jackson
# configs.lts.json=fastjson
\ No newline at end of file
# configs.lts.json=fastjson
piplus-backend-v5-lts-admin-docker/lts-admin.sh
0 → 100644
View file @
d646ee2b
#!/usr/bin/env bash
# JVMFLAGS JVM参数可以在这里设置
JVMFLAGS
=
-Dfile
.encoding
=
UTF-8
LTS_ADMIN_HOME
=
"
${
BASH_SOURCE
-
$0
}
"
LTS_ADMIN_HOME
=
"
$(
dirname
"
${
LTS_ADMIN_HOME
}
"
)
"
LTS_ADMIN_HOME
=
"
$(
cd
"
${
LTS_ADMIN_HOME
}
"
;
pwd
)
"
if
[
"
$JAVA_HOME
"
!=
""
]
;
then
JAVA
=
"
$JAVA_HOME
/bin/java"
else
JAVA
=
java
fi
#把lib下的所有jar都加入到classpath中
for
i
in
"
$LTS_ADMIN_HOME
"
/../war/jetty/lib/
*
.jar
do
CLASSPATH
=
"
$i
:
$CLASSPATH
"
done
# echo $CLASSPATH
mkdir
-p
$LTS_ADMIN_HOME
/../logs
mkdir
-p
$LTS_ADMIN_HOME
/../pid
# 转化为绝对路径
CONF_HOME
=
"
$LTS_ADMIN_HOME
/../."
CONF_HOME
=
$(
cd
"
$(
dirname
"
$CONF_HOME
"
)
"
;
pwd
)
# echo $CONF_HOME
_LTS_DAEMON_OUT
=
"
$LTS_ADMIN_HOME
/../logs/lts-admin.out"
LTS_MAIN
=
"com.github.ltsopensource.startup.admin.JettyContainer"
echo
"Starting LTS LTS-Admin ... "
"
$JAVA
"
-cp
"
$CLASSPATH
"
$JVMFLAGS
$LTS_MAIN
"
$CONF_HOME
"
piplus-backend-v5-ltsadmin-docker/conf-dev/readme.txt
deleted
100644 → 0
View file @
5e563f86
如果想要启动多个jobTracker,请复制一份 zoo。
譬如 我复制了一个zoo文件夹名称为 test1
那么文件组织方式为:
-conf
-zoo
-jobtracker.cfg
-log4j.properties
-test1
-jobtracker.cfg
-log4j.properties
那么执行的时候:
sh jobtracker.sh zoo {start|restart|stop}
sh jobtracker.sh test1 {start|restart|stop}
piplus-backend-v5-ltsadmin-docker/conf-dev/tasktracker.cfg
deleted
100644 → 0
View file @
5e563f86
# 注册中心地址,可以是zk,也可以是redis
registryAddress=zookeeper://127.0.0.1:2181
# 集群名称
clusterName=test_cluster
# 节点组名称
nodeGroup=test_trade_taskTracker
# JobRunner 任务执行类
jobRunnerClass=com.github.ltsopensource.startup.tasktracker.test.TestJobRunner
# 运行线程数
workThreads=10
# 通过BizLogger 记录的日志
bizLoggerLevel=INFO
# FailStore 存储引擎
configs.job.fail.store=leveldb
# 使用TaskTracker使用Spring,使用的话也要自己引入Spring相关jar
useSpring=false
# 配置 spring配置文件路径,用逗号隔开,如: classpath*:spring/*.xml
springXmlPaths=
piplus-backend-v5-ltsadmin-docker/conf-prod/lts-admin.cfg
0 → 100644
View file @
d646ee2b
// 后台的用户名密码
console.username=root
console.password=1234567!root
# 注册中心地址,可以是zk,也可以是redis
registryAddress=zookeeper://infra1.prod.internal.terran.vip:2181,infra2.prod.internal.terran.vip:2181,infra3.prod.internal.terran.vip:2181
# registryAddress=redis://127.0.0.1:6379
# 集群名称
clusterName=terran_scheduler
# zk客户端,可选值 zkclient, curator
configs.zk.client=zkclient
# ------ 这个是Admin存储数据的地方,也可以和JobQueue的地址一样 ------
configs.jdbc.url=jdbc:mysql://v5-prod-mycat-cluster:8066/schedule_service?useSSL=false
configs.jdbc.username=schedule_service
configs.jdbc.password=Terran123456
# admin 数据使用mysql 默认 mysql, 可以自行扩展
jdbc.datasource.provider=mysql
# 使用 可选值 fastjson, jackson
# configs.lts.json=fastjson
# 是否在admin启动monitor服务, monitor服务也可以单独启动
lts.monitorAgent.enable=true
#======================以下相关配置是JobTracker的JobQueue和JobLogger的相关配置 要保持和JobTracker一样==========================
## (可选配置)jobT. 开头的, 因为JobTracker和Admin可能使用的数据库不是同一个
# LTS业务日志, 可选值 mysql, mongo
jobT.job.logger=mysql
# ---------以下是任务队列配置-----------
# 任务队列,可选值 mysql, mongo
jobT.job.queue=mysql
# ------ 1. 如果是mysql作为任务队列 (如果不配置,表示和Admin的在一个数据库)------
# jobT.jdbc.url=jdbc:mysql://127.0.0.1:3306/lts
# jobT.jdbc.username=root
# jobT.jdbc.password=root
# ------ 2. 如果是mongo作为任务队列 ------
# jobT.mongo.addresses=127.0.0.1:27017
# jobT.mongo.database=lts
# jobT.mongo.username=xxx #如果有的话
# jobT.mongo.password=xxx #如果有的话
# admin 数据使用mysql 默认 mysql, 可以自行扩展
# jobT.jdbc.datasource.provider=mysql
piplus-backend-v5-ltsadmin-docker/conf-prod/lts-monitor.cfg
0 → 100644
View file @
d646ee2b
# 注册中心地址,可以是zk,也可以是redis
registryAddress=zookeeper://infra1.prod.internal.terran.vip:2181,infra2.prod.internal.terran.vip:2181,infra3.prod.internal.terran.vip:2181
# registryAddress=redis://127.0.0.1:6379
# 集群名称
clusterName=terran_scheduler
# LTS业务日志, 可选值 mysql, mongo
configs.job.logger=mysql
# zk客户端,可选值 zkclient, curator
configs.zk.client=zkclient
# ---------以下是任务队列配置-----------
# 任务队列,可选值 mysql, mongo
configs.job.queue=mysql
# ------ 1. 如果是mysql作为任务队列 ------
configs.jdbc.url=jdbc:mysql://v5-prod-mycat-cluster:8066/schedule_service?useSSL=false
configs.jdbc.username=schedule_service
configs.jdbc.password=Terran123456
# ------ 2. 如果是mongo作为任务队列 ------
#configs.mongo.addresses=127.0.0.1:27017
#configs.mongo.database=lts
# configs.mongo.username=xxx #如果有的话
# configs.mongo.password=xxx #如果有的话
# admin 数据使用mysql, h2 默认 h2 embedded
jdbc.datasource.provider=mysql
# 使用 可选值 fastjson, jackson
# configs.lts.json=fastjson
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment