docker环境下Canal的安装使用

一 、Canal介绍

canal是阿里巴巴旗下的一款开源项目,纯Java开发。基于数据库增量日志解析,提供增量数据订阅&消费,目前主要支持了MySQL(也支持mariaDB)。

vi conf/example/instance.properties

背景
早期,阿里巴巴B2B公司因为存在杭州和美国双机房部署,存在跨机房同步的业务需求。不过早期的数据库同步业务,主要是基于trigger的方式获取增量变更,不过从2010年开始,阿里系公司开始逐步的尝试基于数据库的日志解析,获取增量变更进行同步,由此衍生出了增量订阅&消费的业务,从此开启了一段新纪元。ps. 目前内部使用的同步,已经支持mysql5.x和oracle部分版本的日志解析了;

工作原理

原理相对比较简单:
canal模拟mysql slave的交互协议,伪装自己为mysql slave,向mysql master发送dump协议,mysql master收到dump请求,开始推送binary log给slave(也就是canal),canal解析binary log对象(原始为byte流);

二 、docker下安装配置启动Canal

下载
首先,下载canal安装包:canal下载地址

安装步骤

先创建canal文件夹  我的目录是root/home/canal

# 下载并启动镜像
docker run --name canal -d canal/canal-server
# 创建文件夹并复制文件
mkdir /root/home/canal
chmod 777  /root/home/canal
docker cp canal:/home/admin/canal-server/conf/canal.properties /root/home/canal
docker cp canal:/home/admin/canal-server/conf/example/instance.properties /root/home/canal
# 进入容器,修改核心配置canal.properties 
docker exec -it canal /bin/bash
# 或 cd /root/home/canal/conf  进行修改
# 修改配置如下:
#    instans.properties文件 
canal.instance.master.address=192.168.128.128:3306
#instance.properties文件
# table regex
#canal.instance.filter.regex=.*\\..*
#监听配置
canal.instance.filter.regex=shop_goods.ad_items
#关闭容器
docker stop canal
 
#移除容器
docker rm canal

# 重新启动镜像
docker run --name canal -p 11111:11111 -d \
-v /root/canal/instance.properties:/root/home/canal/conf/example/instance.properties \
-v /root/canal/canal.properties:/root/home/canal/conf/canal.properties \
-v /root/canal/logs/:/root/home/canal/logs/ \
canal/canal-server

配置完成后,重启canal容器

docker restart canal

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要在Docker安装Canal,可以按照以下步骤进行操作: 1. 首先,确保已经安装DockerDocker Compose。如果没有,请先安装它们。 2. 创建一个新的文件夹,用于存放Canal的配置文件和数据。例如,可以在命令行中运行以下命令来创建一个名为`canal`的文件夹: ``` mkdir canal ``` 3. 在`canal`文件夹中创建一个名为`docker-compose.yml`的文件,并将以下内容复制粘贴到该文件中: ```yaml version: '3' services: canal-server: image: canal/canal-server:v1.1.5 ports: - 11111:11111 volumes: - ./config:/home/admin/canal-server/conf - ./logs:/home/admin/canal-server/logs - ./data:/home/admin/canal-server/data ``` 4. 在`canal`文件夹中创建一个名为`instance.properties`的文件,并将以下内容复制粘贴到该文件中: ``` canal.instance.master.address=127.0.0.1:3306 canal.instance.dbUsername=your_username canal.instance.dbPassword=your_password canal.instance.connectionCharset=UTF-8 ``` 将`your_username`和`your_password`替换为实际的MySQL数据库用户名和密码。 5. 在命令行中切换到`canal`文件夹,并运行以下命令启动Canal服务: ``` docker-compose up -d ``` 这将启动Canal服务,并将其绑定到主机的`11111`端口。 现在,Canal已经在Docker安装并运行了。你可以通过访问`127.0.0.1:11111`来验证它是否正常工作。请注意,你需要在`instance.properties`文件中配置正确的MySQL数据库连接信息才能使Canal与数据库进行通信。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

missterzy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值