Canal 数据同步(客户端代码编写) | 学习笔记

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 快速学习 Canal 数据同步(客户端代码编写)

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

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


Canal 数据同步(客户端代码编写)


目录:

一、创建模块

二、在 canal_clientedu 引入依赖

三、创建 application. properties 配置文件

四、创建 canal 客户端类,在启动类执行


一、创建模块

选择 guli parent E:lworklguli_parer 文件下的 canal_clientedu


二、在 canal_clientedu 引入依赖

org.springframework.boot

spring-boot-starter-web

//以上是第一部分,web 工程。

(dependency)

mysql-connector-java

(dependency>

commons-dbutils

commons-dbutils


//以上是第二部分,mysql

com.alibaba.otter

canal.client


// canal.client, canal 的客户端同步工具。


三、创建 application. properties 配置文件

#服务端口

server.port=10000

#服务名

spring. application.name=canal-client

#环境设置:dev、test、prod

spring.profiles.active=dev

# mysql 数据库连接

spring. datasource.driver-class-name=com.mysql.cj.jdbc.Driver

spring.datasource.url=jdbc:mysql://localhost:3306/guli?serverTimezone-GMT%2B8spring. datasource.username=root

spring. datasource. password=root


四、创建 canal 客户端类,在启动类执行

@SpringBootApplication

public class Canal Application implements CommandLineRunnner

public static void main (String[] args)

SpringApplication. run(CanalApplication. class,args);

@Override

public void run (String.. . strings)throws Exception {

//项目启动,执行 canal 客户端监听

canalClient.run() ;

//尝试从 master 那边拉去数据 batchSize 条记录,有多少取多少Message message = connector.getWithoutAck(batchSize); long batchId = message.getId();

int size = message.getEntries().size();

if (batchId ==-1 size== 0)1

Thread.sleep( millis:1000);

else(

dataHandle(message.getEntries());

connector.ack(batchId);

//当队列里面堆积的 sql 大于一定数值的时候就模拟执行

if (SQL_QUEUE.size()>=1)(

executeQueueSq1();

//入库操作,最终执行。

@param sql

public voidexecute(String sql)

Connection con = null;

try

if(null == sql) return;

con = dataSource.getConnection();

QueryRunner qr = new QueryRunner );

int row = qr.execute(con, sql);

System.out println("update:"+row);

catch (SQLException e)

e.printStackTrace();

finally

DbUtils.closeQuietly(con);

相关实践学习
如何在云端创建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的增量同步机制,在数据同步领域展现了强大的应用价值
571 4
|
3月前
|
canal 关系型数据库 MySQL
"揭秘阿里数据同步黑科技Canal:从原理到实战,手把手教你玩转MySQL数据秒级同步,让你的数据处理能力瞬间飙升,成为技术界的新晋网红!"
【8月更文挑战第18天】Canal是一款由阿里巴巴开源的高性能数据同步系统,它通过解析MySQL的增量日志(Binlog),提供低延迟、可靠的数据订阅和消费功能。Canal模拟MySQL Slave与Master间的交互协议来接收并解析Binary Log,支持数据的增量同步。配置简单直观,包括Server和Instance两层配置。在实战中,Canal可用于数据库镜像、实时备份等多种场景,通过集成Canal Client可实现数据的消费和处理,如更新缓存或写入消息队列。
718 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
|
canal NoSQL 关系型数据库
淘东电商项目(22) -Canal数据同步框架
淘东电商项目(22) -Canal数据同步框架
100 0
|
canal SQL 关系型数据库
大数据同步工具Canal 2
大数据同步工具Canal
357 0
|
3月前
|
SQL DataWorks 关系型数据库
DataWorks操作报错合集之如何处理数据同步时(mysql->hive)报:Render instance failed
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
1月前
|
监控 关系型数据库 MySQL
深入了解MySQL主从复制:构建高效稳定的数据同步架构
深入了解MySQL主从复制:构建高效稳定的数据同步架构
113 1
|
3月前
|
关系型数据库 MySQL 数据库
【MySQL】手把手教你MySQL数据同步
【MySQL】手把手教你MySQL数据同步

热门文章

最新文章

下一篇
无影云桌面