Kafka プロデューサーはブローカーを再起動するとキューに入れられたメッセージを失う

Kafka プロデューサーはブローカーを再起動するとキューに入れられたメッセージを失う

私はこの件に関してあまり経験がないので、何か間違っているのかもしれません。

この問題は、Kafka ブローカーを停止し、一時停止後に再起動すると発生します。ブローカーが起動してから数秒後、プロデューサーがエラー「トピックが存在しません」を発行します。このエラーにより、オフラインでバッファされたすべてのメッセージが失われます。すぐにエラーは消え、次のメッセージが生成されます。

「auto.create.topics.enable」サーバー プロパティを「true」に変更すると、ブローカーの再起動後に「トピックが存在しません」というエラーが発生し続けますが、バッファリングされたメッセージは期待どおりに生成されます。

自動トピック作成が許可されている場合、「トピックが存在しません」というエラーは一時的なものとみなされ、プロデューサーはエラーがなくなるまでメッセージの送信を繰り返すと考えられます。そうでない場合は繰り返しは行われず、バッファリングされたメッセージは失われます。

「auto.create.topics.enable」= false を使用してメッセージを失わないようにするにはどうすればよいでしょうか?

WSL2 Ubuntu 22.04.1 で kafka_2.13-3.4.0 を実行し、Windows 10 で librdkafka v2.1.1 を使用した C++ クライアントを使用しています。設定は、delivery.timeout.ms=86400000、retries=2147483647、acks=all です。トピックは、レプリケーション係数 1、パーティション 1 で作成されます。

関連情報