我正在开发一个springboot应用程序,它在kafka主题中为不同的分区重新平衡(例如700个主题,每个主题有10个分区,即7000个分区)。但我想创建多个DockedApp示例,其中应用程序将包含所有700个主题名称,但它应该只选择前25个分区并取消订阅其他分区)
@KafkaListener( topics = "#{kafkaProperties.getTopics()}" )
kafkaproperties.gettopics()返回所有700个主题名
我正在开发一个springboot应用程序,它在kafka主题中为不同的分区重新平衡(例如700个主题,每个主题有10个分区,即7000个分区)。但我想创建多个DockedApp示例,其中应用程序将包含所有700个主题名称,但它应该只选择前25个分区并取消订阅其他分区)
@KafkaListener( topics = "#{kafkaProperties.getTopics()}" )
kafkaproperties.gettopics()返回所有700个主题名
1条答案
按热度按时间avwztpqn1#
正如我在要求澄清的初始评论中所说的,对于这样的分区分配方案,您将需要实现一个自定义的
ConsumerPartitionAssignor
.每个示例应选择数量有限的线程,每个线程有一个主题/分区
示例不“选择”主题/分区;选择一个示例并决定哪个示例获得哪个主题/分区。
查看其javadocs。
要向示例添加更多线程(使用者),请增加容器并发性。
对于大量示例,我建议
COOPERATIVE
再平衡协议。