首页/数据/数据工程与 ETL 速查/Kafka Connect worker 配置要点
CDC 与同步53 条

Kafka Connect worker 配置要点

用 Debezium 就绕不开 Kafka Connect 的运行配置:worker 需要 bootstrap.servers、group.id(集群名)、offset/config/status 三个内部主题与序列化转换器;开发用 standalone,生产用 distributed 并通过 REST 接口管理连接器。

Kafka Connect worker 要配什么

用 Debezium 就绕不开 Kafka Connect 的运行配置:worker 需要 bootstrap.servers、group.id(即集群名)、offset/config/status 三个内部主题,以及键值的序列化转换器。开发阶段用 standalone 模式,配置与位点存本地文件;生产环境用 distributed 模式,多个 worker 组成集群并通过 REST 接口增删连接器,配置与位点存在 Kafka 内部主题里。

基本信息

distributed生产推荐:多 worker 组集群,用 REST 接口管理连接器
standalone单机开发调试,配置与位点存本地文件
内部主题config 必须为 compacted,offset 与 status 由 Connect 维护
转换器决定消息序列化格式(JSON/Avro 等),要先与下游约定

典型使用场景

  • 生产部署:搭建 distributed worker 集群并规划内部主题副本
  • 格式约定:与下游确认用 JSON 还是 Avro,避免消息结构无法解析
  • 扩容:增加 worker 后由 Connect 自动分配任务
  • 配置备份:确认内部主题副本数足够,避免单点丢失
  • 排错:通过 REST 接口查看连接器与任务状态、重启失败任务

connect-distributed.properties 关键项

connect-distributed.properties 关键项
bootstrap.servers=kafka1:9092,kafka2:9092,kafka3:9092
group.id=debezium-cluster                    # 同一集群的 worker 共用这个 group.id
key.converter=org.apache.kafka.connect.json.JsonConverter
value.converter=org.apache.kafka.connect.json.JsonConverter
key.converter.schemas.enable=false           # 关闭 schema 内嵌,避免消息体积膨胀
value.converter.schemas.enable=false
offset.storage.topic=connect-offsets
config.storage.topic=connect-configs
status.storage.topic=connect-status
offset.storage.replication.factor=3          # 内部主题副本数,生产不宜为 1

模式与内部主题

项作用注意点
group.id标识同一个 Connect 集群不同集群必须不同,否则任务互相干扰
config.storage.topic保存连接器配置必须使用 compacted 清理策略
offset.storage.topic保存连接器位点丢失后需要重新快照
status.storage.topic保存任务状态监控与 REST 查询都依赖它
转换器配置消息序列化格式上下游必须一致,改格式等于改契约
生产环境的内部主题副本数建议与业务关键主题保持一致,否则单个 Broker 故障就可能丢掉连接器配置与位点。
转换器开启 schemas.enable 又没配套 schema 注册,消息里会内嵌完整 schema,体积明显膨胀且下游解析更麻烦,改动前先确认清楚。
连接器配置通过 REST 提交后会持久化到 config.storage.topic:worker 重启不会丢,但换 group.id 等于换一个集群,原有连接器与位点都不会被继承,迁移时特别注意这一点。

易错点

  • 内部主题副本数为 1,Broker 故障后连接器配置与位点一起丢失
  • JSON 转换器开启 schemas.enable 又没配套 schema 注册,消息体积膨胀、下游难解析
  • 多个 Connect 集群使用同一个 group.id,任务互相抢占与干扰
  • 分布式模式仍按单机思路只部署一个 worker,故障后连接器全部停摆

数据来源与参考

  • Kafka Connect 官方文档(Distributed worker configuration)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