来自多个 Kafka Topic 的 FlinkKafkaSource

FlinkKafkaSource from Multiple Kafka Topics

我正在尝试使用 FlinkKafkaSource 从多个 Kafka 主题中消费。

我正在尝试构建一个监控仪表板来捕获指标,例如向这些主题发送了多少消息等。

我可以创建多个来源(每个主题一个)并加入它们。 FlinkKafkaConsumer 如何允许您传递主题列表,因此如果我创建单一来源并从所有主题中消费,它会变得不那么复杂。

与为每个主题创建一个来源相比,这样做有什么缺点吗? (Flink 为每个 Topic/Partition 创建了多少个并发消费者。这是可配置的吗?例如,如果我使用的是 SpringBoot,我可以在 ConcurrentKafkaListenerContainerFactory 上指定并发)

如果 Flink 使用相同的并发性,即无论我使用单个主题还是多个主题,那么我认为使用单一源可能会限制我可以使用的消息量。

谢谢 萨提什

KafkaTopicPartitionAssigner 以循环方式将每个主题的分区均匀分布在子任务中。分区0分配给的子任务是使用主题名称确定的。

这是为了在并行工作器之间平均分配负载,而无需您进行任何干预。但是如果你确实想要明确的、细粒度的控制,你应该坚持实例化单独的消费者。