使用topicPattern订阅Kafka主题时,Kafka话题的数量和消费者实例之间的话题分布是否存在已知限制。
我们的用例是,我们需要订阅大量主题(可能只有几千个主题(。所有主题都遵循命名约定,并且只有一个分区。我们不知道现有的主题名称列表,并且可以随时创建符合模式的新主题。我们的消费者应该能够消费来自所有与模式匹配的主题的消息。
-
使用主题模式可以订阅的主题数量有任何限制吗。
-
我们可以扩大消费者实例的数量以阅读更多主题吗
-
主题是否会分布在所有正在运行的使用者实例中。在我们的本地测试中,已经观察到,尽管有多个消费者实例并行运行,但所有主题都由单个消费者读取。只有当服务使用者实例关闭时,主题才会由另一个实例选择(不分布在可用实例中(
所有提到的主题都是单分区主题。
- 我不相信有硬性限制,但
- 否;您不能在运行时更改并发性,但您可以设置比需要的更大的并发性,并且会有空闲的使用者在等待分配
- 您需要提供一个自定义分区分配器,或者选择一个备用分区分配器,例如
RoundRobinAssignor
可能适用于您https://kafka.apache.org/documentation/#consumerconfigs_partition.assignment.strategy