1. 程式人生 > >Mysql的binlog日誌傳送至Kafka實時消費

Mysql的binlog日誌傳送至Kafka實時消費

本文采用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、測試

改變資料庫可看到如下效果 
這裡寫圖片描述