>本指南探討了Kafka消費者群組偏移,對於追蹤訊息消耗進度至關重要。 每個消費者組都保留其消耗的每個分區的偏移,這表示最後一個處理的記錄。 這樣可以確保消費者從重新啟動後從正確位置恢復。
>消費者群組偏移是一個簡單的數值標識符,它追蹤消費者在Kafka主題分區中的位置。 每個分區都有每個記錄的順序偏移。消費者群體使用這些偏移來記住它在哪裡停止的地方。例如,從兩個分區主題(P1和P2)中閱讀的消費者組將分別為每個讀取,分別代表P1和P2中的最後一個讀取記錄。
>偏移儲存可以透過兩種方式處理:在Kafka本身或外部系統(資料庫或檔案)中。本文重點介紹了Kafka的內部偏移儲存機制。
> kafka的內部偏移儲存的特殊內部主題中儲存偏移。 Kafka客戶庫庫處理偏移儲存和檢索,使消費者能夠在重新啟動後從其最後一個已知位置恢復。 __consumer_offsets
配置可以確定消費者的行為:auto.offset.reset
latest
earliest
none
enable.auto.commit
>自動限制缺點
手動提交提供精確的控制。透過停用Auto-Commit(
明確提交偏移。這樣可以防止資料遺失。 enable.auto.commit=false
<code class="language-java">while (true) { records = consumer.poll(timeout); // process records consumer.commitSync(); // or consumer.commitAsync() }</code>
自動提交適用於您的應用程式:
否則,建議手動提交。
手動提交提供同步 (commitSync()
) 和非同步 (commitAsync()
) 選項。 commitSync()
會阻塞,直到確認提交為止,確保持久性,但會影響效能。 commitAsync()
是非阻塞的,但需要處理潛在的異常。
消費者群抵消是可靠的 Kafka 消費的基礎。 雖然自動提交簡化了事情,但手動提交提供了更好的控制和資料安全性。 同步提交和非同步提交之間的選擇取決於應用程式的需求,平衡效能和可靠性。 了解這些機制是建立健壯且容錯的 Kafka 應用程式的關鍵。
考慮探索 Coding Harbour 提供的免費 Kafka 迷你課程。
照片來源:@kencheungphoto
以上是KAFKA消費者 - 承諾消費者組偏移的詳細內容。更多資訊請關注PHP中文網其他相關文章!