为什么80%的码农都做不了架构师?>>>   

Canal介绍

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

ps. 目前内部版本已经支持 mysql 和 oracle 部分版本的日志解析,当前的 canal 开源版本支持 5.7 及以下的版本 (阿里内部 mysql 5.7.13, 5.6.10, mysql 5.5.18 和 5.1.40/48)

基于日志增量订阅 & 消费支持的业务:

  • 数据库镜像
  • 数据库实时备份
  • 多级索引 (卖家和买家各自分库索引)
  • search build
  • 业务 cache 刷新
  • 价格变化等重要业务消息

前期准备

  • mysql的binlog模式需要是ROW,查看binlog格式命令:show variables like 'binlog_format';
  • 订阅binlog账号需要开启下面3个权限:SELECT, REPLICATION SLAVE, REPLICATION CLIENT,查看权限命令:show grants for 'canal'

Canal部署

项目地址:https://github.com/alibaba/canal ,目前版本为 1.1.1。

修改配置文件conf/canal.properties

下载解压到部署目录,相关配置更改: 修改配置文件 conf/canal.properties

# zk的配置地址
canal.zkServers=192.168.123.123:2181
#关闭netty
canal.withoutNetty = true
# tcp, kafka, RocketMQ
canal.serverMode = kafka
#需要同步的表名
canal.destinations=student,student_extendcanal.instance.global.spring.xml = classpath:spring/default-instance.xml

根据destinations定义,在conf下创建对应目录配置

参照 conf/example/目录复制出 conf/student/ ,每个destinations定义的表对应一个目录 修改 conf/student/instance.properties文件

# 数据库配置
canal.instance.master.address=192.168.123.123:3306canal.instance.dbUsername=canal
canal.instance.dbPassword=canal# 是否开启密码加密解析,使用druid加密,若是密码属于加密的,可以开启,并修改canal.instance.pwdPublicKey
canal.instance.enableDruid=falsecanal.instance.filter.regex=dbname.tablename

修改mq.yml

# kafka地址
servers: 192.168.1.1:9092,192.168.1.2:9092,192.168.1.3:9092
# 重试次数
retries: 3# 队列定义
canalDestinations:- canalDestination: studenttopic: dada-db-dadaabc-studentpartitionsNum: 3partitionHash:dadaabc.student: id- canalDestination: student_extendtopic: dada-db-dadaabc-student-extendpartitionsNum: 3partitionHash:dadaabc.student: id

修改日志配置

修改日志路径 logback.xml

启动

进入bin目录,执行 startup.sh 即可

注意事项

1.如果使用阿里云RDS,由于18小时删除机制,超过18小时恢复需要配置oss相关设置,参见: https://github.com/alibaba/canal/wiki/aliyun-RDS-QuickStart

2.分布式主备需要引用同一个zookeeper配置。

3.如果开启了ROW模式binlog,但消息类型仍然是QUERY,参考下图:

则需要确认mysql设置:binlog-rows-query-log-events设置为OFF,这个问题查了好久。

转载于:https://my.oschina.net/tree/blog/2354699

