Ich habe eine Anwendung zum Download bestimmter Web-Inhalte, aus einem Strom von URLs von 1 Kafka-Produzent generiert. Ich habe ein Thema mit 5 Partitionen erstellt und es gibt 5 Kafka-Konsumenten. Das Zeitlimit für den Download der Webseite beträgt jedoch 60 Sekunden. Während eine der URL heruntergeladen wird, geht der Server davon aus, dass die Nachricht verloren gegangen ist, und sendet die Daten erneut an verschiedene Konsumenten.Wie erzwinge ich einen Verbraucher zum Lesen einer bestimmten Partition in kafka
Ich habe versucht, alles in
erwähntKafka consumer configuration/performance issues
und
https://github.com/spring-projects/spring-kafka/issues/202
Aber ich halte verschiedene Fehler jedes Mal bekommen.
Ist es möglich, einen bestimmten Verbraucher mit einer Partition in kafka zu binden? ich kafka-Python für meine Anwendung
habe ich versucht, die erste Lösung, die Sie erwähnt. Wie Sie gesagt war ich immer Fehler von _ CommitFailedError: kann Commit nicht abgeschlossen werden, da hat die Gruppe bereits neu gewichtet und die Partitionen mit einem anderen Element zugeordnet. Dies bedeutet, dass die Zeit b/w nachfolgende Aufrufe() war länger als die konfigurierte session.timeout.ms abfragt, die typischerweise bedeutet, dass die poll Schleife zu viel Zeit msg Verarbeitung ausgibt. Sie können diese Adresse entweder durch das Session-Timeout zu erhöhen oder durch die maximale Größe von Chargen reduzieren returnd in poll() mit max.poll.records._ Ich werde die zweite Lösung versuchen und zu aktualisieren – ashdnik