Maxwell 是什么?

前言

本文隶属于专栏《大数据技术体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!

本专栏目录结构和参考文献请见大数据技术体系


WHAT

Maxwell 是一个能实时读取 MySQL 二进制日志 binlog ,并生成 JSON 格式的消息,作为生产者发送给 Kafka、 Kinesis、 RabbitMQ、 Redis、 Google CloudPub/Sub、文件或其它平台的应用程序。


应用场景

Maxwell 的常见应用场景有 ETL 、维护缓存、收集表级别的 dml 指标、增量到搜索引擎、数据分区迁移、切库 binlog 回滚方案等。


功能

Maxwell 主要提供了下列功能:

  • 支持 SELECT * FROM table 的方式进行全量数据初始化
  • 支持在主库发生 failover 后,自动恢复 binlog 位置(GTID)
  • 可以对数据进行分区,解决数据倾斜问题,发送到 kafka 的数据支持 database、table、column等级别的数据分区
  • 工作方式是伪装为 Slave,接收 binlog events,然后根据 schemas 信息拼装,可以接受ddl、xid、row等各种 event

对比

除了 Maxwell 外,目前常用的 MySQL Binlog 解析工具主要有阿里的 canal、mysql_streamer,三个工具对比如下:

在这里插入图片描述

canal 由 Java开发,分为服务端和客户端,拥有众多的衍生应用,性能稳定,功能强大;canal 需要自己编写客户端来消费 canal 解析到的数据。

maxwell 相对于 canal 的优势是使用简单,它直接将数据变更输出为 json 字符串,不需要再编写客户端

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值