背景
使用 Canal Admin搭建 Canal Server 集群
部署情况
部署Canal Admin
参考:https://github.com/alibaba/canal/wiki/Canal-Admin-QuickStart
1、下载 canal, 访问 release 页面 , 选择需要的包下载, 如以 1.1.7 版本为例
2、解压:tar -zxvf canal.admin-1.1.7.tar.gz
进入解压目录
3、初始化数据库 conf/canal_manager.sql
4、修改配置,可以直接使用默认配置,修改对应数据库地址即可
命令:vim conf/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: 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
5、启动 Canal Admin
命令:sh bin/startup.sh
6、日志目录logs
使用Canal Admin
参考:https://github.com/alibaba/canal/wiki/Canal-Admin-Guide
1、使用浏览器访问,地址:http://127.0.0.1:8089/,账号密码:admin/123456
2、新增集群
3、修改著配置
# zk 的地址需要指定 canal.zkServers = 127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183 # tcp, kafka, rocketMQ, rabbitMQ canal.serverMode = kafka # 此配置需要修改成 default-instance canal.instance.global.spring.xml = classpath:spring/default-instance.xml # 这个不需要指定,在admin上手动添加 canal.destinations = # 配置kafka地址 kafka.bootstrap.servers = 192.168.1.1:9092,192.168.1.2:9092,192.168.1.3:9092
部署Canal Server
1、下载 canal, 访问 release 页面 , 选择需要的包下载, 如以 1.1.7 版本为例
2、canal-server端配置,使用canal_local.properties的配置覆盖canal.properties
canal_server_01配置如下
# register ip canal.register.ip = 127.0.0.1 # canal server 的端口 canal.port = 11111 # canal server 的metrics 端口 canal.metrics.pull.port = 11112 # canal admin config canal.admin.manager = 127.0.0.1:8089 canal.admin.port = 11110 canal.admin.user = admin canal.admin.passwd = 4ACFE3202A5FF5CF467898FC58AAB1D615029441 # admin auto register canal.admin.register.auto = true canal.admin.register.cluster = canal_test canal.admin.register.name = canal_server_01
canal_server_02配置如下
# register ip canal.register.ip = 127.0.0.1 # canal server 的端口 canal.port = 11114 # canal server 的metrics 端口 canal.metrics.pull.port = 11115 # canal admin config canal.admin.manager = 127.0.0.1:8089 canal.admin.port = 11113 canal.admin.user = admin canal.admin.passwd = 4ACFE3202A5FF5CF467898FC58AAB1D615029441 # admin auto register canal.admin.register.auto = true canal.admin.register.cluster = canal_test canal.admin.register.name = canal_server_02
3、启动admin-server即可。或在启动命令中使用参数:sh bin/startup.sh local 指定配置
使用Canal Server
1、查看 canal admin2、新建instance,选择载入模板,设置实例名,与关联对应集群
# canal 实例作为mysql从节点ID canal.instance.mysql.slaveId=20 # canal 复制的mysq 主节点信息 canal.instance.master.address=127.0.0.1:3306 # 账号/密码 canal.instance.dbUsername=canal canal.instance.dbPassword=canal # 配置消息的topic地址 canal.mq.topic=canal_test
3、启动实例
4、修改数据库,验证数据是否同步到 kafka