MySQL BinLog实战应用之二

一、前言

上篇  MySQL Binlog实战应用之一 主要讲了BinLog的开启以及用MySQLBinLog读取BigLog二进制文件,但MySQLBinLog很难直接对接Java,所以有了Canal这个Alibaba开发的用于MySQL增量日志解析,提供增量数据的订阅和消费组件。

二、Canal原理

我们知道MySQL主从复制是Mster将数据变更写入BinLog,然后Slave将Master的BinLog拷贝到它的中继日志,最后重放中继日志完成将数据同步到Slave。

Canal其实它就是参考主从复制原理,将自己伪装成Slave,接收Master推送的二进制日志。

Cannel包括两部分

  • 服务端:将自己伪装成Slave并从Master获取Binlog以供消费端使用。

  • 客户端:订阅服务端数据变更事件,处理后存储到对应的数据仓库中(RDB、HBase、ES)。

Canal的应用:可以用于做数据同步(在线库同步到离线库)、增量数据同步ES等。

三、Canal服务端安装配置

下载解压

Canal同步账号创建及授权

配置文件 conf/example/instance.properties

因为我Linux服务器上安装的是JDK17.用startup.sh启动报了一堆错,只需要将JAVA_OPTS中报错的配置删除即可,另外我机器内存只有1G,需要调整一下堆内存的最大值和初始值。

/bin/startup.sh 启动后可以查看到日志输出,日志没有报错就启动成功了。

四、canal客户端

依赖

消费端代码:类似于MQ的消息接收端

执行UPDATFE语句

接收端收到消息(变更前该记录所有字段值,变更后该记录所有字段值)

mysqlbinlog直接解析,canal要求mysqlBinlog配置为row

注:这里是仅单机环境,我们的场景单机也就可以了,如果要保证可靠性使用多个接收端,需要引入zk来保证同一时间只有一个消费端工作,因为canal通过ack保证必须按顺序消费,以免数据无序造成数据错乱。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

什么是Webpack?它的主要功能是什么?

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…

犀牛8 for Mac – 强大的三维建模软件,轻松实现创意设计

你是否正在寻找一款功能强大、易于使用的三维建模软件?犀牛8 for Mac是你的不二选择!作为最新版本的犀牛系列软件,它汇集了众多令人惊叹的特性,让你能够轻松实现自己的创意设计。 犀牛8 for Mac拥有丰富而强大的三维建模工具&…

Python库Requests的爬虫程序爬取视频通用模版

目录 一、引言 二、Requests库介绍 三、通用视频爬虫模板设计 1、确定目标网站和视频页面结构 2、发送HTTP请求获取页面内容 3、解析HTML内容提取视频链接 4、下载视频文件 四、模板应用与实践 五、注意事项 总结与展望 一、引言 随着互联网的发展,视频内…

机器人仿真-gazebo学习笔记(3)URDF和机器人模型

1.URDF简介 URDF(统一机器人麦哦书格式)是ROS中的重要机器人模型描述格式,ROS提供了URDF文件的c解析器,可以解析URDF文件中使用XML格式的机器人模型。 urdf - ROS Wiki 自己查阅ros官方对URDF的介绍其实会强于大部分网上流传的文章。 1.URDF文件常用的…

uni-app 解决钉钉小程序日期组件uni-datetime-picker不兼容ios问题

最近在使用uni-app开发 钉钉小程序 ,遇到一个ios的兼容性问题 uni-datetime-picker 组件在模拟器上可以使用,在真机上不生效问题 文章目录 1. 不兼容的写法,uni-datetime-picker 不兼容IOS2. 兼容的写法,使用 dd.datePicker 实现。…

记录 vue + vuetify + electron 安装过程

NodeJs 版本: 20 内容来自: Electron Vue.js Vuetify 构建跨平台应用_思月行云的博客-CSDN博客文章浏览阅读61次。Go coding!https://blog.csdn.net/kenkao/article/details/132600542 npm config set registry https://registry.npm.taobao.org np…

MongoDB——MongoDB删除系统自带的local数据库

一、MongoDB删除系统自带的local数据库 1.1、linux环境进入mongo客户端 输入 mongo 命令,进入命令行客户端 进入admin库,并登录,查看所有数据库 #进入admin库 use admin #并登录admin db.auth("username","password")…

【蓝桥杯】2023省赛H题

