IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Canal+MySQL+Kafka+Zookeeper -> 正文阅读

[大数据]Canal+MySQL+Kafka+Zookeeper

目录

一、Canal

Ⅰ、下载安装

Ⅱ、配置主要配置文件

(1)conf/canal.properties

(2)conf/example/instance.properties

?Ⅲ、开启canal

二、MySQL

Ⅰ、 搭建与基础使用

Ⅱ、开启二进制日志

三、Kafka+Zookeeper集群

Ⅰ、搭建与基础使用

Ⅱ、创建topic

?四、测试

Ⅰ、数据库操作

Ⅱ、kafka消费


一、Canal

阿里巴巴B2B公司,因为业务的特性,卖家主要集中在国内,买家主要集中在国外,所以衍生出了杭州和美国异地机房的需求,从2010年开始,阿里系公司开始逐步的尝试基于数据库的日志解析,获取增量变更进行同步,由此衍生出了增量订阅&消费的业务。

canal是用java开发的基于数据库增量日志解析,提供增量数据订阅&消费的中间件。目前,canal主要支持了MySQL的binlog解析,解析完成后才利用canal client 用来处理获得的相关数据。(数据库同步需要阿里的otter中间件,基于canal)

mysql的主从复制主要靠二进制文件实现,而canal把自己伪装成slave,假装从master复制数据

在本架构中,canal通过binlog同步拿到变更数据,再发送到Kafka

Ⅰ、下载安装

下载:Releases · alibaba/canal (github.com)

?进行解压、安装

mkdir -p /opt/canal

tar zxvf canal.deployer-1.1.2.tar.gz -C /opt/canal/

Ⅱ、配置主要配置文件

(1)conf/canal.properties

cd /opt/canal/conf/

vim canal.properties
#################################################
#########               common argument         #############
#################################################
#----------------------------

# tcp, kafka, RocketMQ
canal.serverMode = kafka
#修改为kafka,默认为tcp

#----------------------------

##################################################
#########                    MQ                      #############
##################################################
#----------------------------

canal.mq.servers = ljp26:9092,ljp111:9092,ljp120:9092
#定义MQservers

#----------------------------

(2)conf/example/instance.properties

vim /opt/canal/conf/example/instance.properties

#################################################
## mysql serverId , v1.0.26+ will autoGen
 canal.instance.mysql.slaveId=10
#解注释,修改id

#=========================================================

# username/password
canal.instance.dbUsername=canal
canal.instance.dbPassword=canal
#定义数据库登录的用户与密码
canal.instance.connectionCharset = UTF-8
canal.instance.defaultDatabaseName =test
# enable druid Decrypt database password
canal.instance.enableDruid=false
#canal.instance.pwdPublicKey=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALK4BUxdDltRRE5/zXpVEVPUgunvscYFtEip3pmLlhrWpacX7y7GCMo2/JM6LeHmiiNdH1FWgGCpUfircSwlWKUCAwEAAQ==

#=========================================================

# mq config
canal.mq.topic=canal
canal.mq.partition=0
#定义消息队列的topic

?Ⅲ、开启canal

/opt/canal/bin/startup.sh

二、MySQL

Ⅰ、 搭建与基础使用

MySQL数据库基础理论、部署与使用

Ⅱ、开启二进制日志

mysql在这里的主要设置:

vim /etc/my.cnf

[mysqld]
#=======================================
log-bin=mysql-bin
#开启二进制日志
binlog_format=row
#二进制日志记录格式
bin-log-db=example
#定义开启二进制日志的库
#=======================================

---wq

systemctl restart mysqld

三、Kafka+Zookeeper集群

Ⅰ、搭建与基础使用

kafka+zookeeper群集

Ⅱ、创建topic

群集开启(Kafka+Zookeeper)

kafka-topic.sh --create --bootstrap-server ljp26:9092,ljp111:9092,ljp120:9092
--partitions 3 --replication-factor 2 --topic canal
kafka-topic.sh --describe --bootstrap-server ljp26:9092,ljp111:9092,ljp120:9092
--topic canal

?四、测试

Ⅰ、数据库操作

做完以上的操作后,确保canal开启、mysql开启、kafka群集开启

我们进入mysql数据库,做一些增删改操作

例:

mysql>GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'
@'%' IDENTIFIED BY 'canal' ;
mysql> create table test1.test (id int(5),user_name char(8),primary_key(id));

Ⅱ、kafka消费

kafka-console-consumer.sh --bootstrap-server ljp26:9092,ljp111:9092,ljp120:9092 
--topic canal

得到二进制日志数据,成功

?

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-10-17 12:41:07  更:2022-10-17 12:44:04 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/17 2:30:39-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码