在我的应用程序中,我们创建了大量的流和大量的消费者(每个流一个)。我试图只为我们所有的流使用一个消费者。我是这样做的:
Consumer
.committableExternalSource(
consumer, Subscriptions.assignment(new TopicPartition("topic", 0), group, 50.seconds)
)
这里的问题是我不想手动分配分区。我希望能够通过消费者,但使用Kafka的自动分区分配。所以我尝试了这种方式:
Consumer
.plainPartitionedSource(KafkaConfigurations.consumerSettings(group), Subscriptions.topics("topic"))
.map {
case (topicPartition, source) =>
Consumer
.committableExternalSource(consumer, Subscriptions.assignment(topicPartition), group, 50.seconds)
}.flatMapMerge(10, identity)
但是,我想我仍然会在使用plainPartitionedSource
时为每个来源创建一个消费者,所以,问题是,是否可以使用此方法或类似方法实现,或者我是否#&# 39;我必须为这个用例创建一个不同的(自定义)实现。