Canal 数据同步(应用场景) | 学习笔记

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 快速学习 Canal 数据同步(应用场景)

开发者学堂课程【微服务+全栈在线教育实战项目演练(SpringCloud Alibaba+SpringBoot)Canal 数据同步(应用场景)学习笔记,与课程紧密连接,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/667/detail/11515


Canal 数据同步(应用场景)


目录:

一、canal 数据同步工具

二、Canal 介绍


一、canal 数据同步工具

把远程库里面内容同步到本地库里面

1、应用场景

分库

image.png

比如,现在两个模块,第一个模块叫 edu-sta。比如第二模块叫 edu-ucenter,就是用户模块。

按照实际的操作中,经常会做一件事情分库的。分库的解释,比如现在在 edu-sta这是一个统计模块,那现在就可以把统计模块数据存到一个数据库,假如说统计模块,它的数据库就是这个叫 edu-sta 数据库,然后里边有数据库表,然后现在也是有一个数据库,它的数据库叫 edu-ucenter,做一个分库的处理,之前为了方便把所有表放到都放入一个库中,现在是每个模块专门建一个数据库,比如现在建一个模块叫 edu-sta,这数据库中专门存统计模块,又建一个数据库叫 edu-ucenter这数据库中专门存用户信息,现在有两个数据,在 ucenter 得到数据 STA 通过远程调用。

有两个数据库,通过 edu-sta 这个库中调用 edu-ucenter 数据库内容。

它的缺点,因为要调共同库里面,比如说实际项目中,项目比较大时,自身开发的sta数据库,另一家公司开发的 edu-ucenter 数据库,公司有自己数据库,那这个时候因为公司肯定不可能去,直接访问另一家数据库,所以必须要用远程调用才可以,这是一个场景,而这个过程是一个要让偶合度很高,第二个要调远程库,它的效率也并不是很高。

解决方法是使用数据同步工具,举个例子,现在在 edu-ucenter 里面还有一张表,这个表比如叫 users,可以把这个表同步到中 edu-sta,就是同步 user 表,在 edu-sta 中可以创建一张跟这数据库中相同一样的表的结构,此时两边的数据可同步变化,比如一表中添加一条数据这边也会同步加入数据,这个数据进行了修改,另一边也会修改。

也就是说远程库中的发生变化,本地库会跟着变化。那再操作可以直接操作本库,而就不需要再做远程调用过程。

canal 是阿里巴巴旗下的一款开源项目,纯 Java 开发,目前支持 mySQL 数据库。

举个例子,访问移动的数据库,想得到里面数据那怎么做呢?可以把移动数库中一些核心部分通过到本地库中,当它发生变化,那本地库也会跟着发生变化。这过程就叫数据同步,把远程同步到本地库中。这也称为数据同步。

其实这个过程,更具体点,它是大数据中这种实验过程,但是在java中这个过程也会经常用到。

canal 是阿里巴巴项目,它是用 JAVA 开发的,可以做到数据同步,目前只支持mysql 还不支持别的数据库。


二、Canal介绍

1、应用场景

在前面的统计分析功能中,我们采取了服务调用获取统计数据,这样耦合度高,效率相对较低,目前我采职另一种实现方式,通过实时同步数据库表的方式实现,例如我们要统计每天注册与登录人数,我们只需把会员表同步到统计库中,实现本地统计就可以了,这样效率更高,耦合度更低,Canal 就是一个很好的数据库同步工具。

canal 是阿里巴巴旗下的款开源项目,纯 Java 开发。 基于数据库增量日志解析,提供增量数据订阅&消费,目前主要支持了 MySQL。

2、Canal 环境搭建

canal 的原理是基于 mysql binlog 技术,所以这里-定需要开启 mysql 的 binlog 写入功能开启 mysqI 服务: service mysql start ( 或者 systemctl start mysqld.service )

(1 )检查 binlog 功能是否有开启

代码如下:

mysql> shaw varlables like 'log_bin';

+---------------+-------+

| Variable _name  | Value|

+---------------+-------+

| log_bin         | OFF  |

+--------------+-------+

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
canal 消息中间件 关系型数据库
Canal作为一款高效、可靠的数据同步工具,凭借其基于MySQL binlog的增量同步机制,在数据同步领域展现了强大的应用价值
【9月更文挑战第1天】Canal作为一款高效、可靠的数据同步工具,凭借其基于MySQL binlog的增量同步机制,在数据同步领域展现了强大的应用价值
568 4
|
3月前
|
canal 关系型数据库 MySQL
"揭秘阿里数据同步黑科技Canal:从原理到实战,手把手教你玩转MySQL数据秒级同步,让你的数据处理能力瞬间飙升,成为技术界的新晋网红!"
【8月更文挑战第18天】Canal是一款由阿里巴巴开源的高性能数据同步系统,它通过解析MySQL的增量日志(Binlog),提供低延迟、可靠的数据订阅和消费功能。Canal模拟MySQL Slave与Master间的交互协议来接收并解析Binary Log,支持数据的增量同步。配置简单直观,包括Server和Instance两层配置。在实战中,Canal可用于数据库镜像、实时备份等多种场景,通过集成Canal Client可实现数据的消费和处理,如更新缓存或写入消息队列。
715 0
|
6月前
|
canal 关系型数据库 MySQL
Canal数据同步工具
Canal数据同步工具
144 2
|
消息中间件 NoSQL 关系型数据库
Canal+Kafka实现MySQL与Redis数据同步(二)
Canal+Kafka实现MySQL与Redis数据同步
216 0
|
消息中间件 canal NoSQL
Canal+Kafka实现MySQL与Redis数据同步(一)
Canal+Kafka实现MySQL与Redis数据同步
568 0
|
3月前
|
SQL DataWorks 关系型数据库
DataWorks操作报错合集之如何处理数据同步时(mysql->hive)报:Render instance failed
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
1月前
|
监控 关系型数据库 MySQL
深入了解MySQL主从复制:构建高效稳定的数据同步架构
深入了解MySQL主从复制:构建高效稳定的数据同步架构
112 1
|
3月前
|
关系型数据库 MySQL 数据库
【MySQL】手把手教你MySQL数据同步
【MySQL】手把手教你MySQL数据同步
|
22天前
|
消息中间件 NoSQL 关系型数据库
一文彻底搞定Redis与MySQL的数据同步
【10月更文挑战第21天】本文介绍了 Redis 与 MySQL 数据同步的原因及实现方式。同步的主要目的是为了优化性能和保持数据一致性。实现方式包括基于数据库触发器、应用层双写和使用消息队列。每种方式都有其优缺点,需根据具体场景选择合适的方法。此外,文章还强调了数据同步时需要注意的数据一致性、性能优化和异常处理等问题。
228 0
|
3月前
|
SQL 关系型数据库 MySQL
“震撼揭秘!Flink CDC如何轻松实现SQL Server到MySQL的实时数据同步?一招在手,数据无忧!”
【8月更文挑战第7天】随着大数据技术的发展,实时数据同步变得至关重要。Apache Flink作为高性能流处理框架,在实时数据处理领域扮演着核心角色。Flink CDC(Change Data Capture)组件的加入,使得数据同步更为高效。本文介绍如何使用Flink CDC实现从SQL Server到MySQL的实时数据同步,并提供示例代码。首先确保SQL Server启用了CDC功能,接着在Flink环境中引入相关连接器。通过定义源表与目标表,并执行简单的`INSERT INTO SELECT`语句,即可完成数据同步。
312 1
下一篇
无影云桌面