Linux

選擇 Kafka 中的分區數

  • August 6, 2016

我閱讀了 apache kafka 的文件,但找不到關於在任何情況下應該使用多少個分區的範例。

例如,假設我每分鐘有 5000 個消息/條目,對於這種情況,我應該有多少個分區(或者你推薦)?

或者有沒有辦法計算這個?也許有一個我可以參考的值表?

沒有很好的預設分區數,您應該提供更多資訊。

這取決於消息的大小、您的平台和使用模式。伺服器可以儲存所有帶有保留集的消息嗎?如果不是,您應該將數據拆分為實例的多個分區。如果您需要更好的吞吐量,或者如果您需要按順序處理消息,或者可以在對訂單沒有特別限制的情況下使用數據,則情況相同。還有一個你期望消息被消費的延遲問題。如果您的消息很重要,您必須為每個分區添加副本並確認所有副本上的所有消息,這樣會降低吞吐量。

您還需要指定您提供的數字是否與生成或消耗的消息有關。

考慮到 Kafka 是為快速處理消息而建構的,每分鐘 5000 條消息非常低。我很容易達到每台 1kb 大小的伺服器每秒注入 10000 條消息。

每分鐘 5000 條消息每秒產生 84 條消息,因此如果您的消費者應用程序的一個實例可以處理這個數量,那麼您很好,否則您可以考慮添加分區並並行執行多個消費者應用程序,每個消費者應用程序將負責一個分區。

Confluent Inc發布了一篇關於如何選擇分區數量(以及副本數量)的部落格文章。

引用自:https://serverfault.com/questions/795098