Mysql的binlog日誌傳送至Kafka實時消費
阿新 • • 發佈:2019-02-12
本文采用Maxwell來實現實時解析mysql的binlog日誌傳送至kafka
1、開啟mysql binlog
環境中mysql是docker容器,所以需要進入容器修改mysql配置. docker exec -it ef07dab4da9d bash 然後進入/etc/mysql/ 修改my.cnf 增加如下內容 server-id=1 log-bin=master binlog_format=row 重啟docker容器 ,確認binlog是否開啟 show variables like '%log_bin%'; log_bin屬性值為ON,則以開啟成功
2、配置並啟動Maxwell
Maxwell的 github地址為 https://github.com/zendesk/maxwell。可去下載最新版。 wget https://github.com/zendesk/maxwell/releases/download/v1.10.7/maxwell-1.10.7.tar.gz tar -zxf maxwell-1.10.7.tar.gz bin/maxwell --user='root' --password='123456'--host='10.99.22.24' --producer=kafka --kafka.bootstrap.servers=bigdata001:9092 host為 mysql地址,bigdata001是我機器地址
3、啟動kafka
我這裡kafka是已經安裝好的,直接啟動就可以了,如果沒有可以按照官網的步驟安裝kafka,啟動kafka之前先要啟動 zookeeper bin/zkServer.sh start 然後開啟kafka bin/kafka-server-start.sh config/server.properties 建立topic bin/kafka-topics.sh--create --zookeeper bigdata001:2181 --replication-factor 1 --partitions 1 --topic maxwell 啟動producer bin/kafka-console-producer.sh--broker-list bigdata001:9092 --topic maxwell 啟動consumer bin/kafka-console-consumer.sh--zookeeper bigdata001:2181 --topic maxwell --from-beginning
4、測試
改變資料庫可看到如下效果