考察知识点:双向链表,小根堆 完整代码在文章末尾 题目 【问题描述】 给定一个长度为 N 的整数数列: A1,A2,...,AN。你要重复以下操作 K 次 :…

项目经理的三国时代,刘备与刘关张的项目计划

刘备在历史的洪流中抓住了“光复汉室”的战略机会,凭借他的身份和仁义,成功吸引了关羽和张飞两位团队成员。他们三人在桃园结下了深厚的情谊,标志着刘备规划已久的“光复汉室”项目正式启动。 然而,由于刘备在项目管理上的目标不…

[0xGame 2023 公开赛道] week4 crypto/pwn/rev

最后一周结束了,难度也很大,已经超出我这认为的新生程度了。 crypto Orac1e 先看题,题目先是给了加密过的flag然后提供不限次数的解密,不过仅提供解密后unpad的结果。 from Crypto.Util.number import * from Crypto.Cipher i…

Linux | 文件系统

目录 前言 一、预备知识 二、文件相关的系统调用 1、C语言的文件操作 2、系统调用接口 (1)open函数 (2)close函数 (3)write函数 (4)read函数 3、代码实操 三、深入理解文…

高浓度化工废水处理工艺是怎样的

高浓度化工废水处理工艺主要包括以下步骤: 预处理:通过物理、化学和生物等方法对废水进行预处理,以去除其中的悬浮物、油污、重金属等有害物质。常用的预处理方法包括沉淀、过滤、吸附、氧化等。化学氧化:利用氧化剂(…

“没有酒瓶”的新春礼酒,泸州老窖的颠覆性之作

执笔 | 萧 萧 编辑 | 扬 灵 没有想到,新春礼酒还能跳出生肖酒造型桎梏,开创出“没有酒瓶的白酒”。 没有想到,即将要发布的新品就“藏”在每一位参会者都触手可及的餐桌正中。 没有想到,首发定价如此“实诚”,加…

【Git企业开发】第五节.远程操作

文章目录 前言一、理解分布式版本控制系统二、远程仓库 2.1 新建远程仓库 2.2 克隆远程仓库 2.3 向远程仓库推送 2.4 拉取远程仓库总结 前言 一、理解分布式版本控制系统 我们目前所说的所有内容(工作区,暂存区,版本库等等)&#x…

Django-vue-admin 滚动监听,锚点定位目录

就是实现滑动内容,目录也跟着滚动,同时点击目录,内容会滑动到指定位置 试过很多,反正都不适用Django-vue-admin框架,唯有这个功能可以,只是样式按照自己想要的改改就行, https://blog.csdn.ne…

如何让企业配件管理高效又智能!仓库配件出入库管理系统哪家的好用?

在当今快速发展的商业环境中,企业运营的效率和管理的重要性日益凸显。对于许多企业来说,仓库配件管理是一个关键的环节,它不仅涉及到物品的存储和分发,还与企业的成本控制和运营流程紧密相关。然而,管理仓库配件是一项…

NEFU数字图像处理(3)图像分割

一、图像分割的基本概念 1.1专有名词 前景和背景 在图像分割中,我们通常需要将图像分为前景和背景两个部分。前景是指图像中我们感兴趣、要分割出来的部分,背景是指和前景不相关的部分。例如,对于一张人物照片,人物就是前景&…

R语言在生态环境领域中的实践技术应用

R语言作为新兴的统计软件,以开源、自由、免费等特点风靡全球。生态环境领域研究内容广泛,数据常多样而复杂。利用R语言进行多元统计分析,从复杂的现象中发现规律、探索机制正是R的优势。为此,以鱼类、昆虫、水文、地形等多样化的生…

Git 标签(Tag)实战:打标签和删除标签的步骤指南

目录 前言使用 Git 打本地和远程标签(Tag)删除本地和远程 Git 标签(Tag)开源项目标签(Tag)实战打标签删除标签 结语开源微服务商城项目前后端分离项目 前言 在开源项目中,版本控制是至关重要的…

【免费活动】11月4日敏捷武林上海站 | Scrum.org CEO 亲临现场

活动介绍 过去的几年里,外界的风云变幻为我们的生活增添了一些不一样的色彩。在VUCA世界的浪潮里,每一个人都成为自己生活里的冒险家。面对每一次的变化,勇于探索未知,迎接挑战,努力追逐更好的自己。 七月&#xff0…