2017-12-19 1 views
0

Ich habe eine Java-App, die Nachrichten von Kafka konsumiert und produziert. Ich habe einen Threadpool von 5 Thread, jeder Thread erstellt einen Consumer und da ich 5 Partitionen habe, wird der Job zwischen ihnen entschieden.Kafka Session-Timeout erhöhen, so dass Verbraucher nicht die gleiche Meldung bekommen

Ich habe ein Problem, dass 2 Threads die gleiche Nachricht erhalten, da der Heartbeat nicht zum Broker kommt, da jede Nachrichtenverarbeitung etwa eine Stunde dauert.

Ich versuchte, die session.timeout.ms im Broker zu erhöhen und änderte auch die group.min.session.timeout.ms, so dass der maximale Wert es erlaubt. In diesem Fall kann der Verbraucher nicht gestartet werden.

Irgendwelche Ideen?

+0

Was Kafka-Version Sie laufen scheint geschickt? Seit [Version 0.10.1.0] (https://issues.apache.org/jira/browse/KAFKA-3888) sendet der Java-Consumer Heartbeats in einem Hintergrundthread, sodass eine lange Nachrichtenverarbeitung keine Neuverteilung der Consumer-Gruppen auslösen würde. –

Antwort

0

Die am Leben erhalten ist nicht so das ist nicht wahr, soweit es