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


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启动

posted @ 2026-01-19 22:15  yangykaifa  阅读(0)  评论(0)    收藏  举报