真是好东西,Maxwell流式同步MySQL到kafka
Maxwell 介绍
1,Maxwell 是由美国Zendesk开源,用Java编写的MySQL实时抓取软件。 实时读取MySQL二进制日志Binlog,并生成 JSON 格式的消息,作为生产者发送给 Kafka,Kinesis、RabbitMQ、Redis、Google Cloud Pub/Sub、文件或其它平台的应用程序。
2,官网地址:http://maxwells-daemon.io/
maxwell源代码:https://github.com/zendesk/maxwell
3, Maxwell的工作原理
很简单,就是把自己伪装成slave,假装从master复制数据
4, MySQL的binlog
(1)什么是binlog
MySQL的二进制日志可以说MySQL最重要的日志了,它记录了所有的DDL和DML(除了数据查询语句)语句,以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二进制日志是事务安全型的。
一般来说开启二进制日志大概会有1%的性能损耗。二进制有两个最重要的使用场景:
其一:MySQL Replication在Master端开启binlog,Master把它的二进制日志传递给slaves来达到master-slave数据一致的目的。
其二:自然就是数据恢复了,通过使用mysqlbinlog工具来使恢复数据。
二进制日志包括两类文件:二进制日志索引文件(文件名后缀为.index)用于记录所有的二进制文件,二进制日志文件(文件名后缀为.00000*)记录数据库所有的DDL和DML(除了数据查询语句)语句事件。
(2)binlog的开启
Linux: /etc/my.cnf
Windows: \my.ini
在mysql的配置文件下,修改配置
在[mysqld] 区块,设置/添加 log-bin=mysql-bin
这个表示binlog日志的前缀是mysql-bin,以后生成的日志文件就是 mysql-bin.123 的文件后面的数字按顺序生成,每次mysql重启或者到达单个文件大小的阈值时,新生一个文

Maxwell是一款由Zendesk开源的MySQL实时抓取工具,能够读取MySQL的Binlog并将其转换为JSON消息,发送至Kafka等平台。本文介绍了Maxwell的原理、安装步骤及如何实现增量和全量数据导入。

2393

被折叠的 条评论
为什么被折叠?



