背景

使用Debezium采集MySQL Binlog 集成到Hive中,采坑(一)(二) 中对问题的猜想还没得到证实,又发现了 Debezium 采集 MySQL 时间转换时间错乱问题,关于时间错乱问题后续文章中会详细分析,于是走上kafka connect的debug之路。

原理

根本原理就是利用远程debug 模式:服务端远程开启debug模式,本地链接远程端口调试集合。但是如何开启呢?下面将细细道来

开启过程

服务端开启debug

哈哈!!!其实开启 debug 模式很简单,在$confluent_home/bin/kafka-run-class 启动文件中,将KAFKA_DEBUG赋值即可,建议配置为 KAFKA_DEBUG=true。
本人使用的是 confluence 包一键搭建的开发环境,对于开发搭建十分简单但对开启debug模式有个小坑,如果简单的将 KAFKA_DEBUG赋值,会有端口冲突问题。 原因是开发者模式模式下启动,zookeeper 、 kafka 、kafka connect 的启动都会调用 $confluent_home/bin/kafka-run-class 去其对应的应用。

## zookeeper
cat zookeeper-server-start
## 此处省略N行,最后
exec $base_dir/kafka-run-class $EXTRA_ARGS org.apache.zookeeper.server.quorum.QuorumPeerMain "$@"## kafka
cat kafka-server-start
## 此处省略N行,最后
exec $base_dir/kafka-run-class $EXTRA_ARGS io.confluent.support.metrics.SupportedKafka "$@"
## connect
cat connect-distributed
## 此处省略N行,最后
exec $(dirname $0)/kafka-run-class $EXTRA_ARGS org.apache.kafka.connect.cli.ConnectDistributed "$@"

每个应用的启动都开启远程debug 并且端口都是默认的不冲突才怪,知道了原因解决就不是问题了,于是乎做如下小优化,只有在启动connect的时候才启用debug

# Set Debug options if enabledif [ "$1" = "org.apache.kafka.connect.cli.ConnectDistributed" ]; thenKAFKA_DEBUG=true
fi

重启应用查看connect 日志

...
Listening for transport dt_socket at address: 5005
...

看到如上关键日志说明你服务端debug开启成功了,少年嗨起来吧!

本地开启连接远程debug

需要用的源代码,自行github下载,我使用的是idea将源码导入后直接新建一个运行窗口配置如下:

点击debug后,想断点哪里就断点哪里。

后续

开启debug 成功后,将之前 采坑(一)(二) 猜想走了一遍猜想的没问题,运行是就是这样的,下篇说下时间转换问题。

Debezium系列- kafka connet debug相关推荐

  1. Debezium系列之:使用Debezium接入PostgreSQL数据库数据到Kafka集群的详细技术文档

    Debezium系列之:使用Debezium接入PostgreSQL数据库数据到Kafka集群的详细技术文档 一.概述 二.连接器的工作原理 1.安全 2.快照 3.Ad hoc snapshots ...

  2. Debezium系列之:使用Debezium接入SQL Server数据库数据到Kafka集群的详细技术文档

    Debezium系列之:使用Debezium接入SQL Server数据库数据到Kafka集群的详细技术文档 一.Debezium概述 二.SQL Server 连接器的工作原理 1.Snapshot ...

  3. Debezium系列之:实现不同表中的数据始终发往对应的kafka topic分区,支持根据表中任意字段分发数据到Kafka topic多个分区

    Debezium系列之:实现不同表中的数据始终发往对应的kafka topic分区,实现支持根据表中任意字段分发数据到Kafka topic多个分区 一.需求背景 二.ComputePartition ...

  4. debezium系列之:Kafka Connect

    debezium系列之:Kafka Connect 一.Source和Sink 二.Task和Worker 三.Kafka Connect特性 四.独立模式 1.Source连接器的用法 2.Sink ...

  5. Debezium系列之:安装部署debezium2.0以上版本的详细步骤

    Debezium系列之:安装部署debezium2.0以上版本的详细步骤 一.相关技术博客 二.升级debezium2.0以上版本注意事项 三.安装jdk 四.修改kafka相关参数 五.启动kafk ...

  6. Debezium系列之:Debezium2.X之PostgreSQL数据库的Debezium连接器

    Debezium系列之:Debezium2.X之PostgreSQL数据库的Debezium连接器 一.概述 二.连接器的工作原理 1.安全 2.快照 3.临时快照 4.触发临时快照 5.增量快照 6 ...

  7. Debezium系列之:快速了解Debezium 2.0.0.Final新的特性

    Debezium系列之:快速了解Debezium 2.0.0.Final新的特性 一.对核心Debezium 的更改 1.需要 Java 11 2.改进的增量快照 3.交易元数据变化 4.多分区模式现 ...

  8. Debezium系列之:增加心跳检测heartbeat.interval.ms

    Debezium系列之:增加心跳检测heartbeat.interval.ms 一.需求背景 二.心跳检测含义 三.增加心跳检测参数 四.查看心跳检测topic 五.修改心跳检测topic前缀 一.需 ...

  9. Debezium系列之:Debezium UI部署详细步骤

    Debezium系列之:Debezium UI部署详细步骤 一.安装docker 二.修改docker镜像仓库 三.启动debezium ui命令详解 四.启动debezium ui 五.登陆debe ...

最新文章

  1. GLPI生成中文PDF报表
  2. 2014 UESTC暑前集训搜索专题解题报告
  3. linux redhate7 yum源,更换Red Hat Enterprise Linux 7 64位的yum为centos的版本
  4. java cron工具类_Java工具类之:包装类
  5. 《引爆点》读书笔记(一)
  6. [Project Euler] 来做欧拉项目练习题吧: 题目012
  7. 阿里开源物联网操作系统 AliOS Things 3.0 发布,集成平头哥 AI 芯片架构!
  8. C++实践參考——二进制文件浏览器
  9. 语义slam_【语义SLAM】MIT 新开源语义VIOSLAM框架 kimera
  10. 关于编译ns3的myfirst.cc问题
  11. 《翻译与本地化CAT软件实用教程》目录
  12. 大数据技术Spark详解
  13. 【65】如何通过sys文件系统remove和probe一个PCI设备
  14. 这是我看过把Spring Cloud核心组件讲的最明白的一个故事了
  15. Excel多个表格通过相同的列合并成一个表格
  16. 5种类型的图像注释简介
  17. Ace - Responsive Admin Template
  18. MUI-grid(栅格),超小屏xs和小屏幕sm
  19. 邮箱163登录入口?邮箱163注册格式是什么?
  20. linux watch 查看文件,linux watch肿么退出

热门文章

  1. 1、IDEA安装与破解教程
  2. mysql数据库回滚日志_超干货!为了让你彻底弄懂 MySQL 事务日志,我通宵搞出了这份图解...
  3. U盘安装win10时,出现“Windows无法打开所需文件D:\Sources\install.wim”解决办法
  4. BDF 字体文件格式(转)
  5. 操作系统基本原理(软件设计师考试)
  6. 希尔贝壳荣获 “悟道之巅——AI创新应用大赛”主赛道优胜奖
  7. 2021考研,有多少学校计算机改408?
  8. docker启动nginx命令
  9. 解决keil-5中stm32f103系列使用ST-Link下载程序时不能连接的问题。“flash download failed ”
  10. 虾皮延迟发货多久取消订单?