Maxwell部署、簡單實用、數據格式


概述
Maxwell 針對與MySQL做實時數據同步的一個開源中間件,監控MySQL binlog日志並記錄每行的操作記錄(insert,update,delete)。它設計的初衷是實時采集Mysql數據到Kafka,它是Kafka的Producer。

  • 支持全表load數據
  • 支持自動斷點還原
  • 支持按照列將數據發送到Kafka不同分區
Maxwell下載地址:https://github.com/zendesk/maxwell/releases/download/v1.22.3/maxwell-1.22.3.tar.gz
Maxwell官網:http://maxwells-daemon.io/

配置MySQL
開啟binlog

#修改mysql配置文件,開啟binlog及設置server-id
vi my.cnf

[mysqld]
server_id=1
log-bin=master
binlog_format=row
#在mysqld 中配置binlog,並設置為ROW模式,設置server_id。必須配置server_id以及binlog格式為Row

#修改完成后,退出文件。重啟mysql
service mysqld restart


#若生產上數據庫不能重啟,則可以在運行的服務器上設置
set global binlog_format=ROW;
set global binlog_row_image=FULL;
# 沒有設置 server_id 的話需要設置
set GLOBAL server_id = 1

#注意:
#1、配置全局變量后,建議在配置文件同樣做相應修改,否則數據庫重啟后,變量失效,還需要重啟配置全局變量。
#2、binlog_format是會話級別的屬性。需要關閉所有活動連接才能完全轉換為行的復制。

創建Maxwell的數據庫和用戶

# 登錄要監控的mysql,創建用戶及數據庫。maxwell默認會將運行數據存儲在mysql的waxwell數據庫中

CREATE USER 'maxwell'@'%' IDENTIFIED BY '123456';
GRANT ALL ON maxwell.* TO 'maxwell'@'%';
GRANT SELECT, REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'maxwell'@'%';
FLUSH PRIVILEGES;

快速啟動Maxwell
stdout producer方式啟動Maxwell

bin/maxwell --user='maxwell' --password='123456' --host='127.0.0.1' --producer=stdout
# --user:上述創建的用戶
# --password:maxwell對應的密碼
# --host:mysql的ip
# --producer:生產者,即將數據寫入到哪里。stdout表示將數據輸出到控制台,kafka表示寫入到kafka.

Kafka producer方式啟動Maxwell

bin/maxwell --user='maxwell' --password='123456' --host='127.0.0.1' --producer=kafka --kafka.bootstrap.servers=127.0.0.1:9092 --kafka_topic=maxwell
# --producer=kafka:將數據寫入到kafka
# --kafka.bootstrap.servers:kafka broker集群的地址
# --kafka_topic:寫入到kafka指定的topic,注意不需要提前創建topic。
#還有更多配置信息請參考[Maxwell](http://maxwells-daemon.io/)官網,如maxwell中配置kafka分區等。

Maxwell輸出的數據格式
insert

{"database":"rz","table":"maxwell_test","type":"insert","ts":1564244120,"xid":1852,"commit":true,"data":{"name":"lisi","id":1,"age":20}}

update

{"database":"rz","table":"maxwell_test","type":"update","ts":1564244281,"xid":2069,"xoffset":0,"data":{"name":"wangwu","id":1,"age":16},"old":{"name":"lisi","age":20}}
{"database":"rz","table":"maxwell_test","type":"update","ts":1564244281,"xid":2069,"commit":true,"data":{"name":"wangwu","id":2,"age":16},"old":{"name":"lisi","age":20}}

delete

{"database":"rz","table":"maxwell_test","type":"delete","ts":1564244299,"xid":2097,"xoffset":0,"data":{"name":"wangwu","id":1,"age":16}}
{"database":"rz","table":"maxwell_test","type":"delete","ts":1564244299,"xid":2097,"commit":true,"data":{"name":"wangwu","id":2,"age":16}}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM