canal-admin设计上是为canal提供整体配置管理、节点运维等面向运维的功能,提供相对友好的WebUI操作界面,方便更多用户快速和安全的操作
安装canalAdmin 下载安装包最新版本v1.1.5官方下载地址
当然linux环境也可以直接 wget https://github.com/alibaba/canal/releases/download/canal-1.1.5/canal.admin-1.1.5.tar.gz
不过这就看服务器的网络环境如何了。
解压安装包 得到如下目录 tar -zvxf canal.admin-1.1.5.tar.gz
进入conf目录,有一个 canal_manager.sql的文件,此文件包含了admin运行所需要的数据库信息,主要用来保存canalServer的集群,instance等信息。选择合适的数据库实例执行此文件即可。
修改配置文件canal.admin本质就是一个springboot工程,进入conf目录,修改application.yaml
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: root
password: 123456
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
server.port admin服务暴露端口可修改
spring.datasource.address:上面canal_manager.sql初始化的数据库地址
username 和 password 对应数据的用户名和密码
其他地方可以不用修改。
进入bin目录 执行 ./startup.sh
浏览器输入服务器地址:8089 若启动失败可进入logs目录查看日志。
默认账号密码:admin / 123456
右上角账号管理可以修改密码
- 集群:对应一组canal-server,多个canal-server组成一个集群
- server:每个canal-server对应一种业务类型或一种同步方式
- instance: 每个server可以对应多个instance,每个instance代表一个业务
例如:serverA用kafka做消息中间件,serverB用rocketMQ
serverA.instance1 同步table1,serverA.instanceB同步table2
集群配置
集群模式下,多个server共享一个canal.propertis配置,canalAdmin提供了配置模板,可以直接载入模板
配置模板中需修改项:
- canal.zkServers: zk地址(127.0.0.1),zk集群多个地址逗号隔开
- canal.serverMode : kafka (可以是kafka,rocketMQ等)
- canal.instance.global.spring.xml :classpath:spring/default-instance.xml
- kafka.bootstrap.servers :kafka集群地址
其他配置项(非必要)可参考官方文档自定义修改,修改完成后点击保存.
新建instanceinstance名称自定义,选择刚才新建的集群,直接载入模板
配置模板中需修改项:
- canal.instance.master.address= 127.0.0.1:3306(需同步的数据库地址)
- canal.instance.dbUsername=root 用户名
- canal.instance.dbPassword=123456 密码
- canal.instance.filter.regex = dbName.table1,dbName.table2 (支持正则)
- canal.mq.topic= topicName(若配置此项,则所有表的同步为同一个topic)
- canal.mq.dynamicTopic = topic1:dbName.table1,topic2:dbName.table2(支持正则)
- canal.mq.partitionsNum = 3 分区数
- canal.mq.partitionHash = .*\..*:id 所有topic根据对应表的id哈希分区
其他配置项(非必要)可参考官方文档自定义修改,修改完成后点击保存.官方链接
安装canal-server 下载安装包最新版本v1.1.5官方下载地址
或:wget https://github.com/alibaba/canal/releases/download/canal-1.1.5/canal.deployer-1.1.5.tar.gz
解压 修改配置文件进入conf目录,因为这里是admin+集群配置,所以需要修改的配置文件为canal_local.properties
需修改项:
- canal.register.ip = 服务器IP,建议直接指定,若不指定多网卡情况下自动注册时可能ip不对
- canal.admin.manager = 192.168.70.150:8089 admin服务的地址
- canal.admin.port / user /password 前面admin默认情况下不用修改
- canal.admin.register.auto = true 自动注册
- canal.admin.register.cluster = test 前面集群名称
- canal.admin.register.name = server_1 自定义server名称
在另一台服务器上重复 上面的解压和修改配置操作
启动server回到/bin目录,执行 ./startup.sh 启动成功后回到admin页面能看到两个server实例
instance会选择其中一个server实例运行
至此,admin+server集群部署完成。
集群原理多个server节点利用zookeeper组成HA集群,集群中同时只有一个节点处于active状态,来解析binlog,binlog的解析位置会同步道zookeeper,若某个阶段故障掉线,另一个节点会自动顶上。
集群验证启动多个server实例后,查看instance所属主机,停掉该主机后,instance所属主机自动切换
同时也可以在zookeeper节点 /otter/canal/cluster 查看
修改数据库观察是否有kafka消息产生。



