mysql中间件~canal配置



目标设计
1储元数据信息在zk 消费用mq
2本身有主从,当master挂掉后会切换

3 位点信息可以有三种存储方式  本地(meta.dat) 内存和 zk(通过key进行查看)中
canal.properties 主配置文件
 1 canal基础配置-包含zk配置

canal.instance.global.spring.xml = classpath:spring/file-instance.xml(default-配合zk/memory/file-无zk,单节点模式)

 2 canal mq配置
 3 canal ts配置
instance.properties 创建数据库目录,编辑文件会自动加载
 1底层存储用tsdb
  canal.instance.tsdb.enable=true
 2可以配置传统复制/gtid复制 但是不论哪种都必须配置master.timestamp
  canal.instance.master.address=
  canal.instance.master.journal.name= 传统复制模式
  canal.instance.master.position=
  canal.instance.master.timestamp=1580818113 # 必须配置,否则无法启动
  canal.instance.master.gtid=gtid模式
3 库表过滤
  canal.instance.filter.regex=正则表达式
4 消费MQ配置
 canal.mq.topic=
 canal.mq.partition=0

5 具体的正则匹配规则是怎么样的
    1. 所有表:.* or .*\\..*
    2. canal schema下所有表: canal\\..*
    3. canal下的以canal打头的表:canal\\.canal.*
    4. canal schema下的一张表:canal.test1
    5. 多个规则组合使用:canal\\..*,mysql.test1,mysql.test2 (逗号分隔)
    6 匹配多个类似库: canal_.*\\..*

6  生产中的一些问题
   1 我曾经遇过因为使用pt-osc做DDL导致canal异常的情况,这时候需要创建_new空表即可,感觉这是一个小BUG

7 canal用户

   GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%' IDENTIFIED BY 'canal';

相关