protobuf 解析工具_Canal数据同步工具,抛开所有的坑

本文介绍了Canal作为数据同步工具的应用场景、环境搭建步骤,以及Java实现Canal客户端同步数据库的详细过程。通过实时同步数据库表,降低微服务项目的耦合度,提高效率。文中还展示了向远程库添加数据并成功同步的测试效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

点击上方“南客先生”,选择“设为星标”

做积极的人,而不是积极废人

0099973d4be9d0346e548cbad9949727.png 85fb92f1f462592d1b23e0f85eb95b3d.png
  • 一、 Canal介绍

  • 二、 应用场景

  • 三、 Canal环境搭建

  • 四、 注意点

  • 五、 Java实现canal数据同步

  • 六、 测试效果

Canal介绍

Canal是阿里旗下的一个开源的数据同步工具,使其可以在微服务项目中降低程序的耦合度,达到提升效率的工具。下面看下它的介绍:

*应用场景

在微服务项目大部分功能中,我们采取了服务调用获取相应需要的数据,这样耦合度高,效率相对较低,目前我采取另一种实现方式,通过实时同步数据库表的方式实现,例如我们要统计每天注册与登录人数,我们只需把会员表同步到统计库中,实现本地统计就可以了,这样效率更高,耦合度更低,Canal就是一个很好的数据库同步工具。canal是阿里巴巴旗下的一款开源项目,纯Java开发。基于数据库增量日志解析,提供增量数据订阅&消费,目前主要支持了MySQL。

*1、Canal环境搭建

canal的原理是基于mysql binlog技术,所以这里一定需要开启mysql的binlog写入功能

开启mysql服务:  

service mysql start  (或者 systemctl start mysqld.service)
1)检查binlog功能是否有开启
1 mysql> show variables like 'log_bin';
2 +---------------+-------+
3 | Variable_name | Value |4 +---------------+-------+5 | log_bin       | OFF    |
6 +---------------+-------+
7 1 row in set (0.00 sec)
2)如果显示状态为OFF表示该功能未开启,开启binlog功能

1,修改 mysql 的配置文件 my.cnf

1vi /etc/my.cnf 
2追加内容:
3log-bin=mysql-bin     #binlog文件名
4binlog_format=ROW     #选择row模式
5server_id=1           #mysql实例id,不能和canal的slaveId重复

2,重启 mysql:

service mysql restart

3,登录 mysql 客户端,查看 log_bin 变量

1 mysql> show variables like 'log_bin';
2 +---------------+-------+
3 | Variable_name | Value |4 +---------------+-------+5 | log_bin       | NO    |
6 +---------------+-------+
7 1 row in set (0.00 sec)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值