簡體   English   中英

如果我有相同的消費者組名稱來自不同的服務和不同的主題,它會影響 Kafka 性能還是重新平衡影響

[英]Does It affects Kafka performance or rebalance impact If I have same consumer group name form different service and different topics

對於每項服務,我們都有一個特定的 Kafka 主題。
每個服務都有其 Kafka 主題和該主題的消費者組。

  • 服務 1 -> 主題 1 -> 消費者組
  • 服務 2 -> 主題 2 -> 消費者組
  • 服務 3 -> 主題 3 -> 消費者組

這里每個服務都是不同主題的消費者,但他們的消費者組名稱是相同的。

如果我們在同一個組中添加另一個服務,它是否會影響其他 3 個服務,因為它們也共享相同的 ConsumerGroup 名稱,盡管它們綁定到不同的主題? 或者如果一個新的消費者被添加到 Service3,Kafka 需要重新平衡主題分區的消費者? 當其他主題共享消費者組名稱時,它是否會影響它們?

我認為消費者組與主題相關,即使其他主題消費者具有相同的消費者組名稱也不應該影響。

當您將新的消費者添加到同名組中時,它將重新平衡,並暫時停止該組中的所有其他消費者,是的。

理想情況下,如果每個服務都使用自己獨特的主題,則每個服務都將擁有自己的消費者組。 這樣,服務重啟不會影響其他服務。

您可以讓多個消費者訂閱多個主題,擁有相同的消費者組。 但是建議將每個主題訂閱的同一應用程序的所有消費者實例組合到單獨的消費者組名稱中,這就是 KAFKA 相對於 TIBCO EMS 或 IBM Message Broker 等傳統消息隊列實現發布- >訂閱實現模式的方式,因為在在 KAFKA 中,我們只有一個名為Topic的目的地或存儲,而不是傳統系統中的QueueTopic

這也是為了實現 KAFKA 原生功能,例如 LB(負載平衡)、FT(容錯)和更好的每個消費者組(即每個消費者應用程序)的成員管理。

同樣,它有效,只有重新平衡才會成為代碼等生產的問題。

僅供參考,剛剛在我的本地測試了這種行為,並注意到它總是重新平衡,當消費者實例(2 個)手動停止/啟動時。

我有以下堆棧。

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.5.5</version>
</parent>


   <confluent.version>5.2.2</confluent.version>


<dependency>
    <groupId>org.apache.kafka</groupId>
    <artifactId>kafka_2.13</artifactId>
</dependency>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM