Maxwell介绍和工作原理
一、Maxwell介绍
Maxwell是由美国Zendesk开源,使用Java编写的MySQL实时抓取工具,可以实时读取MySQL二进制日志binlog,并生成 JSON 格式的消息,作为生产者发送给 Kafka,Kinesis、RabbitMQ、Redis、Google Cloud Pub/Sub、文件或其它平台的应用程序。它设计的初衷是实时采集Mysql数据到Kafka。支持全表load数据,支持自动断点还原,支持按照列将数据发送到Kafka不同分区。
Maxwell官网:http://maxwells-daemon.io/
二、Maxwell工作原理
Maxwell工作原理与Canal工作原理一样,都是把自己伪装成MySQL 的slave从库,同步binlog数据,来达到同步MySQL数据,与Canal相比,更加轻量。同样使用Maxwell也需要开启MySQL binlog日志。
三、Maxwell和Canal对比
Canal
Maxwell
公司
阿里
zendesk
开发语言
Java
Java
高可用
支持HA
不支持,支持断点续传
数据格式
格式自由
JSON
Bootstrap(刷全量数据)
不支持
支持
数据落地
支持客户端,支持定制/kafka
Kafka,Redis等。
- Canal是阿里公司使用Java开发,Maxwell是zendesk公司使用Java开发。
- Canal支持高可用HA,支持断点续传。Maxwell不支持HA,但是支持断点续传,要想支持HA需要自己实现。
- Canal由于有Client消费数据,针对binlog数据可以使用Client自定义数据格式,Maxwell支持Json数据写出到Kafka或Redis。
- Canal只能获取MySQL最新数据,Maxwell支持Bootstrap,可以支持获取MySQL中历史数据。
- Canal采用Server+client模式,Maxwell没有采用这种模式,直接将数据发送到Kafka或者Redis等。
总体来看,Maxwell相对于Canal更加轻量级。
- 📢博客主页:https://lansonli.blog.csdn.net
- 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
- 📢本文由 Lansonli 原创,首发于 CSDN博客🙉
- 📢停下休息的时候不要忘了别人还在奔跑,希望大家抓紧时间学习,全力奔赴更美好的生活✨
版权归原作者 Lansonli 所有, 如有侵权,请联系我们删除。