DEMO:Canal实时同步MySQL内容到Elasticsearch

news/2026/1/19 22:23:08/文章来源:https://www.cnblogs.com/yangykaifa/p/19503875

文章目录

  • Windows环境搭建
  • 基础知识
    • 主从复制原理
    • Cannel 基础
  • 一、安装ES
  • 二、安装Kibana
  • 三、下载并安装Canal
    • 假如后面Canal启动报错,克服方法直达链接
    • 3.1、设置MySQL以支持Canal
    • 3.2、配置canal-deployer(canal-server)
    • 3.3、配置 canal-adapter
    • 3.4、配置canal-admin
  • 四、测试验证同步MySQL到ES
    • 创建ES索引
    • 在MySQL数据库中创建信息
    • 在MySQL数据库中修改内容
    • 对MySQL数据进行删除操作
  • 五、总结

Canal实时同步MySQL数据到Elasticsearch资源包

Windows环境搭建

注意事项:由于不同版本的MySQLElasticsearchCanal会有兼容性问题。

我本地搭建环境使用的版本如下:

软件版本
Elasticsearch:下载地址https://www.elastic.co/cn/downloads/past-releases?product=elasticsearch6.2.2
Kibana:下载地址https://www.elastic.co/cn/downloads/past-releases?product=kibana6.0.0
Canal:下载地址https://github.com/alibaba/canal/releases1.1.8
MySQL8.4
JDK1.8.0_442

基础知识

主从复制原理

MySQL 的主从复制是依赖于 binlog,也就是记录 MySQL 上的所有变化并以二进制形式保存在磁盘上二进制日志文件。

主从复制就是将 binlog 中的数据从主库传输到从库上,一般这个过程是异步的,即主库上的操作不会等待 binlog 同步地完成。
在这里插入图片描述
详细流程如下:

  1. 主库写 binlog:主库的更新 SQL(update、insert、delete) 被写到 binlog;

  2. 主库发送 binlog:主库创建一个 log dump 线程来发送 binlog 给从库;

  3. 从库写 relay log:从库在连接到主节点时会创建一个 IO 线程,以请求主库更新的 binlog,并且把接收到的 binlog 信息写入一个叫做 relay log 的日志文件;

  4. 从库回放:从库还会创建一个 SQL 线程读取 relay log 中的内容,并且在从库中做回放,最终构建主从的一致性。

Cannel 基础

Canel 是一款常用的数据同步工具,其原理是基于 Binlog 订阅的方式实现,模拟一个 MySQL Slave 订阅 Binlog 日志,从而实现 CDC(Change Data Capture),将已提交的更改发送到下游。

主要流程如下:

  1. Canal 服务端向 MySQL 的 master 节点传输 dump 协议;

  2. MySQL 的 master 节点接收到 dump 请求后推送 Binlog 日志给 Canal 服务端,解析 Binlog 对象(原始为 byte 流)转成 Json 格式;

  3. Canal 客户端借助 TCP 协议或 MQ 形式监听 Canal 服务端,同步数据到 ES。

在这里插入图片描述
下面是 Cannel 执行的核心流程,其中 Binlog Parser 主要负责 Binlog 的提取、解析和推送,EventSink 负责内容的过滤 、路由和加工,仅作了解即可。

在这里插入图片描述

一、安装ES

  1. 根据自己所需下载对应 elasticsearch 版本,我这里使用的是 6.2.2 版本
    下载地址:https://www.elastic.co/cn/downloads/past-releases?product=elasticsearch
    在这里插入图片描述

  2. 下载完成后解压 elasticsearch-6.2.2.zip 压缩包到自己本地路径上,解压后目录如下:
    在这里插入图片描述

  3. 执行bin目录下的elasticsearch.bat文件,启动Elasticsearch
    在这里插入图片描述

  4. 测试启动是否成功
    在浏览器输入以下地址:http://127.0.0.1:9200/,看到以下内容表示启动成功:
    在这里插入图片描述

二、安装Kibana

  1. 根据自己所需下载 kibana 版本,我这里使用的是 6.0.0 版本

    下载地址:https://www.elastic.co/cn/downloads/past-releases?product=kibana
    在这里插入图片描述

  2. 解压 kibana-6.0.0-windows-x86_64.zip 压缩包到本地目录下:
    在这里插入图片描述

  3. 执行bin目录下的kibana.bat文件,启动Kibana
    在这里插入图片描述

  4. 测试启动是否成功
    ​ 在浏览器输入以下地址:http://127.0.0.1:5601/,看到以下内容表示启动成功:
    在这里插入图片描述

三、下载并安装Canal

如果后面Canal启动

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

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

相关文章

什么是6S?一张图讲清整理、整顿、清扫、清洁、素养、安全

很多工厂管理问题,表面看是效率低、质量不稳、事故频发, 但你真走进现场一看,往往是另一番景象:通道被料车、纸箱占了一半工位上堆着可能以后会用的东西设备漏油、掉粉,没人说得清是哪天开始的这时候,总会有…

【课程设计/毕业设计】基于django的企业定制化ERP办公系统APP小程序【附源码、数据库、万字文档】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

Docker 部署本地可直接访问的完整服务集(PostgreSQL+Redis+Nginx+Celery+Prometheus+Grafana+Alertmanager)

Docker 部署本地可直接访问的完整服务集(PostgreSQL+Redis+Nginx+Celery+Prometheus+Grafana+Alertmanager)所有命令统一采用 --network host 宿主机网络 + --restart unless-stopped 开机自启 最优核心配置,本地lo…

