Kafka: Ciągle otrzymuję FETCH_SESSION_ID_NOT_FOUND

9

Ciągle otrzymuję FETCH_SESSION_ID_NOT_FOUND. Nie jestem pewien, dlaczego tak się dzieje. Czy ktoś może mi się tutaj podobać, na czym polega problem i jaki będzie wpływ na konsumentów i brokerów.

Dziennik serwera Kafka:

INFO [2019-10-18 12:09:00,709] [ReplicaFetcherThread-1-8][] org.apache.kafka.clients.FetchSessionHandler - [ReplicaFetcher replicaId=6, leaderId=8, fetcherId=1] Node 8 was unable to process the fetch request with (sessionId=258818904, epoch=2233): FETCH_SESSION_ID_NOT_FOUND.
 INFO [2019-10-18 12:09:01,078] [ReplicaFetcherThread-44-10][] org.apache.kafka.clients.FetchSessionHandler - [ReplicaFetcher replicaId=6, leaderId=10, fetcherId=44] Node 10 was unable to process the fetch request with (sessionId=518415741, epoch=4416): FETCH_SESSION_ID_NOT_FOUND.
 INFO [2019-10-18 12:09:01,890] [ReplicaFetcherThread-32-9][] org.apache.kafka.clients.FetchSessionHandler - [ReplicaFetcher replicaId=6, leaderId=9, fetcherId=32] Node 9 was unable to process the fetch request with (sessionId=418200413, epoch=3634): FETCH_SESSION_ID_NOT_FOUND.

Dziennik konsumentów Kafka:

12:29:58,936 INFO  [FetchSessionHandler:383] [Consumer clientId=bannerGroupMap#87e2af7cf742#test, groupId=bannerGroupMap#87e2af7cf742#test] Node 8 was unable to process the fetch request with (sessionId=1368981303, epoch=60): FETCH_SESSION_ID_NOT_FOUND.
12:29:58,937 INFO  [FetchSessionHandler:383] [Consumer clientId=bannerGroupMap#87e2af7cf742#test, groupId=bannerGroupMap#87e2af7cf742#test] Node 3 was unable to process the fetch request with (sessionId=1521862194, epoch=59): FETCH_SESSION_ID_NOT_FOUND.
12:29:59,939 INFO  [FetchSessionHandler:383] [Consumer clientId=zoneGroupMap#87e2af7cf742#test, groupId=zoneGroupMap#87e2af7cf742#test] Node 7 was unable to process the fetch request with (sessionId=868804875, epoch=58): FETCH_SESSION_ID_NOT_FOUND.
12:30:06,952 INFO  [FetchSessionHandler:383] [Consumer clientId=creativeMap#87e2af7cf742#test, groupId=creativeMap#87e2af7cf742#test] Node 3 was unable to process the fetch request with (sessionId=1135396084, epoch=58): FETCH_SESSION_ID_NOT_FOUND.
12:30:12,965 INFO  [FetchSessionHandler:383] [Consumer clientId=creativeMap#87e2af7cf742#test, groupId=creativeMap#87e2af7cf742#test] Node 6 was unable to process the fetch request with (sessionId=1346340004, epoch=56): FETCH_SESSION_ID_NOT_FOUND.

Szczegóły klastra:

Broker: 13 (1 Broker : 14 cores & 36GB memory)
Kafka cluster version: 2.0.0
Kafka Java client version: 2.0.0
Number topics: ~15. 
Number of consumers: 7K (all independent and manually assigned all partitions of a topic to a consumers. One consumer is consuming all partitions from a topic only) 
Hrishikesh Mishra
źródło
Otrzymuję ten sam błąd w przypadku klienta Kafka Java w wersji 2.3.1. Czy ktoś ma jakieś pomysły?
Bert S.
@ BertS.inzwiększyć tę wartośćmax.incremental.fetch.session.cache.slots
Hrishikesh Mishra
Cześć @HrishikeshMishra. Czy to rozwiązanie (powyżej komentarza) znalazło rozwiązanie tego problemu? Zastanów się nad dodaniem go jako odpowiedzi na swój post i, jeśli to możliwe, z odrobiną wyjaśnienia. Mam ten sam problem, przetestuję powyższe rozwiązanie.
Jorge Campos
To jest dziennik INFO. Jakie są implikacje zignorowania tego?
Bert S.

Odpowiedzi:

1

Zwiększ wartość max.incremental.fetch.session.cache.slots. Wartość domyślna to 1K, w moim przypadku zwiększyłem ją do 10K i naprawiłem.

Hrishikesh Mishra
źródło
Czy to ustawienie brokera?
Bert S.
Tak, ustawienie brokera
Hrishikesh Mishra
Czy jest coś, co można zrobić po stronie konsumenta lub producenta?
Bert S.
Nie wymagało niczego po stronie producenta i konsumenta.
Hrishikesh Mishra
Widzę błąd u mojego konsumenta. Nie mam dostępu do modyfikowania samego brokera. Czy to powinno mnie martwić?
Bert S.
0

Na początku zwiększyłem go z 1K do 2K, a na drugim etapie z 2K do 4K i dopóki limit nie został wyczerpany, nie pojawił się błąd:

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

Ponieważ wydawało mi się, że wyciek sesji przez pewnego niezidentyfikowanego konsumenta nie próbowałem jeszcze limitu 10K, ale czytając odpowiedź Hrishikesh Mishry, na pewno to zrobię. Ponieważ zwiększenie limitu również zmniejszyło częstotliwość błędów, więc pytanie o identyfikację poszczególnych grup konsumentów, które otwierają nadmierną liczbę przyrostowych sesji pobierania, wspomniane tutaj Jak sprawdzić rzeczywistą liczbę miejsc na przyrostową pamięć podręczną sesji pobierania używanych w klastrze Kafka? , może w końcu nie mieć znaczenia.

hdjur_jcv
źródło