簡體   English   中英

重新平衡Kafka中某個主題的分區的成本

[英]Cost of Rebalancing partitions of a topic in Kafka

我正在嘗試從Kafka提出一種消費設計。 我正在使用0.8.1.1版本的Kafka。 我正在考慮設計一個系統,在該系統中,將每隔幾秒鍾創建一個使用者,使用卡夫卡中的數據,對其進行處理,然后將偏移量提交給卡夫卡后退出。 在任何時間點,期望有250-300個使用者處於活動狀態(在不同計算機上作為ThreadPools運行)。

  1. 分區的重新平衡如何以及何時發生?

  2. 重新平衡消費者之間的分區的成本有多高。 我希望有一個新的消費者能夠完成工作,或者每隔幾秒鍾就會加入同一個消費者群體。 因此,我只想知道重新平衡操作的開銷和延遲。

  3. 假設使用者C1分配有分區P1,P2,P3,並且它正在處理來自分區P1的消息M1。 現在,消費者C2加入了該組。 分區如何在C1和C2之間划分。 是否有可能C1的提交(可能需要一些時間將其消息提交給Kafka)提交給M1會被拒絕,而M1將被視為新消息並傳遞給其他人(我知道Kafka至少傳遞了一次)模型,但想確認重新分區是否有可能導致重新傳遞相同的消息)?

如果我是你,我會重新考慮設計。 也許您需要一個消費者群體?

  1. 每當消費者加入或離開小組時,就會發生重新平衡。

  2. Kafka和當前的消費者肯定是為長期運行的消費者設計的。 新的消費者設計(計划為0.9)將更好地處理短命的消費者。 根據我的經驗,重新平衡需要100-500毫秒,這在很大程度上取決於ZooKeeper的工作方式。

  3. 是的,在重新平衡期間經常發生重復。 這就是為什么我們試圖避免它們。 您可以嘗試通過更頻繁地提交偏移來解決該問題,但是由於300個消費者頻繁提交偏移量,並且許多消費者加入和離開-Zookeeper可能成為瓶頸。

暫無
暫無

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

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