全部產品
Search
文件中心

ApsaraMQ for Kafka:為什麼分區消費時間相差較大、滯後明顯或亂序?

更新時間:Dec 27, 2024

同一個Group的所有消費端執行個體,分區消費時間相差較大、滯後明顯或亂序。

現象

雲訊息佇列 Kafka 版控制台Group 管理頁面,單擊目標Group,在Group 详情消费状态頁簽單擊目標Topic操作列的消费详情。某分區的最大位点比其他分區大,說明分區早於其他分區收到來自Producer的訊息。

原因

同一個Group的所有消費端執行個體,會按分區均勻分配。在此條件下,消費的訊息是否均勻,取決於客戶的Producer在發送訊息時,發送訊息對各個分區是否均勻:

  • 如果消費端個數N可以整除12(預設分區個數),那麼分區對消費端的分配就是均勻的。

  • 如果消費端個數N不能整除12(預設分區個數),那麼有的消費端處理的分區個數會比其他消費端大。

    假設有5個消費端和12個分區,那麼會有2個消費端每個消費3個分區,而餘下的3個消費端只消費2個分區。消費的速度主要取決於消費端(您的用戶端)的處理效能。如果處理效能完全一樣,在此條件下分配到的分區個數多1的消費端,消費可能會稍慢。

    說明

    訂用帳戶、按小時後付費執行個體的預設分區個數是12,Serverless執行個體預設分區個數是3。

解決方案

保證消費端個數N整除執行個體的預設分區個數。