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、测试

改变数据库可看到如下效果 
这里写图片描述

你可能感兴趣的:(kafka)