You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kafka 2.13-2.80使用JDBC连接器同步MySQL数据消费失败求助

可能存在的异常原因

  • Kafka日志目录异常:Windows Server环境下,server.properties中log.dirs配置的路径存在权限不足、被其他进程占用、或之前Kafka异常退出导致目录文件损坏的情况,会导致Broker无法加载分区副本,触发offline log directory报错。
  • ZooKeeper会话超时配置不合理:默认的ZK会话超时阈值较低,Windows环境IO性能波动较大时容易触发会话过期,导致Broker与ZK连接中断,Controller选举异常,最终分区无法选举出可用Leader(即报错中的new leader -1)。
  • 主题自动创建开关未开启:若server.properties中auto.create.topics.enable设置为false,JDBC连接器首次写入数据时无法自动创建目标主题,也会导致数据无法写入。
  • JDBC连接器配置错误:mysql.properties中配置的数据库账号无对应表的查询权限、自增列id配置与实际表结构不符、库名/表名拼写错误,也会导致数据无法同步到Kafka。

排查思路

  1. 修复Kafka日志目录异常
    • 停止Kafka、ZooKeeper服务,打开server.properties找到log.dirs配置的路径,清空该目录下所有文件;同时打开zookeeper.properties找到dataDir配置的路径,清空该目录下所有文件(操作会清除所有历史数据,可根据需要备份),之后重启ZK和Kafka服务测试。
    • 检查log.dirs、dataDir对应的目录权限,给运行服务的Windows账号开放完全控制权限,避免权限不足导致写入失败。
  2. 调整ZooKeeper会话超时配置
    • 修改zookeeper.properties中的maxSessionTimeout参数,调大到60000(单位为毫秒,即60秒)。
    • 修改server.properties中的zookeeper.session.timeout.ms参数,调大到30000以上,避免IO波动导致会话意外过期。
  3. 验证Broker与主题状态
    • 服务启动完成后,运行命令kafka-topics.bat --list --bootstrap-server localhost:9092确认test-mysql-jdbc-groups主题是否存在。
    • 运行命令kafka-topics.bat --describe --topic test-mysql-jdbc-groups --bootstrap-server localhost:9092查看主题分区状态,若Leader列显示为-1说明分区仍然异常,重复第一步的目录清理操作即可。
    • 若主题不存在,可手动创建:kafka-topics.bat --create --topic test-mysql-jdbc-groups --bootstrap-server localhost:9092 --partitions 1 --replication-factor 1,之后重启连接器测试。
  4. 验证JDBC连接器配置
    • 登录MySQL数据库,确认配置的账号拥有groups表的查询权限,确认groups表的id字段为自增非空字段,插入数据后id值为递增状态,符合incrementing同步模式的要求。

内容的提问来源于stack exchange,提问作者Abdul Mohammed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 01:36:02