From c0951aecc0737a07298b78f4a39092d2fa59afab Mon Sep 17 00:00:00 2001 From: agapple Date: Sat, 29 Jul 2023 11:25:50 +0800 Subject: [PATCH] =?UTF-8?q?Updated=20=E7=AE=80=E4=BB=8B=20(markdown)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 简介.md | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/简介.md b/简介.md index be76948..6b1c252 100644 --- a/简介.md +++ b/简介.md @@ -22,14 +22,14 @@

工作原理

mysql主备复制实现

-


从上层来看,复制分成三步:

+


从上层来看,复制分成三步:

  1. master将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary log events,可以通过show binlog events进行查看);
  2. slave将master的binary log events拷贝到它的中继日志(relay log);
  3. slave重做中继日志中的事件,将改变反映它自己的数据。

canal的工作原理:

-

+

原理相对比较简单:

  1. canal模拟mysql slave的交互协议,伪装自己为mysql slave,向mysql master发送dump协议
  2. @@ -37,7 +37,7 @@
  3. canal解析binary log对象(原始为byte流)

架构

-

+

说明:

Server设计

-


+


server代表了一个canal的运行实例,为了方便组件化使用,特意抽象了Embeded(嵌入式) / Netty(网络访问)的两种实现

增量订阅/消费设计

-

+

具体的协议格式,可参见:CanalProtocol.proto

get/ack/rollback协议介绍:

流式api设计:

-

+