我正在尝试使用FlinkKafkaSource从多个Kafka主题消费。
我正在尝试构建一个监控面板来捕捉度量,比如有多少消息被发送到这些主题等。
我可以创建多个来源(每个主题一个(并加入它们。FlinkKafkaConsumer如何允许您传递主题列表,因此如果我创建一个单一来源并从所有主题消费,它将不那么复杂。
与为每个主题创建一个Source相比,这样做有什么缺点吗。(Flink为每个主题/分区创建了多少并发消费者。这是可配置的吗?例如,如果我使用SpringBoot,我可以在ConcurrentKafkaListenerContainerFactory上指定并发性(
如果Flink使用相同的并发性,即我使用的是"单个主题"还是"多个主题",那么我认为使用"单个源"可能会限制我可以使用的消息量。
谢谢Sateesh
KafkaTopicPartitionAssigner
以循环方式将每个主题的分区均匀地分布在子任务中。分区0分配给的子任务是使用主题名称确定的。
这是为了在不需要任何干预的情况下,在平行工人之间均匀分配负载。但是,如果您确实想要显式、细粒度的控制,则应该坚持实例化单独的消费者。