具有多个连接器和一个主题的分布式 Kafka Connect

Posted

技术标签:

【中文标题】具有多个连接器和一个主题的分布式 Kafka Connect【英文标题】:Distributed Kafka Connect with multiple Connectors and one Topic 【发布时间】:2019-11-12 03:36:18 【问题描述】:

在分布式模式下,Kafka Connect 集群的偏移管理的行为是什么,即运行多个连接器并监听同一组主题(或一个主题)?

所以在分布式模式下,Kafka Connect 会在 Kafka 中存储 Offset 信息,这个 Offset 会被集群中的 worker 读取并提交。如果我在 Kafka Connect 集群中运行多个连接器来监听同一个主题,会发生什么?一个partition的offset是所有Connector都一样,还是每个Connector在一个partition上的Offset不同?

【问题讨论】:

【参考方案1】:

在幕后,接收器连接器拥有属于消费者组的消费者(通常使用group-id="connect-connectorName")。据我所知,您不能在同一个消费者组中拥有两个接收器连接器(无论如何,在同一个消费者组中拥有两个连接器是没有意义的 - 如果您愿意,您可以简单地增加任务数量)。因此,在您的用例中,当消息进入时,它将由两个连接器处理,并且两个不同的偏移量将保存在 __consumer_offsets 主题中(每个连接器/消费者组一个)。

【讨论】:

以上是关于具有多个连接器和一个主题的分布式 Kafka Connect的主要内容,如果未能解决你的问题,请参考以下文章

Kafka的三种客户端线程模型和一个小惊喜

Kafka的三种客户端线程模型和一个小惊喜

Golang 连接Kafka

有没有办法将 MongoSourceConnector 用于具有单个 kafka 主题的多个数据库?

Apache Kafka教程:主题复制

将多个 oracle 表发送到单个 kafka 主题中