Kafka-Produzent verliert in die Warteschlange gestellte Nachrichten, wenn der Broker neu gestartet wird

Kafka-Produzent verliert in die Warteschlange gestellte Nachrichten, wenn der Broker neu gestartet wird

Ich habe nicht viel Erfahrung auf dem Gebiet und mache möglicherweise etwas falsch.

Das Problem tritt auf, wenn ich den Kafka-Broker anhalte und nach einer Pause wieder starte. Einige Sekunden nach dem Start des Brokers gibt mein Produzent den Fehler „Thema existiert nicht“ aus. Aufgrund dieses Fehlers gehen alle offline gepufferten Nachrichten verloren. Kurz darauf verschwindet der Fehler und die nachfolgenden Nachrichten werden produziert.

Wenn ich die Servereigenschaft „auto.create.topics.enable“ auf „true“ ändere, tritt nach dem Neustart des Brokers weiterhin der Fehler „Thema existiert nicht“ auf, aber die gepufferten Nachrichten werden wie erwartet erzeugt.

Ich nehme an, dass, wenn die automatische Themenerstellung erlaubt ist, der Fehler „Thema existiert nicht“ als vorübergehend angesehen wird und der Produzent das Senden von Nachrichten wiederholt, bis der Fehler behoben ist. Andernfalls werden keine Wiederholungen durchgeführt und die gepufferten Nachrichten gehen verloren.

Kann ich etwas tun, um „auto.create.topics.enable“ = false zu verwenden und keine Nachrichten zu verlieren?

Ausführen von kafka_2.13-3.4.0 auf WSL2 Ubuntu 22.04.1 und Verwenden eines C++-Clients mit librdkafka v2.1.1 unter Windows 10. Die Einstellungen sind: delivery.timeout.ms=86400000, retries=2147483647, acks=all. Das Thema wird mit Replikationsfaktor 1 und Partitionen 1 erstellt.

verwandte Informationen