レプリカの1つが失敗し、そのレプリカからのパーティションが他のブローカーに再割り当てされている場合、Kafkaプロデューサにはどうなりますか?彼らは失敗するだろうか?または、このフェールオーバープロセスは完全に透過的ですか?リカバリ中に生産者がカフカのトピックに書き込むことはできますか?
0
A
答えて
1
構成可能な期間内に新しいリーダーを障害のあるパーティションリーダーに割り当てることができる限り、プロセスは透過的です。
ブローカ内のリーダーが失敗したパーティションに割り当てられたメッセージは、request.timeout.msのプロデューサでキューに入れられます。この時間内に新しいリーダーが割り当てられている場合(これは、複数のブローカーとRF> 1を持つ通常のケースです)、キューに入れられたすべてのメッセージが新しいリーダーに送信されます。失敗したパーティションの新しいリーダーをその時間後に割り当てることができない場合、プロデューサはorg.apache.kafka.common.errors.TimeoutException:Batch Expiredをスローします。
新しいリーダーが利用可能になる前に、プロデューサが送信バッファ(設定可能なサイズbuffer.memory)を満たすこともあります。その場合、プロデューサはmax.block.msをブロックし、その後もTimeoutExceptionをスローします。
0
プロデューサの了解(acks
)とretries
の設定、ブローカ側min.insync.replicas
の設定、およびトピックreplication-factor
によって異なります。
適切な設定と適切なクラスタサイズをお持ちの場合、レプリカフェールオーバーはほとんどの場合透過です。 たとえば、acks = 1と2回または3回再試行し、min.insync.replicasはトピック複製率未満です。
関連する問題
- 1. カフカは保持期間を超えてトピックに書き込むことができます
- 2. ファイルに書き込むことはできませんが、テキストに書き込むことができます
- 3. subprocess.wait中に書き込むことはできません
- 4. スパークストリーミングを使用してカフカのトピックにメッセージを書き込むときは、ただ1つのパーティションに書き込むだけです。
- 5. [HDFSコネクタ+カフカ]スタンドアロンモードで複数のトピックを書き込む方法は?
- 6. カフカでは、1つのカフカトピックを作成し、複数のプロデューサに書き込むことはできますか?
- 7. 生産現場のRailsでCSVに書き込む
- 8. Formatterでファイルに書き込むことはできますか?
- 9. Android、映画の再生中に画面に書き込むことはできますか?
- 10. DynamoDBグローバルセカンダリインデックスに書き込むことはできますか?
- 11. std :: stringに書き込むことはできますか?
- 12. ログファイルにアサートメッセージを書き込むことはできますか?
- 13. NavenがRavenDBデータベースに書き込むことができます
- 14. ユーザーはテキストエリアに書き込むことができません
- 15. 物理アドレスlinuxに書き込むことができます
- 16. Cでファイルに書き込むことができません
- 17. 文字列オブジェクトに書き込むことができますが、なぜ文字列リテラルに書き込むことができませんか?
- 18. この形式のXMLファイルに書き込むことはできますか?
- 19. QTcpSocketにデータを書き込むことができません
- 20. データベースにデータを書き込むことができません
- 21. ApplicationDataフォルダに書き込むことができません
- 22. androidにファイルを書き込むことができません
- 23. filestreamに書き込むことができません
- 24. MySQL PDOデータベースに書き込むことができません
- 25. NSMutableArrayをドキュメントディレクトリに書き込むことができません。
- 26. パーティクルフォトンにコードを書き込むことができません
- 27. ファイルに書き込むことができません
- 28. チャネルネットにデータを書き込むことができません
- 29. Sonarqube 5.5バイナリログに書き込むことができません
- 30. ファイルに書き込むことができません