前言

Canal 是一个开源的MySQL数据库binlog监听和解析框架,用于实时捕获 MySQL数据库的binlog 变更事件,并将其解析成易于消费的数据格式。Canal 可以实时监听 MySQL 数据库的 binlog,并即时捕获数据库的数据变更事件。Canal可以将捕获到的binlog事件解析成易于消费的数据格式,如 SON格式,方便后续处理与消费。Canal 通过增量订阅和解析 binlog 的方式,避免了全量数据的传输和处理,提供了较高的性能和吞吐量。Canal 支持灵活的配置,可以根据需求过滤和选择需要监听和解析的表和字段,避免不必要的数据传输和处理。Canal 提供了多种输出方式,如Tcp、 Kafka、RocketMQ、ActiveMQ 等消息中间件,也可以直接写入文件或发送到远程服务等。

本节内容我们主要介绍如何搭建Canal服务,实现数据库binlog日志监控数据的传输,并实现一个案例将日志数据发送给kafka消息中间键消费使用。关于java、mysql、zookeeper、kafka等相关在案例中使用的服务搭建过程,本节内容不在重复介绍,可查看作者往期博客内容。

正文

①开启mysql的binlog日志,并重启mysql

- 在/etc/my.cnf配置文件中开启canal数据库的binlog日志功能

- 重启mysql数据库使binlog配置生效

- 创建一个canal数据库和一张test表用于测试

- 创建一个canal用户并授权canal数据库的操作权限

②上传Canal安装包到hadoop101服务器/opt/module目录下

③在/opt/module目录下创建canal目录,解压Canal安装包到/opt/module/canal目录下

mkdir -p /opt/module/canal
tar -zxvf canal.deployer-1.1.2.tar.gz -C /opt/module/canal

④在canal安装目录/opt/module/canal/conf下修改canal配置文件canal.properties,该文件中可以配置多个监控实例,这里配置example下的实例

- 修改canal通用配置

- 配置kafka集群地址

⑤在canal安装目录/opt/module/canal/conf/example下修改canal实例配置文件instance.properties

- 配置mysql服务地址

- 配置接MySQL授权的用户名和密码

- 配置kafka消费者主题和分区数

⑥ 启动zookeeper集群和kafka集群

⑦在kafka创建一个canal主题3分区3副本,对应配置文件instance.properties中的主题配置

kafka-topics.sh --bootstrap-server hadoop101:9092 --create --topic canal --partitions 3 --replication-factor 3

⑧使用bin目录下的脚本启动canal监控服务,开始监控mysql配置的binlog日志

⑨查看canal启动进程,查看canal是否启动成功

⑩开启一个kafka消费者,看是否能消费到canal发送的消息

kafka-console-consumer.sh --bootstrap-server hadoop101:9092 --topic canal

⑪修改canal数据库表test,插入一条数据

⑫查看kafka消费情况,能够消费到主题数据

结语

至此,关于Canal安装部署及其应用案例实战的内容到这里就结束了,我们下期见。。。。。。

GitHub 加速计划 / ca / canal
28.21 K
7.57 K
下载
alibaba/canal: Canal 是由阿里巴巴开源的分布式数据库同步系统,主要用于实现MySQL数据库的日志解析和实时增量数据订阅与消费,广泛应用于数据库变更消息的捕获、数据迁移、缓存更新等场景。
最近提交(Master分支:1 个月前 )
1e5b8a20 - 18 天前
ff82fd65 18 天前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