Kafka, è possibile ottenere l'offset del messaggio dopo la produzione?

3

Durante l'utilizzo di Apache Kafka, è possibile ottenere l'offset del messaggio che è stato prodotto?

Dalla pagina documentation di Kafka si legge:

each message in the partition are assigned a unique sequential id/number called Offset

Ora supponiamo che quando sto producendo un messaggio, voglio recuperare l'offset che gli è stato assegnato.

    
posta user2720864 06.09.2013 - 13:22
fonte

2 risposte

2

Non dovresti farlo da una classe che agisce da produttore, come nella maggior parte dei sistemi di code, poiché la sua responsabilità è semplicemente quella di sparare e dimenticare i messaggi. Il broker eseguirà la corretta gestione dei metadati con id, offset, qualunque cosa sia necessaria per gestire i messaggi in modo corretto.

Puoi ottenere gli offset come consumatore di messaggi da un broker Kafka. Se si guarda nella classe SimpleConsumer , noterai che recupera oggetti MultiFetchResponse che contiene offset come elenco. Inoltre, quando iterate i messaggi di Kafka, vi ritroverete con un MessageAndOffset oggetti che contiene sia il messaggio inviato sia il suo offset.

    
risposta data 06.09.2013 - 13:58
fonte
2

Il protocollo di risposta del produttore fornisce lo scostamento del primo messaggio inviato nel set di messaggi. Se l'API / implementazione che stai utilizzando espone queste informazioni, dovresti essere in grado di recuperarle dalla risposta alla creazione del messaggio. Più qui: link

    
risposta data 27.11.2014 - 20:45
fonte

Leggi altre domande sui tag