淘东电商项目(22) -Canal数据同步框架

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 淘东电商项目(22) -Canal数据同步框架

引言

在上一节《淘东电商项目(21) -Redis如何与数据库状态保持一致?》,主要通过了Redis事务与数据库事务同步来实现数据同步。

电商项目代码已提交至Github,有兴趣的同学可以下载来看看:https://github.com/ylw-github/taodong-shop

那MySQL与Redis数据同步,除了上一节课的方式,还有其它方式来实现吗?其实阿里巴巴已经有推出一款框架解决了,就是本文要将的Canal。

本文目录结构:

l____引言

l____ 1.Canal产生背景

l____ 2.Canal特性

l____ 3.Canal原理

l____总结

1.Canal产生背景

Github地址:https://github.com/alibaba/canal

早期,阿里巴巴B2B公司需要在美国和中国杭州之间同步服务器的数据。以前的数据库同步机制是基于trigger以获得增量更新的。从2010年开始,阿里巴巴集团开始使用数据集二进制日志获取增量更新并跨服务器同步数据,这催生了我们的增量订阅和消费服务(现已在阿里云中提供)并开始了一个新时代。

2.Canal特性

Canal是基于MySQL二进制日志的高性能数据同步系统。Canal在阿里巴巴集团(包括https://www.taobao.com)中被广泛使用,以提供可靠的低延迟增量数据管道。

Canal Server能够解析MySQL Binlog并订阅数据更改,而Canal Client可以实现将更改广播到任何地方,例如数据库和Apache Kafka。

具有以下特点:

  • 支持所有平台。
  • 支持由Prometheus支持的细粒度系统监视。
  • 支持通过不同方式(例如通过GTID)解析和预订MySQL Binlog。
  • 支持高性能,实时数据同步。(查看更多的性能)
  • Canal Server和Canal Client均支持由Apache ZooKeeper支持的HA /可伸缩性
  • Docker支持。

3.Canal原理

Canal利用的是MySQL主从复制的原理实现:

复制遵循三步过程:

  • 主服务器将更改记录到binlog中(这些记录称为binlog事件,可以通过来查看show binary events)
  • 从服务器将主服务器的二进制日志事件复制到其中继日志。
  • 中继日志中的从服务器重做事件将随后更新其旧数据。

最后演变成如下架构了:

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
16天前
|
canal 消息中间件 关系型数据库
Canal作为一款高效、可靠的数据同步工具,凭借其基于MySQL binlog的增量同步机制,在数据同步领域展现了强大的应用价值
【9月更文挑战第1天】Canal作为一款高效、可靠的数据同步工具,凭借其基于MySQL binlog的增量同步机制,在数据同步领域展现了强大的应用价值
104 4
|
30天前
|
canal 关系型数据库 MySQL
"揭秘阿里数据同步黑科技Canal:从原理到实战,手把手教你玩转MySQL数据秒级同步,让你的数据处理能力瞬间飙升,成为技术界的新晋网红!"
【8月更文挑战第18天】Canal是一款由阿里巴巴开源的高性能数据同步系统,它通过解析MySQL的增量日志(Binlog),提供低延迟、可靠的数据订阅和消费功能。Canal模拟MySQL Slave与Master间的交互协议来接收并解析Binary Log,支持数据的增量同步。配置简单直观,包括Server和Instance两层配置。在实战中,Canal可用于数据库镜像、实时备份等多种场景,通过集成Canal Client可实现数据的消费和处理,如更新缓存或写入消息队列。
233 0
|
4月前
|
消息中间件 NoSQL Java
【Redis系列】我看你们项目用的Redis主从,数据同步了解吗
面试官:说说Redis数据同步。是这样的,Redis有一个叫命令传播的概念,如果像面试官说的这种场景,再使用上面我提到的AOF缓冲区就有点浪费内存空间了。所以Redis会将主服务器的这条Del删除命令
【Redis系列】我看你们项目用的Redis主从,数据同步了解吗
|
4月前
|
canal 关系型数据库 MySQL
Canal数据同步工具
Canal数据同步工具
125 2
|
10月前
|
消息中间件 NoSQL 关系型数据库
Canal+Kafka实现MySQL与Redis数据同步(二)
Canal+Kafka实现MySQL与Redis数据同步
192 0
|
10月前
|
消息中间件 canal NoSQL
Canal+Kafka实现MySQL与Redis数据同步(一)
Canal+Kafka实现MySQL与Redis数据同步
426 0
|
canal SQL 关系型数据库
大数据同步工具Canal 2
大数据同步工具Canal
326 0
|
canal 消息中间件 关系型数据库
大数据同步工具Canal 1
大数据同步工具Canal
455 0
|
29天前
|
SQL DataWorks 关系型数据库
DataWorks操作报错合集之如何处理数据同步时(mysql->hive)报:Render instance failed
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
28天前
|
关系型数据库 MySQL 数据库
【MySQL】手把手教你MySQL数据同步
【MySQL】手把手教你MySQL数据同步

热门文章

最新文章