Kündigen Kafka Konsole Verbraucher wenn alle Nachrichten gelesen wurden
Weiß ich, es gibt einen Weg, um dies zu tun, aber ich bin nicht in der Lage, um dies herauszufinden. Muss ich halt die kafka-Verbraucher, wenn ich Lesen Sie alle Nachrichten aus der Warteschlange.
Kann jemand irgendwelche Infos dazu?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie pass-parameter: -als Verbraucher-timeout-ms mit einem Wert, der beim starten die Verbraucher und es wird eine exception werfen wenn keine Nachrichten, die gelesen wurden, während dieser Zeit. Zum Beispiel, zu stoppen, die der Verbraucher, wenn keine neuen Nachrichten angekommen sind, in den letzten 2 Sekunden:
kafka.Verbraucher.ConsoleConsumer -Verbraucher-timeout-ms 2000
Können Sie sehen, dieses und alle anderen Eingabemöglichkeiten hier
./kafka-console-consumer.sh --bootstrap-server my-host:9092 --new-consumer --topic test-topic --from-beginning --timeout-ms 2000
ich versuchte es und es funktioniert gut, obwohl es nicht drucken eine Fehlermeldung und stack-trace, wenn er sich beendet.Können Sie SimpleConsumerShell mit nicht-warten-auf-logend option. Sehen SystemTools-SimpleConsumerShell
Beispiel:
Derzeit, Kafka, version 2.11-2.1.1 hat ein Skript namens
kafka-console-consumer.sh
.Er hat eine neue Flagge:
--timeout-ms
.Grundsätzlich, diese Flagge ist die maximale Zeit zu warten, bevor Sie verlassen, wenn es keine neuen log zu warten. Es ist in Millisekunden Begriff.
Können Sie diese Eigenschaft verwenden, um end-Konsole der Verbraucher nach der Lektüre all die Nachrichten.
Wenn Sie nicht tot sind, legen über die Verwendung der Scala-client, die versuchen kafkacat mit der
-e
option, sagen Sie zu verlassen, wenn Ende der partition wurde erreicht.E. g. verbrauchen Sie alle Nachrichten aus mytopic partition 2 und dann Ausfahrt:
Konsumieren oder die letzten 3000 Meldungen und dann exit: