雖然自動提交offset十分簡單便利,但由於其是基於時間提交的,開發人員難以把握offset提交的時機。因 此Kafka還提供了手動提交offset的API。
手動提交offset的方法有兩種:分別是commitSync(同步提交)和commitAsync(異步提交)。兩者的相 同點是,都會將本次提交的一批數據最高的偏移量提交;不同點是,同步提交阻塞當前線程,一直到提交成 功,並且會自動失敗重試(由不可控因素導致,也會出現提交失敗);而異步提交則沒有失敗重試機制,故
有可能提交失敗。
• commitSync(同步提交):必須等待offset提交完畢,再去消費下一批數據。
• commitAsync(異步提交) :發送完提交offset請求后,就開始消費下一批數據了。