让我们说有 50 卡夫卡的主题,每 3 分区,总共 150 分区。 如果我有一个KafkaListener/消费者的配置用于每个这些150分区的(由于较高的体积在每个分区的),这意味着我有150听众运行。 从什么我的理解是,每个听众获取其自己的线。 这是否意味着将有150个活跃的线在这种情况? 这似乎是一个很多。 是否有任何种方式我可以限制这种最大数量的线程的时间(20)?
让我们说有 50 卡夫卡的主题,每 3 分区,总共 150 分区。 如果我有一个KafkaListener/消费者的配置用于每个这些150分区的(由于较高的体积在每个分区的),这意味着我有150听众运行。 从什么我的理解是,每个听众获取其自己的线。 这是否意味着将有150个活跃的线在这种情况? 这似乎是一个很多。 是否有任何种方式我可以限制这种最大数量的线程的时间(20)?
如果你想要 最大限度地消费的,是的,你需要150 consumer threads
在150 partitions
(1消费者线每分区)。 在情况下你只有20,你不能要 最大限度地消费,而不是的,现在1消费者负责消耗例如150/20=7 partitions
. 这是一个折衷。
你不会想你的应用消耗50 topics
在一段时间。 这导致了规模问题。 我们现在说一个话题,需要数目的增加它的 partitions
午3时至6时,你的水平的规模应用从1到2个实例,这意味着从150 consumers
到300 consumers
只有150+(6-3)=153活动 consumers
其他人成为闲置。