Skip to content
He Wang edited this page Dec 19, 2021 · 5 revisions

简介

Canal是一个开源的增量日志解析工具,主要提供了4个组件:

  • canal deployer:canal的服务端,进行binlog到CanalEntry的转换。
  • canal admin:canal的配置管理服务,提供web页面管理canal的server端服务。
  • canal adapter:canal的客户端适配器,解析CanalEntry并将增量变动同步到目的端。
  • canal example:canal的客户端示例,用户可以基于该部分代码实现自己的消费逻辑。

更多的介绍参见官方仓库Wiki

Canal for OB

Canal Deployer服务启动后,会根据配置的destinations信息创建Instance,即增量日志处理通路。目前canal-for-ob分支在原有MySQL Binlog解析功能不变的情况下,在parse模块集成了oblogclient,增加了获取OceanBase的增量redo log对能力,过程如下图所示。

log转换过程

Canal Deployer将增量日志转为CanalEntry之后,有两种消费方式:

  • TCP:数据存放在内存,客户端通过TCP连接获取日志数据。
  • MQ:数据直接写入MQ,其他端通过消费MQ获取日志数据。

client对接

部署

项目目录

项目主要包含如下几部分:

  • bin:存放启动、关闭、重启脚本
  • conf:配置文件目录
  • lib:项目用到的jar包
  • logs:用bin目录的脚本启动时,日志会打到这个目录下
  • plugin:一些可选择的插件的jar包

部署流程

开始部署前,请先阅读生产环境实践,根据自己的情况选择合适的部署方式。

请使用最新release的安装包:https://github.com/oceanbase/canal/releases

Canal Deployer

部署canal.deployer(MySQL作为数据源)

部署canal.deployer(OB作为数据源)

Canal Adapter

部署canal.adapter(rdb)

Flink Connector

Canal对接Flink