历年CSP-J初赛真题解析 | 2015年CSP-J初赛

​欢迎大家订阅我的专栏:算法题解:C++与Python实现! 本专栏旨在帮助大家从基础到进阶 ,逐步提升编程能力,助力信息学竞赛备战! 专栏特色 1.经典算法练习:根据信息学竞赛大纲,精心挑选经典算法题目,提供清晰的…

gpu诊断命令

目录1. 最简单 - 查看总体状态2. 查看进程列表和显存3. 查看进程显存占用(CSV 格式,易读)4. 找到占用 GPU 的所有进程 PID5. 查看某个 PID 的详细信息(替换 )6. 杀掉某个进程(替换 )7. 批量杀掉所有占用 GPU 的…

【软考每日一练004】图解内存管理:分页存储地址转换与页面置换算法详解

【软考每日一练004】图解内存管理:分页存储地址转换与页面置换算法详解 1. 题目复现 题目描述: 进程 P 有 8 个页面,页号分别为 0~7,页面大小为 4K。假设系统给进程 P 分配了 4 个存储块,进程 P 的页面变换表如下所示。…

算术包实例:符号代数练习题

练习2.87 以下将对多项式进行算术包构建:点击查看代码 ;;通用操作 (define (add x y) (apply-generic add x y)) (define (mul x y) (apply-generic mul x y)) (define (=zero? x) (apply-generic =zero? x)) ;;多项…

导师严选9个一键生成论文工具,专科生毕业论文轻松搞定!

导师严选9个一键生成论文工具,专科生毕业论文轻松搞定! AI 工具如何让论文写作变得轻松高效 在当前的学术环境中,越来越多的专科生开始借助 AI 工具来辅助完成毕业论文。这些工具不仅能够帮助学生快速生成内容,还能在降低 AIGC 率…

大模型部署测试

目录查看模型路径压测命令安装压力测试工具或者用官方示例 Python 脚本实时监控显存/GPU使用率或者查看特定进程top 或 htop 实时查看或者更精确 查看模型路径 curl http://127.0.0.1:8000/v1/models {"object&qu…

从 EKF 到粒子滤波:定位技术的奇妙之旅与 QT 仿真实现

ekf 扩展卡尔曼滤波定位 qt仿真程序 粒子滤波定位在机器人定位与导航的领域中,扩展卡尔曼滤波(EKF)和粒子滤波是两种极为重要的算法,它们各有千秋,在不同场景下发挥着关键作用。今天咱就结合 QT 仿真程序,…

国产化建设:从“可替代”走向“可控可演进”

一、什么是“国产化”?不是换国产品牌这么简单很多人对“国产化”的理解停留在:把国外软件换成国产软件 把国外服务器换成国产服务器 把国外数据库换成国产数据库但真正的国产化并不是“换品牌”,而是三个层级的建设:1️⃣ 可替代…

PHP vs Python:开发者终极选择指南

性能比较PHP通常用于服务器端脚本,尤其在Web开发中表现优异,执行速度快,尤其在处理HTTP请求时效率高。Python作为通用语言,执行速度略慢于PHP,但因其易读性和丰富的库支持,适用于更广泛的场景,如…

想在 Java 八股文面试中脱颖而出?这1000 道互联网大厂面试题必不可少!

国内的互联网面试,恐怕是现存的、最接近科举考试的制度。以美国为例,北美工程师面试比较重视算法(Coding),近几年也会加入 Design 轮(系统设计和面向对象设计 OOD)和 BQ 轮(Behavior…

9个高效降aigc工具推荐,本科生必看!

9个高效降aigc工具推荐,本科生必看! AI降重工具:论文写作的隐形助手 在当前学术环境中,越来越多的高校开始采用AIGC检测系统来评估论文的原创性。对于本科生而言,如何在保证内容质量的同时有效降低AI生成痕迹&#xff…

【毕业设计】基于django定制化ERP系统APP小程序(源码+文档+远程调试,全bao定制等)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

啃完阿里老哥这套Java面试八股文后,成功收获蚂蚁 offer

我国的八股文确实是独树一帜。以美国为例,北美工程师面试比较重视算法(Coding),近几年也会加入 Design 轮(系统设计和面向对象设计 OOD)和 BQ 轮(Behavioral question,行为面试问题&…

不会建模也能做 3D?2D 原画“充气”变动画的逃课流

对于 2D 原画师来说,“伪 3D 动态” 是最头疼的需求。 想让纸片人转身、蠕动、膨胀,传统方法是画几十张序列帧,不仅还要懂透视,还得保证体积不崩,工作量堪比手绘动画。现在是 2026 年。 面对这种“2D 想要 3D 魂”的需…

致并肩前行的你:一封来自近屿智能的信

大家好。每当招聘季来临,空气中都弥漫着复杂的情绪。我们看到了那些令人羡慕的佳话,也听闻了许多现实的焦虑。我观察到这样一篇帖子,这同时也抛出了一个难题:当一方加速前进,而另一方仍在原地,那份曾经的亲…

源自新西兰的天然馈赠:Newo纽渥有机娟姗鲜牛奶,重新定义家庭健康饮奶标准 - 行业调研院

在追求品质生活的今天,一杯牛奶的选择,关乎的不仅是每日的营养补给,更是一个家庭对健康、纯净与安心生活的承诺。当我们将目光投向全球优质奶源带,来自新西兰怀卡托黄金海岸的Newo纽渥有机娟姗鲜牛奶,正以其无可比…