【问题标题】:Kafka sink connect - How to create one task per topic(table)Kafka sink connect - 如何为每个主题(表)创建一个任务
【发布时间】:2017-09-20 23:22:34
【问题描述】:

我们为名为 Ampool AD​​S 的产品实施了一个 kafka 接收器连接器,该连接器将来自 kafka 主题的数据提取到相应的 ampool 表中。主题和表格按其名称映射。

我需要将单个主题(从主题 ---> 表中摄取)处理到专用的接收器任务中。

例如,如果我的配置包含 3 个不同的主题(topic1、topic2、topic3),Sink 连接器应该创建 3 个不同的接收器任务,每个任务(每个表)并行地对各自/映射的表进行专用摄取。

注意:将单个主题处理为专用接收器任务的原因是,如果特定表处于脱机/未创建状态,则其易于使用 RetriableException 机制。在配置的时间间隔后,只会重播单个主题/表记录。

kafka connect 框架可以做到这一点吗,如果可以的话怎么办?

【问题讨论】:

  • 我认为不可能实现这一点来判断哪个任务将选择哪个主题。唯一的方法是创建三个连接器,并为每个连接器分配一个主题和 1 个任务。但是,如果主题增加,连接器也必须增加,这不是一个好的设计。

标签: apache-kafka apache-kafka-connect confluent-platform


【解决方案1】:

如果您将任务数设置为等于分区数(我认为您可以从连接器代码中执行此操作 - 在创建配置时),那么每个任务将获得一个分区。

【讨论】:

  • 在分布式模式下,一个工人有很多任务,还是有几个工人有几个任务更好?那里有经验法则吗?
猜你喜欢
  • 2021-07-27
  • 2019-06-23
  • 2020-05-28
  • 2021-10-27
  • 2021-09-08
  • 2020-10-12
  • 2020-06-15
  • 2019-05-12
  • 2020-06-05
相关资源
最近更新 更多