Jestem stosunkowo nowy w Kafce. Trochę z tym eksperymentowałem, ale kilka rzeczy jest dla mnie niejasnych, jeśli chodzi o offset konsumencki. Z tego, co do tej pory zrozumiałem, kiedy konsument zaczyna, przesunięcie, od którego zacznie czytać, jest określone przez ustawienie konfiguracji auto.offset.reset
(popraw mnie, jeśli się mylę).
Teraz powiedzmy na przykład, że w temacie jest 10 wiadomości (przesunięcia od 0 do 9), a konsument zdarzyło się skonsumować 5 z nich, zanim zniknął (lub zanim go zabiłem). Następnie powiedz, że wznawiam ten proces konsumencki. Moje pytania to:
Jeśli
auto.offset.reset
jest ustawiona nasmallest
, czy zawsze będzie zużywać od offsetu 0?Jeśli
auto.offset.reset
jest ustawiona nalargest
, czy zacznie zużywać od przesunięcia 5?Czy zachowanie w tego rodzaju scenariuszach jest zawsze deterministyczne?
Nie wahaj się komentować, jeśli cokolwiek w moim pytaniu jest niejasne. Z góry dziękuję.
źródło
auto.offset.reset
to nie ma to już znaczenia? Jedyne znaczenie tego ustawienia ma miejsce, gdy nic nie jest zobowiązane (a idealnie byłoby to przy pierwszym uruchomieniu konsumenta)?auto.offset.reset
i nie będzie kontynuował od zatwierdzonego przesunięcia. Jeśli zawsze korzystasz z innej grupy konsumentów (np.auto.offset.reset
Tylko aktualizacja: od wersji 0.9 Kafki i następnych, Kafka używa nowej wersji Java konsumenta, a nazwy parametrów auto.offset.reset uległy zmianie; Z instrukcji:
Po sprawdzeniu zaakceptowanej odpowiedzi poświęciłem trochę czasu na znalezienie tego, więc pomyślałem, że opublikowanie tego może być przydatne dla społeczności.
źródło
Dalej jest przesunięcie. Retencja. Minuty. Jeśli czas od ostatniego zatwierdzenia wynosi>
offsets.retention.minutes
, toauto.offset.reset
również zaczyna działaćźródło
Prolong default value of offsets.retention.minutes to be at least twice larger than log.retention.hours.
Issues.apache.org/jira/browse/KAFKA-3806offsets.retention.minutes
. <B> Po grupa konsument traci wszystkie swoje konsumentów (czyli staje się pusty) jego przesunięcia będą przechowywane przez ten okres przechowywania, zanim się wyrzucić </ b> na autonomiczny konsumentów (przy użyciu przypisania ręcznego), kompensaty wygasną po czasie ostatniego zatwierdzenia plus ten okres przechowywania. (To jest dlaKafka 2.3
)