我有一个主题列表(现在是10个),它们的大小将来会增加。我知道我们可以生成多个线程(每个主题)来从每个主题中消费,但在我的情况下,如果主题的数量增加,那么从主题中消费的线程的数量也会增加,这是我不希望的,因为主题不会太频繁地获取数据,所以线程将处于空闲状态。
是否有办法让一个消费者从所有主题中消费?如果是,那么我们如何实现它?此外,Kafka将如何维护抵消?如何用python编写?
编程语言无关。
只需在提交Spark作业时将执行器的数量设置为1。
然而,这比提交你真正需要的要慢,所以我不知道你为什么要这样做。
如果主题的数量增加,那么从主题消耗的线程的数量也会增加
这不是真的。您的上限是执行程序数* core -per-executor。
而且,每个主题的每个分区使用线程,而不是每个主题一个线程