Binlog同步工具Canal部署使用相关推荐

  1. k8s集群下搭建数据同步工具-canal:canal-admin篇

    k8s集群下搭建数据同步工具-canal:canal-admin篇 前言 容器化 canal-admin 环境准备 k8s集群创建pod canal-admin 前言 本文使用v1.1.4版本的can ...

  2. 大数据同步工具Canal

    目录 1 什么是canal 2 canal能做什么 3 如何搭建canal 3.1 首先有一个MySQL服务器 3.2 安装canal 4 Java客户端操作 5 总结 6 ClientAdapter ...

  3. php阿里的同步工具canal,基于阿里的Canal实现数据同步

    一.开启同步数据库的binlog功能 (1)开启同步数据端的数据库服务(比如我的将一号虚拟机上的mysql数据库作为同步操作数据库) systemctl start mysql.service mys ...

  4. mysql的数据表同步工具 canal的使用

    一  canal的扫盲 1.1 canal的介绍 canal是阿里巴巴旗下的一款开源项目,使用java语言进行开发,基于数据库增量日志解析,提供增量数据订阅与消费的功能.是一款很好用的数据库同步工具. ...

  5. 数据同步工具Canal

    Canal介绍 1.应用场景 在前面的统计分析功能中,我们采取了服务调用获取统计数据,这样耦合度高,效率相对较低,目前我采取另一种实现方式,通过实时同步数据库表的方式实现,例如我们要统计每天注册与登录 ...

  6. 数据库binlog同步工具--otter使用指南

    一. Otter简介 otter是一款基于Java且免费.开源基于数据库增量日志解析,准实时同步到本机房或异地机房的mysql/oracle数据库的解决方案. 官方描述: 阿里巴巴B2B公司,因为业务 ...

  7. 数据同步工具—DataX部署使用

    DataX 部署使用 上一节我们介绍了DataX 的架构原理,它的优缺点,这一节我们看一下DataX的使用 1 安装部署 环境要求 JDK(1.8以上,推荐1.8) Python(推荐Python2. ...

  8. mysql数据实时同步:Canal安装部署、kafka安装、zk安装、mysql安装、Canal Server+Canal Client HA,Canal+mysql+Kafka,相关验证(学习笔记)

    目录 Canal安装部署 1.1. 服务器准备 1.2. 设置主机名并配置hosts 1.3. 免密设置 1.4. 设置ntp时间 1.5. 关闭防火墙 1.6. 关闭selinux 1.7. 安装J ...

  9. mysql binlog 大数据_后起之秀 | MySQL Binlog增量同步工具go-mysql-transfer实现详解

    一. 概述 工作需要研究了下阿里开源的MySQL Binlog增量订阅消费组件canal,其功能强大.运行稳定,但是有些方面不是太符合需求,主要有如下三点: 需要自己编写客户端来消费canal解析到的 ...

最新文章

  1. 咨询公司建议完美批准私有化
  2. python数据导入一个列表_Python基础数据类型list 列表
  3. java.util.concurrent BlockingQueue详解
  4. 洛谷模拟赛 数据结构
  5. 【阿里云课程】如何从零开始完成一个完整的CV项目
  6. 【算法精讲】集成分类与随机森林
  7. linux c编程头文件,如何在Linux中找到C编程语言的头文件?
  8. 仿qq邮箱源码程序_小伙子利用C++实现邮件程序发送和接收
  9. 星空背景JavaScript代码
  10. 装完nvme固态经常蓝屏_NVMe固态硬盘安装Win7蓝屏0x0000007B快速解决方法
  11. Word写作 | 如何在Word中把图片铺满整个页面
  12. java 标点符号_java的标点符号
  13. 为什么Uber微服务架构使用多租户?
  14. html 字体图标转换工具,HTML5 webfont字体图标的使用
  15. 使用Python操作Excel图表之 为最后一个数据点添加数据标签
  16. HTML网页设计.2021.11.19
  17. 从底层结构开始学习FPGA(4)----MUX多路选择器(Multiplexer)
  18. flash按钮脚本祥解
  19. 一次聊个透彻:满二叉树、完全二叉树、二叉搜索树,二叉平衡树
  20. c# imager让图片有圆角unity_使用Unity着色器实现精灵(Sprite)涂鸦效果

热门文章

  1. (学习c++primer5th的重要)c++ primer5th类指针版本hasptr (网上源代码错误) 定义错误
  2. CentOS 7.6 下安装 MySQL8.0.13
  3. java 线上运维_一次java应用线上运维实战
  4. Linux基本信号的使用
  5. zynqNet整体思路框架
  6. 二阶偏微分方程组 龙格库塔法_深度科普---电磁波(三):无激励下的真空中的Maxwell方程组的解...
  7. linux用户带密码迁移 LDAP
  8. 使用 Drools 规则引擎实现业务逻辑,可调试drl文件
  9. scrapy从入门到放弃 学习项目2
  10. [Swift]LeetCode793. 阶乘函数后K个零 | Preimage Size of Factorial Zeroes Function