簡體   English   中英

Kafka Broker 嘗試為分區選舉領導者的不同場景是什么?

[英]What are the different scenarios where Kafka Broker tries to elect a leader for a partition?

我試圖列出 Kafka 進行領導人選舉的所有不同場景。 到目前為止,根據我的研究,領導者選舉是在節點出現故障時完成的。 出現在出現故障的節點中的分區需要新的領導者,因此會進行領導者選舉。 是否還有其他情況會發生領導人選舉?

我正在嘗試重現NOT_LEADER_FOR_PARTITION異常,我認為當 Kafka 推送到不是分區領導者的代理時會發生這種情況,我認為這是由於生產者中的元數據過時,這可能是由領導者選舉引起的,因此我的努力重現它。

我嘗試發布和停止其中包含代理的 VM,但尚未能夠復制它。

是的,你的發現是正確的。 基本上,當 Kafka 集群中的一個節點(應該是領導者)出現故障時,就會發生領導者選舉。 但這並不是唯一一次領導人選舉。 以下是領導人選舉中發生的其他情況:

  1. 添加新分區時
  2. 當分區的領導者不可用時
  3. 將分區遷移到不同的節點

來到 NOT_LEADER_FOR_PARTITION 異常,為了復制該異常,您可以關閉領導分區並發送數據。 但是您必須確保您的元數據具有該節點的信息作為領導者。 只是為了更深入地了解這一點,客戶端在發送數據之前獲取元數據(它可能不會一直相同,可能會發生元數據緩存)。 因此,您應該確保客戶端的元數據具有舊領導者/非領導者節點的信息,而不是新領導者的信息。

簡而言之,您可以使用上述任何一種場景來產生 NotLeaderForPartition 異常。 但唯一的標准是您的客戶端需要將數據發送到非領導節點。

暫無
暫無

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

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