回退延遲精確度
總覽與保證
所有訊息處理和回退皆由 consumer 執行緒處理,因此,延遲精確度是以盡力而為為基礎來保證。如果一個訊息的處理時間超過該 consumer 的下一個訊息的回退期間,則下一個訊息的延遲將高於預期。此外,對於短延遲(約 1 秒或更短),執行緒必須執行的維護工作(例如提交偏移量)可能會延遲訊息處理的執行。如果重試主題的 consumer 正在處理多個分割區,則精確度也可能會受到影響,因為我們依靠從輪詢中喚醒 consumer 並具有完整的 pollTimeout 來進行時間調整。
話雖如此,對於處理單一分割區的 consumer,在大多數情況下,訊息的處理應大約在其確切的到期時間發生。
保證永遠不會在訊息的到期時間之前處理訊息。 |