Canal 的canal.deployer-1.1.2.tar.gz
部署包,挺适合想搞数据库实时同步的朋友。它本质上是监听 MySQL 的Binlog
,把变更事件直接推出来,就像个数据库的“监听小能手”,适合需要高实时性的项目。
里面的结构也蛮清晰:conf里是各种配置,想连哪台库、怎么同步都能配好;lib是 Canal 运行要用的库,像mysql-connector
和protobuf
这些;logs用来看同步情况,出了问题第一时间查它就对了;还有bin,几个启动脚本一键跑起来,省事。
像你要做MySQL -> Kafka
的数据流同步、数据库变更审计、或者给大数据平台实时数据入口,Canal 都挺稳的。是对sqoop
之类工具不够实时的场景,它补得刚刚好。
不过用的时候要注意:MySQL 那边要开启binlog
,格式设成ROW
,Canal 才识别得准;另外别忘了配好instance.properties
,每个库一个实例,清清楚楚。
如果你在搞实时数据管道,又嫌消息队列收集那一套太重,试试 Canal 吧。部署简单、响应快,用完就知道“好用”这俩字不只是吹的。