canal [kə'næl],译意为水道/管道/沟渠,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据 订阅 和 消费。应该是阿里云DTS(Data Transfer Service)的开源版本,开源地址:https://github.com/alibaba/canal。
canal从1.1.4版本开始引入了admin控制台,有了很多不一样的配置方式。在搭建过程中如果仅仅按照wiki的用户手册,还是容易踩很多坑的。因此,将笔者在搭建过程中的步骤记录下来,作为官方wiki的 补充,希望能有所帮助。
根据本文内容与搭建顺序 ,并搭配对应的官网文档链接,应该就能快速搭建完成了,enjoy~
1. 部署canal-admin
1)部署服务
官方文档地址:https://github.com/alibaba/canal/wiki/Canal-Admin-QuickStart
主要配置application.yml文件
server:
port: 8089
spring:
jackson:
date-format: yyyy-MM-dd HH:mm:ss
time-zone: GMT+8
spring.datasource:
address: 127.0.0.1:3306
database: canal_manager
username: xxxx
assword: xxxxx
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://${spring.datasource.address}/${spring.datasource.database}?useUnicode=true&characterEncoding=UTF-8&useSSL=false
hikari:
maximum-pool-size: 30
minimum-idle: 1
canal:
adminUser: admin
adminPasswd: admin
这里需要注意,canal的adminPasswd并不是登陆admin的密码,登陆admin的密码是设置在对应的数据库中的,默认为123456。
另外,因为 Canal Admin 是一个管理系统,需要使用数据库存放配置信息,只用在 MySQL 中执行 Canal Admin 提供的数据库初始化文件即可,该文件在“conf/canal_manager.sql”路径下面。
2)登陆浏览器访问
上面的 Canal Admin 配置好了之后直接根据“/bin/startup.sh”启动 Canal Admin 即可,在浏览器上面输入 hostip:8089 即可进入到管理页面,如果使用的默认的配置信息,用户名入”admin”,密码输入”123456”即可访问首页。
进入到首页点击集群的菜单栏,然后选择新建集群。
在里面输入集群的名称以及 Zookeeper即可,这里的集群目前还没有任务节点,后续通过配置 Canal Server 的自动注册功能,便可以查看该集群下面拥有的节点。
创建集群后,需要先配置集群 主配置,载入模板即可。
如果没有载入这个模版,那么在canal-server执行 sh bin/startup.sh local 命令,读取canal_local.propeties配置启动时,会报错
Caused by: com.alibaba.otter.canal.common.CanalException: requestGet for canal config error: canal.properties config is empty
注意,在主配置中,还是需要记得加入zk的地址配置,跟上面配置集群名字的时候输入的zk无关 (那个zk地址不知道有啥用):
canal.zkServers = xxx.xx.xx.xx:2181,xxx.xx.xx.xx:2181,xxx.xx.xx.xx:2181
如果希望使用canal的集群模式(推荐使用),记得更改配置使用default-instance.xml,不要使用file-instance.xml配置,如下:
#canal.instance.global.spring.xml = classpath:spring/memory-instance.xml
#canal.instance.global.spring.xml = classpath: