首页 > 其他分享 >canal数据同步工具介绍与应用

canal数据同步工具介绍与应用

时间:2024-08-16 13:22:50浏览次数:12  
标签:canal Canal 同步 kafka instance 工具 properties rocketmq

canal服务

canal介绍

‌1、Canal是‌阿里巴巴开源的‌MySQL增量数据订阅和消费工具,通过模拟MySQL的‌slave与‌master交互,捕获‌binary log事件。
2、Canal的实现基于MySQL的主从复制原理,通过模拟slave的交互协议,向master发送dump请求,master收到请求后开始推送binary log给slave(实际上是Canal),Canal解析这些日志事件并将其转换为JSON格式的数据,然后发送到指定的存储目的地,如MySQL、Kafka、Elastic Search等。‌
3、Canal支持‌HA(高可用),其实现机制依赖‌Zookeeper来实现。
4、Canal可以适应不同的网络环境,包括云环境和本地环境,支持多种网络模型如虚拟局域网(VLAN)、‌VXLAN、Overlay等,并且可以与各种网络设备和云服务提供商进行集成。

canal版本与环境

单机版:适用于开发测试环境或小型生产环境。
配置简单,易于部署和管理。

HA版本
适合生产环境,特别是对数据一致性和系统稳定性有高要求的场景。
可以配置多个 Canal 实例,实现故障转移和负载均衡。
需要更复杂的配置和管理,以确保高可用性

Canal 版本与 JDK 版本的兼容性
canal安装包
canalv1.1.5版本以上就不支持jdk1.8,需要升级到jdk11

canal 服务集

canal.adapter

Canal Adapter 是 Canal 项目的一个重要组成部分,它负责将 Canal Server 采集的 MySQL binlog 数据转换成特定格式,并发送到不同的目标系统。
canal.admin
Canal Admin 是 Canal 项目的一个管理工具,它提供了一个 Web 界面,用于监控和管理 Canal 的各个组件。

canal.deployer

Canal Deployer 是 Canal 项目中的一个模块,它主要用于部署和管理 Canal Server。通过 Canal Deployer,用户可以方便地启动、停止 Canal Server,并配置相关的参数。

canal.example

Canal Example 是 Canal 项目中的一个示例目录,它包含了 Canal 的基本使用案例和配置示例。

canal应用

场景:

1、增量同步
默认是增量方式
直接查看deployer服务下的instance.properties文件

2、全量同步
修改deployer服务下的instance.properties文件
binlog文件:
canal.instance.master.journal.name=binlog文件全名称
canal.instance.master.position=0
canal.instance.master.timestamp=10位时间戳
删除服务端的meta.dat文件:这个文件记录 canal 已经消费的位置等信息

3、中间件集成同步
修改instance.properties文件
kafka
部署 Zookeeper 和 Kafka
canal.properties配置文件:
####tcp, kafka, rocketMQ, rabbitMQ
canal.serverMode = kafka
##################################################
######### Kafka #############
##################################################
kafka.bootstrap.servers = 127.0.0.1:9092 多个逗号隔开
kafka.acks = all
kafka.compression.type = none
kafka.batch.size = 16384
kafka.linger.ms = 1
kafka.max.request.size = 1048576
kafka.buffer.memory = 33554432
kafka.max.in.flight.requests.per.connection = 1
kafka.retries = 0
kafka.kerberos.enable = false
kafka.kerberos.krb5.file = “…/conf/kerberos/krb5.conf”
kafka.kerberos.jaas.file = “…/conf/kerberos/jaas.conf”
rocketmq
安装 RocketMQ
canal.properties配置文件:
tcp, kafka, rocketMQ, rabbitMQ
canal.serverMode = rocketMQ
##################################################
######### RocketMQ #############
##################################################
rocketmq.producer.group = test
rocketmq.enable.message.trace = false
rocketmq.customized.trace.topic =
rocketmq.namespace =
rocketmq.namesrv.addr = 127.0.0.1:9876
rocketmq.retry.times.when.send.failed = 0
rocketmq.vip.channel.enabled = false
rocketmq.tag =
修改instance.properties文件
#mq config
canal.mq.topic=canal_topic

canal常见问题

xml配置问题

Error creating bean with name ‘metaHistoryDAO’ defined in class path
resource [spring/tsdb/h2-tsdb.xml] 去掉:canal.properties配置文件中的h2配置
在这里插入图片描述

连接认证问题

com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Public Key Retrieval is not allowed
修改 MySQL 数据库连接字符串 URL,在末尾追加 “?allowPublicKeyRetrieval=true” 参数

