mysql-canal-rabbitmq 安装部署教程 (4)

mysql-canal-rabbitmq 安装部署教程

后话
如果此处的 instance 无法启动, 按一下几个步骤检查操作一下试试:

检查集群里的主配置里的canal.destinations是否包含新建的实例instance名称;

检查canal-server节点是否加载的canal_local.properties配置文件;

删除实例文件夹下的 .db, .bat 文件, 更新实例配置文件中的 canal.instance.master.position 的 binglog 位置后, 启动 instance;

1.5. canal 配置说明 1.5.1. canal.properties

canal.ip, 该节点 IP

canal.register.ip, 注册到 zookeeper 上的 IP

canal.zkServers, zk 集群

是否启用 tsdb, 开启 table meta 的时间序列版本记录功能
// 5. canal.serverMode, 设置为 rabbitmq, 默认为 tcp

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

canal.destinations, 当前集群上部署的 instance 列表

canal.mq.servers, 设置 Rabbitmq 集群地址, !! 此处不可以加上端口

1.5.2. instance.properties

canal.instance.master.address, master 数据库地址

canal.instance.master.journal.name, 在数据库中执行show master status的File值

canal.instance.master.position, 在数据库中执行show master status的Position值

canal.instance.tsdb.enable=false, 禁用 tsdb

canal.instance.dbUsername, 实例数据库用户名

canal.instance.dbPassword, 实例数据库密码

canal.instance.filter.regex, 匹配需要同步的表

canal.mq.topic, canal 注册 mq 的 topic 名称

1.5.3. properties 配置文件

properties 配置分为两部分

canal.properties (系统根配置文件)
instance.properties (instance 级别的配置文件, 每个实例一份)

canal.properties

canal.destinations # 当前 server 上部署的 instance 列表 canal.conf.dir # conf 目录所在路径 canal.auto.scan # 开启 instance 自动扫描 # 如果配置为 true, canal.conf.dir 目录下的 instance 配置变化会自动触发 # 1. instance 目录新增: 触发 instance 配置载入, lazy 为 true 时则自动启动; # 2. instance 目录删除: 卸载对应 instance 配置, 如已启动则进行关闭; # 3. instance.properties 文件变化: reload instance 配置, 如已启动则自动进行重启操作; canal.auto.scan.interval # instance 自动扫描间隔时间, 单位 s canal.instance.global.mode # 全局配置加载方式 canal.instance.global.lazy # 全局 lazy 模式 canal.instance.global.manager.address # 全局的 manager 配置方式的链接信息 canal.instance.global.spring.xml # 全局的 spring 配置方式的组件文件 canal.instance.example.mode canal.instance.example.lazy canal.instance.example.spring.xml # instance 级别的配置定义, 如有配置, 会自动覆盖全局配置定义模式 canal.instance.tsdb.enable # 是否开启 table meta 的时间序列版本记录功能 canal.instance.tsdb.dir # 时间序列版本的本地存储路径, 默认为 instance 目录 canal.instance.tsdb.url # 时间序列版本的数据库连接地址, 默认为本地嵌入式数据库 canal.instance.tsdb.dbUsername # 时间序列版本的数据库连接账号 canal.instance.tsdb.dbPassword # 时间序列版本的数据库连接密码

instance.properties

canal.id # 每个 canal server 实例的唯一标识 canal.ip # canal server 绑定的本地 IP 信息, 如果不配置, 默认选择一个本机 IP 进行启动服务 canal.port # canal server 提供 socket 服务的端口 canal.zkServers # canal server 连接 zookeeper 集群的连接地址, 例如: 10.20.144.22:2181,10.20.144.23:2181 canal.zookeeper.flush.period # canal 持久化数据到 zookeeper 上的更新频率, 单位 ms canal.instance.memory.batch.mode # canal 内存 store 中数据缓存模式 # 1. ITEMSIZE: 根据 buffer.size 进行限制, 只限制记录的数量 # 2. MEMSIZE: 根据 buffer.size * buffer.memunit 的大小, 限制缓存记录的大小; canal.instance.memory.buffer.size # canal 内存 store 中可缓存 buffer 记录数, 需要为 2 的指数 canal.instance.memory.buffer.memunit # 内存记录的单位大小, 默认为 1KB, 和 buffer.size 组合决定最终的内存使用大小 canal.instance.transactions.size # 最大事务完整解析的长度支持, 超过该长度后, 一个事务可能会被拆分成多次提交到 canal store 中, 无法保证事务的完整可见性 canal.instance.fallbackIntervalInSeconds # canal 发生 mysql 切换时, 在新的 mysql 库上查找 binlog 时需要往前查找的时间, 单位 s # 说明: mysql 主备库可能存在解析延迟或者时钟不一致, 需要回退一段时间, 保证数据不丢 canal.instance.detecting.enable # 是否开启心跳检查 canal.instance.detecting.sql # 心跳检查 sql, insert into retl.xdual values(1,now()) on duplicate key update x=now() canal.instance.detecting.interval.time # 心跳检查频率, 单位 s canal.instance.detecting.retry.threshold # 心跳检查失败重试次数 canal.instance.detecting.heatbeatHaEnable # 心跳检查失败后, 是否开启 mysql 自动切换 # 说明: 比如心跳检查失败超过阈值后, 如果该配置为 true, canal 会自动连到 mysql 备库获取 binlog 数据 canal.instance.network.receiveBufferSize # 网络连接参数, SocketOptions.SO_RCVBUF canal.instance.network.sendBufferSize # 网络连接参数, SocketOptions.SO_SNDBUF canal.instance.network.soTimeout # 网络连接参数, SocketOptions.SO_TIMEOUT 1.5.4. canal.mq.dynamicTopic

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zydyzf.html