Canal -- mysql的binlog增量订阅组件

Canal是一款模拟MySQL主从复制的组件,它伪装成slave节点接收master的binlog并解析,用于实现数据库的增量同步。本文介绍了Canal的工作原理,包括master-slave复制、canal与mysql交互、canal架构、部署模式以及在Springboot中的集成应用。
摘要由CSDN通过智能技术生成

一,简介

有关canal的详细介绍可以到官网查看canal官网介绍

二,工作原理

1,mysql的master-slave主从复制原理

2,canal的工作原理

canal模拟mysql的master-slave主从复制的交互协议,将自己伪装为一个slave节点,向mysql的master节点发送dump协议。

mysql的master节点接收到slave(canal)的dump请求,开始向slave(canal)推送 binary log 即binog。

caael将 binary log 对象解析成自己的数据类型(最初为字节流)。

3,canal的server-client交互

4,canal整体架构

5,canal部署模式

6,Springboot中集成canal

      下载及配置canal server可从网上很多的其他博客中参考,这里就省略了。。。

       pom文件中加入依赖

        <dependency>
            <groupId>com.alibaba.otter</groupId>
            <artifactId>canal.client</artifactId>
            <version>1.1.3</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba.otter</groupId>
            <artifactId>canal.protocol</artifactId>
            <version>1.1.3</version>
        </dependency>

    yml中配置

  canal:
    server:
      hostIp: 127.0.0.1
      port: 11111
      destination: example
      username:
      password: 
      batchSize: 1000
      zkServers: 127.0.0.1:2181

定义一个canal client的基类,用于连接canal服务端,获取服务端监听到的binlog数据,对数据做基本的处理

package com.chen.microservice.canal;

import com.alibaba.otter.canal.client.CanalConnector;
import com.alibaba.otter.canal.protocol.CanalEntry;
import com.alibaba.otter.canal.protocol.Messa
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值