[英]How to increase Kafka Consumers no
比如說 - Kafka 主題名稱 - topic_X topic_X 在 Kafka Broker 中有 500 個分區
現在我們為 Consumer_X 組設置了 500 個消費者來處理每個分區。
在哪里運行這 500 個消費者? 單機500線程? 這可能嗎 - 因為線程與核心有關系
如何做到這一點?
即使我們在 Consumer_X 組中減少到 100 個消費者(1 個消費者 =5 個分區),那么上述問題也同樣有效
請解釋一下
消費者組的主要目的是將工作拆分到多台機器上。 每個線程運行一個消費者也是可能的,但在高負載主題場景中,它不會帶來任何價值。
從 Kafka 輪詢記錄非常有效。 通常,處理它們是瓶頸。 因此,主要思想是將工作拆分到多台機器上,以便每個消費者應用程序都能跟上工作負載。
只有在您的用例中,分區和消費者之間的 1:1 關系才有意義:
除非您正在處理需要盡快處理每條記錄的高吞吐量用例,否則分區和消費者之間的 1:1 成本太高,因為每個消費者線程都不是免費的。 例如,不建議將它們放在同一個盒子中,因為您可能只有很少的內核可用並且更高的線程數會導致不斷的上下文切換,從而降低吞吐量。 解決方案是將這些線程分布在多個盒子上,但是它們……成本問題又來了。
我會衡量擁有 100:1 的效率。 這似乎是合理的,特別是如果入口吞吐量不高並且一些消費者滯后是可以容忍的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.