Canal常用配置

https://github.com/alibaba/canal/wiki/AdminGuide

canal.instance.filter.regex

监控哪些表的正则配置 如下:

mysql 数据解析关注的表,Perl正则表达式.
多个正则之间以逗号(,)分隔,转义符需要双斜杠(\\) 
常见例子:
1.  所有表:.*   or  .*\\..*
2.  canal schema下所有表: canal\\..*
3.  canal下的以canal打头的表:canal\\.canal.*
4.  canal schema下的一张表:canal.test1
5.  多个规则组合使用:canal\\..*,mysql.test1,mysql.test2 (逗号分隔)
注意:此过滤条件只针对row模式的数据有效(ps. mixed/statement因为不解析sql,所以无法准确提取tableName进行过滤)

instance.xml配置文件

目前默认支持的instance.xml有以下几种:

  1. spring/memory-instance.xml
  2. spring/file-instance.xml
  3. spring/default-instance.xml
  4. spring/group-instance.xml

memory-instance.xml介绍:
所有的组件(parser , sink , store)都选择了内存版模式,记录位点的都选择了memory模式,重启后又会回到初始位点进行解析。
特点:速度最快,依赖最少(不需要zookeeper)。
场景:一般应用在quickstart,或者是出现问题后,进行数据分析的场景,不应该将其应用于生产环境。

file-instance.xml介绍:
所有的组件(parser , sink , store)都选择了基于file持久化模式,注意,不支持HA机制。
特点:支持单机持久化。
场景:生产环境,无HA需求,简单可用。

default-instance.xml介绍:
所有的组件(parser , sink , store)都选择了持久化模式,目前持久化的方式主要是写入zookeeper,保证数据集群共享。
特点:支持HA。
场景:生产环境,集群化部署。

group-instance.xml介绍:
主要针对需要进行多库合并时,可以将多个物理instance合并为一个逻辑instance,提供客户端访问。
场景:分库业务。 比如产品数据拆分了4个库,每个库会有一个instance,如果不用group,业务上要消费数据时,需要启动4个客户端,分别链接4个instance实例。使用group后,可以在canal server上合并为一个逻辑instance,只需要启动1个客户端,链接这个逻辑instance即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果您使用的是 Canal 1.x 版本,可以按照以下步骤配置 Canal 支持事务: 1. 在 Canal Server 的配置文件 `conf/canal.properties` 中,配置 `canal.instance.enableDdlSync=true`,表示开启 DDL 同步功能。 2. 在 Canal Client 的配置文件 `conf/example/instance.properties` 中,配置 `canal.instance.filter.regex=.*`,表示同步所有的表。 3. 在 Canal Client 的配置文件 `conf/example/instance.properties` 中,配置 `canal.instance.transactionSize=1000`,表示每次事务同步的最大条数为 1000。 4. 在 Canal Client 的启动代码中,使用 `CanalConnector` 的 `connect()` 方法建立连接,并使用 `subscribe()` 方法订阅需要同步的数据库和表。 5. 在 Canal Client 的启动代码中,使用 `start()` 方法启动监听,然后使用 `while` 循环不断读取数据,直到程序停止。 如果您使用的是 Canal 2.x 版本,可以按照以下步骤配置 Canal 支持事务: 1. 在 Canal Server 的配置文件 `conf/canal.properties` 中,配置 `canal.instance.enableDdlSync=true`,表示开启 DDL 同步功能。 2. 在 Canal Client 的配置文件 `conf/canal.yaml` 中,配置 `destination: example`,表示指定同步的目标为 `example`。 3. 在 Canal Client 的配置文件 `conf/canal.yaml` 中,配置 `filter: .*`,表示同步所有的表。 4. 在 Canal Client 的配置文件 `conf/canal.yaml` 中,配置 `group: example`,表示使用 `example` 分组。 5. 在 Canal Client 的启动代码中,使用 `CanalConnector` 的 `connect()` 方法建立连接,并使用 `subscribe()` 方法订阅需要同步的数据库和表。 6. 在 Canal Client 的启动代码中,使用 `start()` 方法启动监听,然后使用 `while` 循环不断读取数据,直到程序停止。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值