canal本地搭建以及运行

news2024/9/24 15:24:03

具体的文档可参考官网文档:https://github.com/alibaba/canal/wiki

canal [kə'næl],译意为水道/管道/沟渠,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费

工作原理

  • canal 模拟 MySQL slave 的交互协议,伪装自己为 MySQL slave ,向 MySQL master 发送 dump 协议
  • MySQL master 收到 dump 请求,开始推送 binary log 给 slave (即 canal )
  • canal 解析 binary log 对象(原始为 byte 流)

环境准备:

1. 操作系统

    a.  纯java开发,windows/linux均可支持

    b.  jdk建议使用1.6.25以上的版本,稳定可靠

2. mysql要求

   a. 当前的canal开源版本支持5.7及以下的版本(阿里内部mysql 5.7.13, 5.6.10, mysql 5.5.18和5.1.40/48),ps. mysql4.x版本没有经过严格测试,理论上是可以兼容

   b. canal的原理是基于mysql binlog技术,所以这里一定需要开启mysql的binlog写入功能,并且配置binlog模式为row.

我们可以找到数据库配置文件my.cnf或者 my.ini文件,开启binlog写入功能,在Linux电脑下没有找到配置文件,可在/etc/my.cnf 在新增一个配置,mysql服务器会去扫描此文件。

在my.cnf文件下配置如下信息:

[mysqld]  
#开启binlog日志
log-bin=mysql-bin  
#选择row模式   
binlog-format=ROW 
#配置mysql replaction需要定义,不能和canal的slaveId重复
server_id=1  

配置好后进行服务重启进行生效,可以通过如下命令进行验证是否开启成功

show VARIABLES like 'log_bin';

显示‘ON’,表示开启成功

 c.  canal的原理是模拟自己为mysql slave,所以这里一定需要做为mysql slave的相关权限

#创建canal用户 密码canal
CREATE USER canal IDENTIFIED BY 'canal';    
# 对canal用户赋予权限
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%';  
FLUSH PRIVILEGES; 
#进行验证,显示canal用户相关的权限
show GRANTS for canal;

 
 

开始搭建

从GitHub上下载源码到本地,可在tags中选择1.1.7版本

modules中deployer就是canal的服务端,结构如下:

修改example实例配置信息,配置成上述设置的canal用户:

#自己本地实例库信息
canal.instance.master.address=127.0.0.1:3308
#对应的自己的用户名和密码
canal.instance.dbUsername=canal
canal.instance.dbPassword=canal

进行启动:

window对应:bin/startup.bat.   linux对应:bin/startup.sh

在本地dubug启动的时候,可以直接运行CanalLauncher(启动类)

查看server日志:

logs/canal/canal.log

查看instance实例:

logs/example/example.log

如上服务端已启动成功,开始监听binlog日志

客户端验证:

我们刚开始通过最简单的tcp模式进行订阅变更,

可通过启动类运行也可运行命令,进行订阅数据变更,启动后,可以自行修改配置的instance中的数据,监听日志会进行打印

至此单机模式的canal服务端以及客户端验证已本地搭建完成,后续进行集群模式,和订阅推送的其他几种模式

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1364837.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

解决Canvas画图清晰度问题

最近在开发Web端远程桌面的时候遇到的一个问题,解决记录一下,分享给各位有需要用到的朋友。 先吹下水:远程桌面的连接我们是通过Websocket连接后,后端不断返回远程端的界面二进制数据流,我接收到之后转为图像&#xf…

mxxWechatBot微信机器人自定义接口支持配置多个关键词、多个群聊和好友

大家伙,我是雄雄,欢迎关注微信公众号:雄雄的小课堂。 前言 注意: 免责声明:该工具仅供学习使用,禁止使用该工具从事违法活动,否则永久拉黑​封禁账号。本工具我不会绝对保证对你的账号没有影响…

案例精选|淄博绿能燃气工程有限公司日志审计系统建设方案

淄博绿能燃气工程有限公司,成立于1994年,前身为淄博市煤气公司管道液化气分公司。公司业务主要涉及天然气、液化气等市政工程施工及城镇燃气供应等领域,具有市政公用工程施工总承包二级资质,《压力管道安装许可证》压力管道安装GB…

看图识熊(三)

使用Windows Machine Learning加载ONNX模型并推理 环境要求 Windows Machine Learning支持在Windows应用程序中加载并使用训练好的机器学习模型。Windows 10从10.0.17763.0版本开始提供这套推理引擎,所以需要安装17763版本的Windows 10 SDK进行开发,并…

实战Flink Java api消费kafka实时数据落盘HDFS

文章目录 1 需求分析2 实验过程2.1 启动服务程序2.2 启动kafka生产 3 Java API 开发3.1 依赖3.2 代码部分 4 实验验证STEP1STEP2STEP3 5 时间窗口 1 需求分析 在Java api中,使用flink本地模式,消费kafka主题,并直接将数据存入hdfs中。 flin…

秒懂百科,C++如此简单丨第十五天:指针

目录 必看信息 Everyday English 前言 📝了解指针 📝定义指针 📝分析指针 📝运用指针 总结 必看信息 ▶本篇文章由爱编程的小芒果原创,未经许可,严禁转载。 ▶本篇文章被收录于秒懂百科&#xff0c…

网络层协议及IP编址

0x00 前言 本节为网络层协议及IP编址内容 IP地址的范围:0.0.0.0-255.255.255.255 IP分为网络位以及主机位。子网划分就是向主机位借位。 网络层协议 IPICMP(internet Control message protocol)IPX IP协议的作用 为网络层的设备提供逻…

2023湾区产城创新大会:培育数字化供应链金融新时代

2023年12月26日,由南方报业传媒集团指导,南方报业传媒集团深圳分社主办的“新质新力——2023湾区产城创新大会”在深圳举行。大会聚集里国内产城研究领域的专家学者以及来自产业园区、金融机构、企业的代表,以新兴产业发展为议题,…

【计算机网络】网络基础--协议/网络协议/网络传输流程/地址管理

文章目录 一、计算机网络背景二、协议1.协议是什么2.为什么要有协议 三、网络协议1.为什么要进行协议分层2.OSI七层模型3.TCP/IP五层(或四层)模型 四、网络传输基本流程1.协议报头2.局域网3.数据包封装和分用4.网络传输流程图 五、网络中的地址管理1.认识IP地址2.认识MAC地址3.…

C++与数据库MySQL锁——模拟订票(事务)

假设订票的时候,好几个人同时进入,查看这张票是否售出,假如同时购买了这张票,那对于售票行业来说,可能就会发生低级错误。那么如何避免这类事情发生呢? 解决办法: 在一个人访问的时候&#xf…

DataFunSummit:2023年知识图谱在线峰会-核心PPT资料下载

一、峰会简介 AIGC,ChatGPT以及发布的GPT-4相信已经给大家带来足够的冲击,那么对于知识图谱的应用产生哪些变化和变革?知识图谱在其中如何发挥作用呢?通过LLM是否有可能辅助创建通用大规模知识图谱?AIGC时代下行业知识…

burpsuite专业版的安装和破解(2024年最新)

burpsuite专业版的安装和破解(2024年最新) 简介视频教程下载BP专业版第一步第二步:下载第三步第四步:打开powershell界面第五步:在powershell中执行BurpLoaderKeygen.jar文件第六步:破解第七步:…

聚道云软件连接器,助力某钢铁行业公司实现发票信息自动同步

客户介绍: 某钢铁行业公司是一家大型现代化民营钢铁企业,拥有覆盖钢铁全产业链的冶金装备、技术和全过程信息系统。公司业务涉及钢铁、煤炭、房产等行业,多年来一直保持着稳健的发展态势。 添加图片注释,不超过 140 字&#xff0…

VlnPlot画的其实不是原始数据

昨天的推文描述了让小提琴图肚子变大的做法:让你的小提琴肚子大起来‍‍‍‍‍‍‍‍‍‍‍‍‍ 在此说明:这种不考虑后果,就让肚子大起来的做法是不严谨的。如需使用,建议将原始图和修改图放在一起对比,且在文章中注…

vue3+echart绘制中国地图并根据后端返回的坐标实现涟漪动画效果

1.效果图 2.前期准备 main.js app.use(BaiduMap, {// ak 是在百度地图开发者平台申请的密钥 详见 http://lbsyun.baidu.com/apiconsole/key */ak: sRDDfAKpCSG5iF1rvwph4Q95M6tDCApL,// v:3.0, // 默认使用3.0// type: WebGL // ||API 默认API (使用此模式 BMapBMapGL) });i…

K210基础实验系列

CanMV K210 开发板: CanMV K210 是由 01Studio 设计研发,基于嘉楠科技边缘计算芯片 K210 ( RSIC V 架构, 64 位双核)方案的一款开发板,采用硬件一体化设计( K210 核心板、 摄像头、 LCD 集成在一个…

服务器内存不足怎么办?会有什么影响?

服务器内存,也被称为RAM(Random Access Memory),是一种临时存储设备,用于临时存放正在运行的程序和数据。它是服务器上的超高速存储介质,可以快速读取和写入数据,提供给CPU进行实时计算和操作。…

localhost和127.0.0.1的区别是什么

今天在网上逛的时候看到一个问题,没想到大家讨论的很热烈,就是标题中这个: localhost和127.0.0.1的区别是什么? 前端同学本地调试的时候,应该没少和localhost打交道吧,只需要执行 npm run 就能在浏览器中打…

Priors in Deep Image Restoration and Enhancement: A Survey

深度图像恢复和增强中的先验:综述 论文链接:https://arxiv.org/abs/2206.02070 项目链接:https://github.com/VLIS2022/Awesome-Image-Prior (Preprint. Under review) Abstract 图像恢复和增强是通过消除诸如噪声、模糊和分辨率退化等退化…

【北邮国院大四上】Business Technology Strategy 企业技术战略

北邮国院电商大四在读,本笔记仅为PPT内容的整理与翻译,并不代表本课程的考纲及重点,仅为本人复习时方便阅读与思考之作。 写在前面 大家好,欢迎来到大学期间的最后一门课程,本门课程是中方课,所以很庆幸的…