jar版本问题

Mysql连接jar版本 mysql-connector-java-5.1.48.jar
切换成mysql-connector-java-8.0.28.jar

连接问题

Communications link failure。The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
解决:
数据库连接地址?allowPublicKeyRetrieval=true&useUnicode=true&characterEncoding=utf8&useSSL=false&tinyInt1isBit=true&serverTimezone=Asia/Shanghai&allowMultiQueries=true&rewriteBatchedStatements=true

标签:canal,Canal,同步,kafka,instance,工具,properties,rocketmq
From: https://blog.csdn.net/YHM_MM/article/details/141254862

相关文章

  • 打卡信奥刷题(568)用Scratch图形化工具信奥B2082[普及组/提高] B2083 画矩形
    画矩形题目描述根据输入的四个参数:a,b,c,f......
  • 你有听过这个出题工具吗?
    本篇文章给大家分享的是一款个人觉得好用的出题工具--匡优AI出题。没听过或者不知道咋用的小伙伴们,快看过来一篇文章让你秒懂匡优AI自动出题!匡优AI出题工具是一款利用人工智能技术帮助用户快速、高效生成试题的工具。它不仅解决了用户在出题过程中遇到的烦恼和压力,还提供了一......
  • 比较好用的,偏免安装绿色版的工具软件
    作者:KaneCao链接:https://www.zhihu.com/question/356224162/answer/2577665684来源:知乎1.截图工具-Snipate/FSCapturesnipate官网:https://zh.snipaste.com/让Snipaste帮你提高工作效率;Snipaste是一个简单但强大的截图工具,也可以让你将截图贴回到屏幕上!下载并打开Snipaste......
  • Linux:开发工具(1)
    一、软件包管理器yum1.1Linux下安装软件的方式1、源代码安装(直接给你源码,你去进行编译——对用户要求太高!)    但是这样的话,就不光是源码,还需要把别人的一些相关编译环境配置也得搞过来,比如说我这个代码是用C语言写的,那么我们就需要C语言相关的编译器和库。对使用......
  • 使用JMC和socket端口诊断工具找出问题点实例1
    故障上报时间​1月3号下午3点10分原因​应用程序socket使用量累计过多,导致141服务器socket请求数超过linux服务器限制,导致浏览器连接不上。分析过程​先对事故时间段的生产环境域日志、应用日志、应用监控日志进行检查,其中socket属于操作系统管理资源,不在应用监控范......
  • (路由卷1)-38-强大工具-Route-Map
    <ccie实现考试distribute-list>分部控制列表只一直某些特定的路由不被发送或接受发送列表只是一个指令,指示路由器在交换路由信息时对路由信息进行过滤,它本身不定义过滤条件,它通过调用访问控制列表(acl)或前缀列表对路由信息更新进行过滤,使路由器由条件地发送或收发路由信息。注......
  • day04(C高级)编译工具
    编译工具一.gcc编译工具预处理:#开头内容,展开头文件,替换宏定义,不会进行语法检查。gcc-Exx.c-oxx.i编译:检查语法错误,词法错误,将.i文件转换成.s汇编文件。gcc-Sxx.i-oxx.s汇编:将汇编文件转换成二进制文件(不可执行)gcc-cxx.s-oxx.o链接:链接库文件,将不可执......
  • 云计算实训30——mysql主从复制同步、mysql5.7版本安装配置、python操作mysql数据库、
    一、mysql主从复制及同步1、mysql主从自动开机同步2、配置mysql5.7版本mysql-5.7.44-linux-glibc2.12-x86_64.tar启动服务、登录对数据库进行基本操作3、使用python操纵mysql数据库4、编辑python脚本自动化操纵mysql数据库二、mycat读写分离......
  • 织梦PC和手机网站同步方案
    PC和移动站共用一套数据库,两套CMS系统,操作方法:首先默认安装PC端CMS系统到服务器,然后再复制PC端完整CMS到移动端网站目录选择PC或者M端进入后台,创建如下全局变量:在static.example.com目录下按照之前章节的介绍创建对应的目录在服务器nginx上配置好访问规则:#禁......
  • 免费Excel数据批量转Word工具
     下载地址:https://pan.quark.cn/s/5d4cff261d83一个可以快速的将excel数据批量按照word模板进行转换的小工具。功能:1、自定义word模板,嵌入差值表达式2、批量打包下载3、自定义导出word文件名,支持嵌入excel字段4、缓存导出word文件名5、离线可用6、性能极高使用教程:1......