4.7. データ損失を回避するための障害からの復旧


コンシューマーグループ内で障害が発生した場合、Kafka は効果的な検出と回復のために設計されたリバランスプロトコルを提供します。こうした障害による潜在的な影響を最小限に抑えるための重要なストラテジーの 1 つは、max.poll.records プロパティーを調整して、効率的な処理とシステムの安定性のバランスを取ることです。このプロパティーは、コンシューマーが 1 回のポーリングでフェッチできるレコードの最大数を決定します。max.poll.records を微調整すると、制御された消費率を維持し、コンシューマーによるコンシューマー自体や Kafka ブローカーへの過負荷を防ぐことができます。

さらに、Kafka は、session.timeout.msheartbeat.interval.ms などの高度な設定プロパティーを提供します。これらの設定は通常、より特殊なユースケースのために予約されており、標準的なシナリオでは調整が必要ない場合があります。

session.timeout.ms プロパティーは、コンシューマーがコンシューマーグループ内でアクティブであることを示すために Kafka ブローカーにハートビートを送信しなくてよい最大時間を指定します。コンシューマーがセッションタイムアウト内にハートビートを送信できなかった場合、コンシューマーは非アクティブとみなされます。非アクティブとしてマークされたコンシューマーは、トピックのパーティションのリバランスをトリガーします。session.timeout.ms プロパティーの設定値が低すぎると誤検出が発生する可能性があり、設定値が高すぎると障害からの回復が遅れる可能性があります。

heartbeat.interval.ms プロパティーは、コンシューマーが Kafka ブローカーにハートビートを送信する頻度を決定します。連続するハートビート間の間隔が短いため、コンシューマーの障害をより迅速に検出できます。ハートビートの間隔は、セッションタイムアウトより短くする必要があります (通常はセッションタイムアウトの 3 分の 2 にする必要があります)。ハートビートの間隔が短くなると、誤ってリバランスを行う可能性が低くなりますが、ハートビートを頻繁に行うとブローカーリソースのオーバーヘッドが増えます。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.