• 20180530利用Maxwell组件实时监听Mysql的binlog日志


    转自:https://blog.csdn.net/qq_30921461/article/details/78320750

    http://kafka.apache.org/quickstart

    http://maxwells-daemon.io/quickstart/

    文档主题:

    如何使用Maxwell实时监听Mysql的binlog日志,并且把解析的json格式数据发送到kafka窗口

    具体步骤

    一:在linux环境下安装部署好mysql

    1 开启binlog

    sudo vi /etc/my.cnf

    2 mysql的binlog格式有3种,为了把binlog解析成json数据格式,要设置binlog的格式为row(binlog有三种格式:Statement、Row以及Mixed)

    server-id=1

    log-bin=master(这一步开启binlog)

    binlog_format=row

    3重启msyql服务

    sudo service mysqld restart

    4查看是否已经开启binlog

    Mysql>show variables like '%log_bin%';

    此时,可以在目录/var/lib/mysql下看到生成了相应的binlog监听日志文件,如图,master.000001文件,每次重启msyql服务,就会生成一个新的监听文件

    第二大步骤:配置Maxwell相关的部署工作

    1下载Maxwell

    官网

    http://maxwells-daemon.io/

    组件下载链接

    https://github.com/zendesk/maxwell/releases/download/v1.10.7/maxwell-1.10.7.tar.gz 

    2 安装Maxwell

    tar-zxf maxwell-1.10.6.tar.gz  -C    ../modules/

    3给mysql授权

    mysql> GRANT ALL on maxwell.* to'maxwell'@'%' identified by 'XXXXXX';

    mysql> GRANT SELECT, REPLICATION CLIENT,REPLICATION SLAVE on *.* to 'maxwell'@'%';

    以上图片为官网参考

    以我自己的为例:

    GRANTALL on *.* to 'user01'@'%' identified by '123456';

    把所有数据库的所有表授权给user01用户以密码123456登录

    GRANTSELECT, REPLICATION CLIENT, REPLICATION SLAVE on *.* to 'user01'@'%';

    flushprivileges;

    4开启maxwell命令行(注意,如果没有设置,maxwell默认是把监听的mysql的binlog日志发送到kafka的主题叫maxwell的topic上的)

    bin/maxwell --user='maxwell' --password='XXXXXX' --host='127.0.0.1' 
       --producer=kafka --kafka.bootstrap.servers=localhost:9092

    以上为官网参考,我自己的具体的demo

    bin/maxwell --user='user01' --password='123456'--host='192.168.136.129' --producer=kafka --kafka.bootstrap.servers=mw:9092解释:host参数是安装mysql的那台主机,最后的kafka.bootstrap.servers是安装kafka集群的节点主机名和端口号

     

    第三大步骤,kafka相关配置

    说明(以下我的kafka是安装在主机名叫mw,注意kafka里的配置文件端口号要和命令行里给的端口号一致)

    1首先启动zookeeper

    $sbin/zkServer.sh start

    2开启kafka命令行

    bin/kafka-server-start.shconfig/server.properties

    3创建一个主题叫maxwell以便于接受数据

    bin/kafka-topics.sh--create --zookeeper mw:2181 --replication-factor 1 --partitions 1 --topic maxwell

    4启动生产者窗口

    bin/kafka-console-producer.sh--broker-list mw:9092 --topic maxwell

    5启动消费者窗口

    bin/kafka-console-consumer.sh--zookeeper mw:2181 --topic maxwell --from-beginning

    第四大步:最终测试

    此时,mysql的binlog已经开启,maxwell命令行也开启,kafka的生产者消费者窗口也开启在监听

    开始往mysql里插入修改数据

    通过写的jdbc写的多线程程序批量插入修改数据的程序造数据

    此时,查看kafka的消费者窗口。可以看到,mysql插入修改的数据,以json形式被maxwell发送到了kafka以maxwell主题命名的窗口里

     

    第五  额外补充

    1在第三大步骤里的第四小步开启maxwell命令行时,可以多跟几个参数对mysql的binlog进行过滤,只筛选某些数据库里的某些表

    include_dbs,exclude_dbs,include_tables,exclude_tables

    2注意点:kafka的安装版本要和maxwell兼容适应,不然会报错

    • Kafka clients 0.8 and 0.9 are compatible with brokers running kafka 0.8.
    • 0.10.0.x clients only support 0.10.0.x or later brokers.
    • Mixing Kafka 0.10 with other versions can lead to serious performance impacts.

    还可以使用https://blog.csdn.net/xf_87/article/details/70146810

    第二种途径进行解析binlog

  • 相关阅读:
    BAPI_TRANSACTION_COMMIT的使用方法(转)
    Win7 64bit系统下未能加载文件或程序集“System.Data.SQLite”的解决办法
    在Windows XP环境中配置OPC服务器时的设置方式
    关于异常“The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine”的处理
    MSChart使用做折线图饼图(转)
    C#如何导入内文至SAP(转)
    经典Sql大全转
    工程师突击:SAP ABAP实用程序开发攻略(转)
    如何使用ExtJS Design中生成的代码
    ExtJS 4 学习(1)环境配置及注意点
  • 原文地址:https://www.cnblogs.com/qcfeng/p/9111698.html
Copyright © 2020-2023  润新知