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/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);

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
canal SQL 监控
Canal 数据同步(最终测试) | 学习笔记
快速学习 Canal 数据同步(最终测试)
|
canal 消息中间件 关系型数据库
大数据同步工具Canal 1
大数据同步工具Canal
527 0
|
canal SQL 关系型数据库
大数据同步工具Canal 2
大数据同步工具Canal
411 0
|
9月前
|
canal 关系型数据库 MySQL
Canal数据同步工具
Canal数据同步工具
186 2
|
canal 关系型数据库 中间件
开源数据同步神器——canal
作为使用最广泛的数据库,如何将mysql的数据与中间件的数据进行同步,既能确保数据的一致性、及时性,也能做到代码无侵入的方式呢?如果有这样的一个需求,数据修改后,需要及时的将mysql中的数据更新到elasticsearch,我们会怎么进行实现呢?
17506 1
|
canal 存储 消息中间件
史上最全的分布式数据同步中间间canal 之结束篇
前言 文本已收录至我的GitHub仓库,欢迎Star:github.com/bin39232820… 种一棵树最好的时间是十年前,其次是现在
329 0
|
canal 消息中间件 关系型数据库
系统重构数据同步利器之Canal实战篇
系统重构数据同步利器之Canal实战篇
817 1
|
canal 缓存 otter
史上最全的分布式数据同步中间间canal 之入门篇
前言 文本已收录至我的GitHub仓库,欢迎Star:github.com/bin39232820… 种一棵树最好的时间是十年前,其次是现在
500 0
|
canal SQL 消息中间件
阿里Canal框架(数据同步中间件)初步实践
阿里Canal框架(数据同步中间件)初步实践
950 12
阿里Canal框架(数据同步中间件)初步实践
|
5月前
|
canal 消息中间件 关系型数据库
Canal作为一款高效、可靠的数据同步工具,凭借其基于MySQL binlog的增量同步机制,在数据同步领域展现了强大的应用价值
【9月更文挑战第1天】Canal作为一款高效、可靠的数据同步工具,凭借其基于MySQL binlog的增量同步机制,在数据同步领域展现了强大的应用价值
1006 4

热门文章

最新文章