alibaba / canal

阿里巴巴 MySQL binlog 增量订阅&消费组件
Apache License 2.0
28.44k stars 7.6k forks source link

HA问题 #1709

Open Bruce2jiang opened 5 years ago

Bruce2jiang commented 5 years ago

我两个canal server 都设置了这个:canal.instance.global.spring.xml = classpath:spring/default-instance.xml

,但查看zookeeper 这个instance :canalcrm,没有running信息 [zk: localhost:2181(CONNECTED) 20] ls /otter/canal/destinations/canalcrm/running []

Bruce2jiang commented 5 years ago

如果我查看/otter/canal/destinations/canalcrm/cluster,两个server信息都有,但是每个server下面又没数据,看不出来哪个server是主节点 [zk: localhost:2181(CONNECTED) 23] ls /otter/canal/destinations/canalcrm/cluster [10.125.210.15:11111, 10.125.210.14:11111]

[zk: localhost:2181(CONNECTED) 24] ls /otter/canal/destinations/canalcrm/cluster/10.125.210.15:11111 []

[zk: localhost:2181(CONNECTED) 25] ls /otter/canal/destinations/canalcrm/cluster/10.125.210.14:11111 []

Fanduzi commented 5 years ago

配置文件贴出来

Bruce2jiang commented 5 years ago

################################################# ######### destinations ############# ################################################# canal.destinations = canalcrm,canalhrms,canaloams,canalpda,canalpms,canalvms,example2

conf root dir

canal.conf.dir = ../conf

auto scan instance dir add/remove and start/stop instance

canal.auto.scan = true canal.auto.scan.interval = 5

canal.instance.tsdb.spring.xml = classpath:spring/tsdb/h2-tsdb.xml

canal.instance.tsdb.spring.xml = classpath:spring/tsdb/mysql-tsdb.xml

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

################################################## ######### MQ ############# ################################################## canal.mq.servers =10.125.210.4:9092,10.125.210.5:9092,10.125.210.6:9092 canal.mq.retries = 0 canal.mq.batchSize = 16384 canal.mq.maxRequestSize = 1048576 canal.mq.lingerMs = 1 canal.mq.bufferMemory = 33554432 canal.mq.canalBatchSize = 50 canal.mq.canalGetTimeout = 100 canal.mq.flatMessage = true canal.mq.compressionType = none canal.mq.acks = all

use transaction for kafka flatMessage batch produce

canal.mq.transaction = false

canal.mq.properties. =

Bruce2jiang commented 5 years ago

canal.manager.jdbc.password=121212

canal.id = 1 canal.ip = canal.port = 11111 canal.metrics.pull.port = 11112 canal.zkServers =10.125.210.15:2181

flush data to zk

canal.zookeeper.flush.period = 1000 canal.withoutNetty = false

tcp, kafka, RocketMQ

canal.serverMode = kafka

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 canal.instance.memory.rawEntry = true

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

Bruce2jiang commented 5 years ago

canal.instance.filter.druid.ddl = true canal.instance.filter.query.dcl = false canal.instance.filter.query.dml = false canal.instance.filter.query.ddl = false canal.instance.filter.table.error = false canal.instance.filter.rows = false canal.instance.filter.transaction.entry = 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

parallel parser config

canal.instance.parser.parallel = true

concurrent thread number, default 60% available processors, suggest not to exceed Runtime.getRuntime().availableProcessors()

canal.instance.parser.parallelThreadSize = 16

disruptor ringbuffer size, must be power of 2

canal.instance.parser.parallelBufferSize = 256

table meta tsdb info

canal.instance.tsdb.enable = true canal.instance.tsdb.dir = ${canal.file.data.dir:../conf}/${canal.instance.destination:} canal.instance.tsdb.url = jdbc:h2:${canal.instance.tsdb.dir}/h2;CACHE_SIZE=1000;MODE=MYSQL; canal.instance.tsdb.dbUsername = canal canal.instance.tsdb.dbPassword = canal

dump snapshot interval, default 24 hour

canal.instance.tsdb.snapshot.interval = 24

purge snapshot expire , default 360 hour(15 days)

canal.instance.tsdb.snapshot.expire = 360

aliyun ak/sk , support rds/mq

canal.aliyun.accessKey = canal.aliyun.secretKey =

Bruce2jiang commented 5 years ago

谁能解答一下

Fanduzi commented 5 years ago

用get get /otter/canal/destinations/mgr_zyx_2/running

Bruce2jiang commented 5 years ago

没用,能不能找个懂得回到一下

Fanduzi commented 5 years ago

得. 咱不懂撤了😆

KinYu668 commented 4 years ago

这个问题解决了吗? @Bruce2jiang 目前我遇到一个问题,可能跟你的很相似。 现象: 两个Canal节点配置HA,写Kafka。消费位点meta文件,保存在本地。当主节点挂了,备节点上的meta文件并没有同步主节点的消费信息。 不知道是我配置有问题,还是存在什么异常?