2015-11-12 26 views
6

Sono nuovo di kafka e sto cercando di capire se c'è un modo di leggere i messaggi dall'ultimo offset consumato, ma non dall'inizio.Come far leggere al consumatore kafka l'ultimo offset consumato ma non dall'inizio

Sto scrivendo un caso esemplificativo, in modo che la mia intenzione non diventi deviante.

Eg: 
1) I produced 5 messages at 7:00 PM and console consumer consumed those. 
2) I stopped consumer at 7:10 PM 
3) I produced 10 message at 7:20 PM. No consumer had read those messages. 
4) Now, i have started console consumer at 7:30 PM, without from-beginning. 
5) Now, it Will read the messages produced after it has started. Not the earlier ones, which were produced at 7.20 PM 

C'è un modo per ottenere i messaggi prodotti dall'ultimo offset consumato.?

risposta

4

Sono nuovo di kafka e sto cercando di capire se c'è un modo per leggere i messaggi dall'ultimo offset consumato, ma non dall'inizio.

Sì, è possibile utilizzare l'utente della console per leggere dall'ultimo offset consumato. È necessario aggiungere il flag consumer.config durante il richiamo di kafka-console-consumer.

Esempio: -

[[email protected] bin]# ./kafka-console-consumer.sh --topic test1 --zookeeper localhost:2181 --consumer.config /home/mrnakumar/consumer.properties 

Qui /home/mrnakumar/consumer.properties è un file contenente group.id. Ecco come i /home/mrnakumar/consumer.properties guarda: -

group.id = consoleGroup

Withoug usando consumer.config, è possibile leggere sia dall'inizio [da utilizzando --from-beginning] o solo la fine del log. La fine del registro indica tutti i messaggi pubblicati dopo l'avvio dell'utente.

+1

Sì, se abbiamo dato un ID di gruppo, quindi i dati che vengono letti dall'ultimo punto consumato. Se siamo in esecuzione senza id di gruppo, stiamo prendendo in considerazione solo i dati dopo che è stato avviato .. Grazie ... – Srini

+0

È anche possibile commettere offset tramite console utente per un gruppo di consumatori specifico? – clausmc

3

È necessario impostare il parametro auto.offset.reset nella configurazione utente su largest, in modo da leggere tutti i messaggi dopo l'ultimo spostamento commesso.

+0

@Srini non è necessario impostare questa proprietà su un valore numerico, il valore di questa proprietà deve essere 'maggiore' in modo da consumare dalla fine del flusso. – leshkin

+0

ha funzionato per me. Grazie! Ho appena aggiunto al file consumer.properties la seguente riga: auto.offset.reset = maggiore –

Problemi correlati