kafka connect+debezium(binlog),解析binlog至kafka

本文目标

在已知kafka connect和debezium作用,会使用kafka的基础上,学会使用debezium来读取binlog,并通过kafka connect将读取的内容放入kafka topic中。
基于卡夫卡0.10.0和Debezium0.6,mysql5.6

kafka connect

  • Kafka Connect是一种用于Kafka和其他数据系统之间进行数据传输的工具。
  • 仅关注数据的复制,并且不处理其他任务
  • Kafka connect有两个概念,一个source,另一个是sink。source是把数据从一个系统拷贝到kafka里,sink是从kafka拷贝到另一个系统里。
  • 可使用插件,获取不同系统的数据。例如通过Debezium插件解析mysql的日志,获取数据。
  • 支持集群,可以通过REST API管理Kafka Connect。
  • 对数据的传输进行管理和监控。

Debezium

  • Debezium是一个分布式平台,可将现有数据库转换为事件流,因此应用程序可以立即查看并立即响应数据库中每一行的更改。
  • Debezium建立在Apache Kafka之上,并提供用于监视特定数据库管理系统的Kafka Connect兼容连接器。
  • 本教程使用Debezium监控binlog。

准备操作

  • mysql需开启binlog
[mysqld]
log-bin=mysql-bin #添加这一行就ok
binlog-format=ROW #选择row模式
server_id=1 #配置mysql replaction需要定义,不能和canal的slaveId重复
  • mysql需创建一个有mysql slave相关权限的账号,若mysql不在本机,则需要远程权限,防火墙放行。
//mysql slave相关权限
CREATE USER canal IDENTIFIED BY 'debezium';  
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'debezium'@'%';
-- GRANT ALL PRIVILEGES ON *.* TO 'debezium'@'%' ;
FLUSH PRIVILEGES;

操作概述

  • 安装并启动kafka
  • 安装并启动mysql
  • 下载Debezium的mysql连接器http://debezium.io/docs/install/并解压
  • 安装debezium,即将解压目录写入classpath变量,例如:export classpath=/root/debezium-connector-mysql/*
    只在当前shell有效
  • 参考http://debezium.io/docs/connectors/mysql/的配置文件示例,写好配置文件。
  • 以独立模式启动kafka connect,此时debezium会对数据库中的每一个表创建一个topic,消费相应的topic,即可获取binlog解析信息。
//启动kafka connect
bin/connect-standalone.sh config/connect-standalone.properties mysql.properties
//查看topic列表
bin/kafka-topics.sh --list --zookeeper localhost:2181
//消费该主题
bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning

配置文件

    //mysql.properties
    name=inventory-connector
    connector.class=io.debezium.connector.mysql.MySqlConnector
    database.hostname=192.168.99.100
    database.port=3306
    database.user=debezium
    database.password=dbz
    database.server.id=184054
    database.server.name=fullfillment
    database.whitelist=inventory
    database.history.kafka.bootstrap.servers=192.168.30.30:9092
    database.history.kafka.topic=dbhistory.fullfillment
    include.schema.changes=true

索引

debezium官网 http://debezium.io/
kafka文档 http://kafka.apache.org/0100/documentation.html

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值