Flume能否代替Canal实时同步Mysql的Binlog数据?

胥宏义
2023-12-01
  • 零、不废话先说结论

    • 1.Flume不能代替Canal实时同步Mysql的Binlog数据(内部机制不支持);

    • 2.Flume可以实现实时同步Mysql的数据(插件的方式);

    • 下面是具体的结论理由推断;

  • 一、Canal在同步Mysql的Binary log的作用

    • 功能上看

      • 1.master将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary log events, 可以通过show binlog events进行查看);

      • 2.slave将master的binary log events 拷贝到它的中继日志(relay log);

      • 3.slave重做中继日志中的事件,将改变反应它自己的数据;

    • 工作原理

      • 1.canal模拟mysql slave的交互协议,伪装自己为mysql的slave,向mysql master 发送dump协议;

      • 2.mysql master收到dump请求,开始推送binary log给slave(也就是canal);

      • 3.canal解析binary log对象(原始为byte流);

  • 二、

 类似资料: