apache-kafka - 扩展 Kafka Connect 与扩展 Kafka Consumer 相同吗?

标签 apache-kafka kafka-consumer-api apache-kafka-connect

我们需要从 Kafka 中提取数据并写入 AWS s3。 Kafka 由单独的部门管理,我们只能访问特定的主题。

根据 Kafka 文档,Kafka Connect 对我来说似乎是一个简单的解决方案,因为我没有任何自定义消息处理逻辑。

通常,当我们运行 Kafka Consumer 时,我们可以使用相同的消费者组运行多个 JVM 以实现可扩展性。特定消费者的消费者JVM可以运行在同一个物理服务器上,也可以运行在不同的物理服务器上。当我想使用 Kafka Connect 时会出现什么情况?

假设我有 20 个主题分区。

如何运行 20 个实例的 Kafka Connect?

我可以在同一个物理实例上运行多个 Kafka Connect 实例吗?

最佳答案

Kafka Connect 负责平衡所有工作线程的负载。在 20 个节点的示例中,您可以:(例如)

  • 1 个 Kafka Connect 工作线程,处理 20 个分区
  • 5 个 Kafka Connect 工作线程,每个处理 4 个分区
  • 20 个 Kafka Connect 工作线程,每个处理 1 个分区

这取决于您的数量和所需的吞吐量。

要跨多个节点以分布式模式运行 Kafka Connect,follow the instructions here并确保为它们提供相同的 group.id ,该 ID 将它们标识为同一集群的成员(因此有资格在它们之间分担任务工作量)。分布式模式的更多配置详细信息 here .

即使您在单个节点上运行 Kafka Connect,我个人也建议在分布式模式下运行它,因为它使横向扩展更加简单(您只需添加其他节点,但执行和配置保持不变)。

我没有看到在单个节点上运行多个 Kafka Connect 工作线程有什么好处。每个 Kafka Connect 工作线程可以根据需要运行多个任务和连接器。

关于apache-kafka - 扩展 Kafka Connect 与扩展 Kafka Consumer 相同吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49166359/

相关文章:

apache-kafka - 负载均衡1-主题Kafka群集

avro - 在不使用架构注册表的情况下从 kafka 消费者检索架构

java - 由于明显的类路径冲突而导致 jersey WadlAutoDiscoverable 转换错误?

apache-kafka - Kafka 消费者(应该)如何应对毒药消息

java - Kafka 存储的消息多于生产的消息

apache-kafka - 使用 Kafka 进行数据集成与更新和删除

apache-spark - 如何将 Spark 消耗的最新偏移量保存到 ZK 或 Kafka 并在重启后可以回读

Golang segmentio/kafka-go 消费者不工作

elasticsearch - java.lang.NoClassDefFoundError:org/apache/http/nio/conn/SchemeIOSessionStrategy

postgresql - Debezium 可以捕获 Postges 物化 View 的变化吗