首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >扩容Kafka Connect是否等同于扩容Kafka Consumer?

扩容Kafka Connect是否等同于扩容Kafka Consumer?
EN

Stack Overflow用户
提问于 2018-03-08 13:56:19
回答 2查看 2K关注 0票数 1

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

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

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

假设我有20个主题分区。

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

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

EN

回答 2

Stack Overflow用户

发布于 2018-03-08 17:38:15

Kafka Connect负责平衡其所有工作人员的负载。在包含20个节点的示例中,您可以拥有:(例如)

  • 1个Kafka连接工作器,处理20个分区
  • 5个Kafka连接工作器,每个处理4个分区
  • 20个Kafka连接工作器,每个处理1个分区

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

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

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

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

票数 3
EN

Stack Overflow用户

发布于 2018-03-08 14:36:36

我的理解是,如果您只有一台机器,那么您应该只启动一个kafka connect实例,并将tasks.max属性配置为您希望实现的并行度(在您的示例中,20个可能更好)。这应该允许kafka connect并行读取您的分区,请参阅此here的文档。

理论上,您可以在同一台机器上启动多个实例。如果您需要每个实例使用来自不同主题的数据,那么这样做很有意义。但是,如果您希望实例使用来自同一主题的数据,我认为这样做对您没有好处。在tasks.max的同一进程中使用单独的线程将带来相同的性能,如果不是更好的话。

如果你想让kafka connect在多台机器上运行,并从同一主题中读取数据,那么可以在distributed mode中运行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49166359

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档