KStreams - org.apache.kafka.common.errors.TimeoutException: il timeout di 60000 ms è scaduto prima di eseguire correttamente il commit degli offset

Aug 24 2020

Su kafka Streams (versione: 2.3.1), stiamo affrontando problemi con il commit di offset:

org.apache.kafka.common.errors.TimeoutException: il timeout di 60000 ms è scaduto prima di eseguire correttamente il commit degli offset

Questo non sta accadendo regolarmente. Quale potrebbe essere il motivo?

Inoltre, poiché TimeoutException è un'eccezione recuperabile, avevamo in programma di aumentare i tentativi se si tratta di un errore intermittente.

Aiuterà comunque? Abbiamo ATLEAST_ONCEla garanzia di elaborazione e le questioni di ordinazione nel nostro caso d'uso.

Ci auguriamo che non influisca in alcun modo sull'ordine degli offset, poiché KStreams esegue il commit degli offset in sincronia e, se un commit fallisce e viene ritentato, il particolare thread del flusso non elaborerà nuovi record e gli offset non verrebbero disturbati.

Risposte

1 wcarlson Aug 26 2020 at 02:17

Se l'eccezione TimeoutException è transitoria, potrebbe derivare da problemi di rete intermittenti o da un sovraccarico di alcuni broker, nel qual caso può essere utile aumentare i tentativi.

Tuttavia potrebbe essere meglio in termini di latenza scoprire la causa principale del timeout. Per trovare la causa principale, potresti voler esaminare di più i parametri. Ecco un blog che ti farà iniziarehttps://sematext.com/blog/kafka-metrics-to-monitor/

Potrebbe essere risolvibile dando al collo di bottiglia più risorse.