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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
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);

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
8月前
|
canal 消息中间件 关系型数据库
系统重构数据同步利器之Canal实战篇
系统重构数据同步利器之Canal实战篇
217 1
|
10月前
|
canal 搜索推荐 关系型数据库
docker环境安装mysql、canal、elasticsearch,基于binlog利用canal实现mysql的数据同步到elasticsearch中(三)
docker环境安装mysql、canal、elasticsearch,基于binlog利用canal实现mysql的数据同步到elasticsearch中
196 0
|
6月前
|
消息中间件 NoSQL 关系型数据库
Canal+Kafka实现MySQL与Redis数据同步(二)
Canal+Kafka实现MySQL与Redis数据同步
146 0
|
6月前
|
消息中间件 canal NoSQL
Canal+Kafka实现MySQL与Redis数据同步(一)
Canal+Kafka实现MySQL与Redis数据同步
212 0
|
6月前
|
canal NoSQL 关系型数据库
淘东电商项目(22) -Canal数据同步框架
淘东电商项目(22) -Canal数据同步框架
67 0
|
8月前
|
canal SQL 关系型数据库
大数据同步工具Canal 2
大数据同步工具Canal
203 0
|
8月前
|
canal 消息中间件 关系型数据库
大数据同步工具Canal 1
大数据同步工具Canal
379 0
|
15天前
|
DataWorks Shell 对象存储
DataWorks产品使用合集之在 DataWorks 中,有一个 MySQL 数据表,数据量非常大且数据会不断更新将这些数据同步到 DataWorks如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
31 3
|
2月前
|
canal 消息中间件 关系型数据库
【分布式技术专题】「分布式技术架构」MySQL数据同步到Elasticsearch之N种方案解析,实现高效数据同步
【分布式技术专题】「分布式技术架构」MySQL数据同步到Elasticsearch之N种方案解析,实现高效数据同步
100 0
|
2月前
|
canal 关系型数据库 MySQL
四种常用的 MySQL 数据同步 ES 的方法
【2月更文挑战第16天】
289 2
四种常用的 MySQL 数据同步 ES 的方法

热门文章

最新文章