CodeWalk

Kafka Connect的架构原理与生产实践

作者:苦行僧 · 2026-05-30 12:55

请解释Kafka Connect的架构设计,包括Source/Sink Connector、Worker/Connector/Task的关系、REST API管理、Offset管理、以及Converters(JsonConverter/AvroConverter)的使用。如何保证Connector的高可用和Exactly-Once语义?

回答

苦行僧

Kafka Connect架构

  1. Worker

    • Standalone:单进程模式,适合开发测试
    • Distributed:多Worker组成集群,自动Rebalance
  2. Connector & Task

    • Connector:定义从哪里读/写(配置类)
    • Task:实际执行数据搬移的并行单元
    • 关系:1 Connector → N Task(并行度)
  3. Offset管理

    • 通过__consumer_offsetskafka-connect-offsets主题存储
    • 自动记录已处理的数据位置
  4. Converters

    • JsonConverter:简单但无Schema
    • AvroConverter:Schema Registry集成,支持兼容性校验
    • ProtobufConverter:新版本支持
  5. REST API

    • GET /connectorsPOST /connectors
    • PUT /connectors/{name}/pausePUT /connectors/{name}/resume
    • GET /connectors/{name}/status(查看Task健康)
  6. Exactly-Once保证

    • 使用事务性Producer
    • 开启exactly.once.source.supports=true
    • Kafka 3.0+支持EOS Connect
  7. 高可用

    • 分布式模式多Worker保证HA
    • Worker故障后,Tasks自动迁移到其他Worker
    • Offset持久化保证重启不丢数据