玉林实硕医疗科技有限公司

大數據Maxwell(一):Maxwell介紹和工作原理

?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更加輕量級。

?

關鍵詞: