我們開始使用Apache Kafka將Timeseries數據保存到Timeseries數據庫中。我們開始的只是一個主題,一個生產者寫這個主題,一個消費者閱讀這個主題,並將數據轉儲到Timeseries數據庫。Apache Kafka縮放使用分區的主題
我們有3個經紀人實例,我們在第一次嘗試中注意到的是,製作人在向主題寫消息時速度非常快。在30分鐘內,我們有大約150萬條消息。消費者每秒只能做300條消息。
我們的下一個方法是分割主題並擁有更多的消費者實例(等於分區數量)。這明顯改善了消費者的寫入速度。現在我的問題是:
如果我將主題分區設置爲6,但我只有3個代理實例,會發生什麼情況。哪個經紀人實例將成爲分區1到6的領導者?
是否有一個公式來確定我需要多少個分區?由於這是我們的測試環境,我們可以使用它並進行縮放。我們可能無法在我們的生產環境中做同樣的事情。那麼如何確定分區大小?
我的問題是哪個經紀商會有領導者分區?我在這裏有6個分區和3個經紀人。那麼每個經紀人都有2個分區作爲主分區嗎? – sparkr
是的,它可以平衡它們。嘗試一下。它還取決於創建主題時正在運行的內容。如果只有一個經紀人在運行,它只會讓領導者去那個經紀人。然後,如果您將第二位經紀人備份起來,它可能會或可能不會自動重新平衡分區領導。有些設置可以控制這種情況(不要從頭頂回收)以及命令行工具來強制重新平衡甚至使設置不平衡。 –