大数据:canal介绍

canal 译意水道/管道/,主要用于 MySQL 数据库增量日志解析,提供增量数据订阅和消费

canal 工作原理(下图借用)

  • canal 模拟 MySQL slave 的交互协议,伪装成 MySQL slave ,向 MySQL master 发送dump 协议
  • MySQL master 收到 dump 请求,开始推送 binary log 给 slave (即 canal )
  • canal 解析 binary log 对象(原始为 byte 流)----->kafka等

canal架构

  • server代表一个canal运行实例,对应于一个jvm
  • instance对应于一个数据队列 (1个server可以有1个或多个instance)

instance模块:

  • eventParser (数据源接入,模拟slave协议和master进行交互,协议解析)
  • eventSink (Parser和Store链接器,进行数据过滤,加工,分发的工作)
  • eventStore (数据存储)
  • metaManager (增量订阅&消费信息管理器)

更多参考原作者 https://www.jianshu.com/p/87944efe1005

猜你喜欢

转载自blog.csdn.net/JinChao94/article/details/109302053