簡體   English   中英

kafka主題中理想的分區數是多少?

[英]What is the ideal number of partitions in kafka topic?

我正在學習 Kafka 並嘗試為我最近的搜索應用程序創建一個主題。 假設推送到 kafka 主題的數據數量很大。

我的 kafka 集群有 3 個代理,並且已經為其他需求創建了主題。

現在我應該為我最近的搜索主題選擇多少分區? 如果我沒有明確提供分區號怎么辦? 選擇分區號時需要考慮哪些事項?

這將取決於您的消費者的吞吐量。 如果您每秒產生 100 條消息,而您的消費者每秒可以處理 10 條消息,那么您將需要至少 10 個分區(生產/消費)和 10 個消費者實例。 如果您希望該主題能夠處理未來的增長,那么您將希望將分區計數增加得更高,以便您可以添加更多消費者實例來處理新卷。

另一個建議是讓您的分區計數一個高度可整除的數字,以便您可以在保持負載平衡的同時擴大/縮小消費者。 例如,如果您選擇 10 個分區,那么您必須擁有 1、2、5 或 10 個消費者實例,以使它們每次處理都來自相同數量的分區。 如果您選擇 12 個分區,那么您可以使用 1、2、3、4、6 或 12 個消費者實例來平衡。

在決定分區數量之前,我會考慮評估兩件主要事情。

  1. 第一點是,消費者組的分區,消費者如何一起行動。 簡單來說,一個消費者可以消費來自多個分區的消息,但一個分區不能被多個消費者消費。 這意味着,消費者組中的分區數 >= 消費者數是有意義的。 否則,您最終將獲得沒有分配任何分區的消費者。

  2. 第二點是,從延遲與整個角度來看,您的要求是什么。 簡單來說,延遲是執行某些操作或產生某些結果所需的時間。 延遲以時間單位測量——小時、分鍾、秒、納秒或時鍾周期。 吞吐量是每單位時間執行的此類操作或產生的結果的數量

現在,回到從 kafka 的角度進行比較,一般來說,Kafka 集群中的更多分區會導致更高的吞吐量。 但是,如果你真的在尋找低延遲,你應該小心這個數字。

暫無
暫無

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

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