0
点赞
收藏
分享

微信扫一扫

Maxwell-实时数据采集工具

Xin_So 2022-01-04 阅读 68

目录

Maxwell简介

Maxwell 是由美国 Zendesk 开源,用 Java 编写的 MySQL 实时抓取软件。 实时读取 MySQL 二进制日志 Binlog,并生成 JSON 格式的消息,作为生产者发送给 Kafka,Kinesis、RabbitMQ、Redis、Google Cloud Pub/Sub、文件或其它平台的应用程序。

Maxwell工作原理

Maxwell把自己伪装成slave,假装从master复制数据

img

Mysql Master主库将改变记录写到二进制日志中,Mysqk Slave从库向Mysql Master发送dump协议,将master主库的binary log envents拷贝到它的中继日志(relay log),Slave从库读取并重做中继日志中的事件,将改变的数据同步到自己的数据库

二进制Binlog

MySQL的二进制日志可以说MySQL最重要的日志了,它记录了所有的DDL和DML(除了数据查询语句)语句,以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二进制日志是事务安全型的。

一般来说开启二进制日志大概会有 1%的性能损耗。二进制有两个最重要的使用场景:

其一:MySQL Replication 在 Master 端开启 binlog,Master 把它的二进制日志传递给 slaves 来达到 master-slave 数据一致的目的。

其二:自然就是数据恢复了,通过使用 mysqlbinlog 工具来使恢复数据。

二进制日志包括两类文件:二进制日志索引文件(文件名后缀为.index)用于记录所有的二进制文件,二进制日志文件(文件名后缀为.00000*)记录数据库所有的 DDL 和 DML(除了数据查询语句)语句事件。

找到Mysql配置文件位置

# 如果/etc 目录下没有,可以通过 locate my.cnf 查找位置
Linunx: /etc/my.cnf

window: \my.ini

在mysql的配置文件下,修改配置。这个表示 binlog 日志的前缀是 mysql-bin,以后生成的日志文件就是 mysql-bin.123456 的文件后面的数字按顺序生成,每次 mysql 重启或者到达单个文件大小的阈值时,新生一个文件,按顺序编号。

在[mysqld] 区块,设置/添加	log-bin=mysql-bin

mysql binlog 的格式有三种,分别是STATEMENT,MIXED,ROW,在配置文件中可以选择配置binlog_format= statement|mixed|row

  • statement:语句级,binlog会记录每次一执行写操作的语句,相对row模式节省空间,但是可能产生不一致性。优点节省空间,缺点造成数据不一致
  • row:行级,会记录每次操作后每行记录的变化。优点保持数据的绝对一致性,因为不管sql是什么,引用了什么函数,只记录执行后的效果。缺点占用空间
  • mixed:statement的升级版,一定程度上解决了因为一些情况而造成的statement模式不一致的问题

初始化Maxwell

CREATE DATABASE maxwell;
set global validate_password_length=4; 
set global validate_password_policy=0;
grant all on maxwell.* to 'maxwell'@'%' IDENTIFIED BY 'maxwell';
GRANT SELECT ,REPLICATION SLAVE , REPLICATION CLIENT ON *.* TO maxwell@'%';

使用Maxwell监控抓取MySQL数据

producer=kafka
kafka.bootstrap.servers=hadoop102:9092,hadoop103:9092,hadoop104:9092

#需要添加
kafka_topic=ods_base_db_m

# mysql login info
host=hadoop102
user=maxwell
password=maxwell

#需要添加 初始化会用
client_id=maxwell_1

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-26L2aVGr-1641285255336)(…/AppData/Roaming/Typora/typora-user-images/image-20220104162259747.png)]

/opt/module/maxwell-1.25.0/bin/maxwell --config /opt/module/maxwell-1.25.0/config.properties >/dev/null 2>&1 &
bin/kafka-console-consumer.sh --bootstrap-server hadoop102:9092 --topic ods_base_db_m

image-20220104163303956

举报

相关推荐

0 条评论