2017-11-06 54 views
6

Jesteśmy coraz losowo NetworkExceptions i TimeoutExceptions w naszym środowisku produkcyjnym:Kafka Producent NetworkException i Timeout wyjątkami

Brokers: 3 
Zookeepers: 3 
Servers: 3 
Kafka: 0.10.0.1 
Zookeeeper: 3.4.3 

Jesteśmy czasami uzyskiwanie ten wyjątek w moich dziennikach producent:

upływającym 10 rekordów dla TOPIC: XXXXXX: 5608 ms minęło od stworzenia partii kreacji plus czas zwłoki.

Liczba milisekund takich komunikatów o błędach ciągle się zmienia. Czasami jego ~ 5 sekund innym razem to do ~ 13 sekund!

I bardzo rzadko otrzymujemy:

NetworkException: Server disconnected before response received. 

Klaster składa się z brokerów i Zookeepers. Serwer producenta i klastra Kafka są w sieci tej samej.

Wykonuję połączenia synchroniczne. Istnieje usługa internetowa, do której wielu użytkowników żąda wywołania swoich danych. Serwis internetowy Kafka ma jeden obiekt Producer, który wykonuje wszystkie wysyłanie. Limit czasu żądania producenta wynosił 1000ms początkowo został zmieniony na 15000ms (15 sekund). Nawet po zwiększeniu limitu czasu w dziennikach błędów nadal są wyświetlane TimeoutExceptions.

Jaki może być tego powód?

+0

Może powinieneś spróbować limit czasu żądania przedłużenia do zobacz, co to robi. –

+0

której wersji kafka używasz? –

+1

Oczywiście, spróbuję tego. Zaskakuje mnie to, że jest to środowisko przedprodukcyjne. Mamy mniejszy ładunek. Nie więcej niż 100 000 wiadomości dziennie.Czy to z powodu przeciążenia sieci? Czy sieć jest zatłoczona nawet przy tak małym obciążeniu? – Shades88

Odpowiedz

0

Rozwiązanie 1

Zmienić

listeners=PLAINTEXT://hostname:9092 

nieruchomość w server.properties złożyć do

listeners=PLAINTEXT://0.0.0.0:9092 

Rozwiązanie 2

Zmienianie Brok er.id do wartości takiej jak 1001, zmień identyfikator brokera, ustawiając zmienną środowiskową KAFKA_BROKER_ID.

Będziesz musiał ustawić zmienną środowiskową KAFKA_RESERVED_BROKER_MAX_ID do omething jak 1001 aby móc ustawić identyfikator pośrednika do 1001.

mam nadzieję, że może pomóc

+0

Nie sądzę, że rozwiązanie 1 może działać. Zmieniłem na 0.0.0.0 w ustawieniach brokera, teraz klienci producenta nie działają, ponieważ serwer jest powiązany w 0.0.0.0 – Shades88