2015-11-12 10 views
6

Jestem nowy w kafce i próbuję zrozumieć, czy istnieje sposób na odczytanie wiadomości z ostatniego przesuniętego przesunięcia, ale nie od początku.Jak sprawić, by kafka stał się czytelnikiem z ostatnio skonsumowanego offsetu, ale nie od początku.

Piszę przykładowy przypadek, więc moja intencja nie zostanie zmieniona.

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 

Czy istnieje sposób na uzyskanie wiadomości wyprodukowanych z ostatnio skonsumowanego przesunięcia?

Odpowiedz

4

Jestem nowy Kafki i próbując zrozumieć jeśli istnieje sposób, aby czytać wiadomości z ostatnim zużywanej offset, ale nie od początku.

Tak, można użyć Konsoli Konsumenta do odczytu z ostatnio skonsumowanego offsetu. Musisz dodać flagę consumer.config podczas wywoływania konsoli kafka-konsumenta.

przykład: -

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

tutaj /home/mrnakumar/consumer.properties jest plikiem zawierającym group.id. Oto jak wygląda /home/mrnakumar/consumer.properties: -

group.id = consoleGroup

Withoug użyciu consumer.config, możliwe jest, aby czytać albo od początku [przez using --from-beginning] lub tylko koniec logu. Koniec dziennika oznacza wszystkie wiadomości opublikowane po uruchomieniu przez konsumenta.

+1

Tak, jeśli daliśmy identyfikator grupy, to dane są odczytywane z ostatnio zużytego punktu. Jeśli działamy bez identyfikatora grupy, rozważamy tylko dane po jego uruchomieniu. Dziękuję .. – Srini

+0

Czy można również dokonywać przesunięć za pośrednictwem konsolety dla określonej grupy konsumentów? – clausmc

3

Powinieneś ustawić parametr auto.offset.reset w konfiguracji użytkownika na largest, aby czytał wszystkie wiadomości po ostatnim zatwierdzonym przesunięciu.

+0

@ Srini nie trzeba ustawiać tej właściwości na wartość liczbową, wartość tej właściwości powinna być "największa", aby można ją było wykorzystać od końca strumienia. – leshkin

+0

pracował dla mnie. Dzięki! Właśnie dodałem do pliku consumer.properties następujący wiersz: auto.offset.reset = największy –

Powiązane problemy