kafkaにおけるAR、ISR、OSRとHW、LEOの関係
Kafka ではパーティションのマルチコピー (レプリカ) メカニズムが導入されており、コピーの数を増やすことで災害復旧機能を向上させることができます。同じメッセージが同じパーティションの異なるコピーに保存されます (同時に、コピーは完全に同じではありません) コピー
間の関係は「1 つのマスターと多数のスレーブ」であり、リーダー コピーが処理を担当します。読み取りおよび書き込み要求。フォロワー コピーは、リーダー コピーとのメッセージ同期のみを担当します。. コピーは異なるブローカーにあり、リーダー コピーが失敗すると、フォロワーのコピーから新しいリーダーを再選して外部サービスを提供する. Kafka は、マルチコピー メカニズムを通じて障害の自動転送を実現し、Kafka クラスター内のブローカーに障害が発生した場合でも、サービスの利用を保証できます。
AR、ISR、OSR
In Kafka, producer and consumer only interact with the Leader copy , and the follower copy is only responsible for message synchronization. 多くの場合、フォロワー コピーのメッセージはリーダー コピーより遅れます。さまざまな同期状況に応じて、Kafka はレプリカを次のコレクションに分割します。
-
AR (Assigned Replicas) : パーティション内のすべてのレプリカをまとめて AR と呼びます。
-
ISR(On-Sync Replicas):リーダー レプリカとある程度同期しているすべてのレプリカ(リーダーコピーを含む) ISR を形成する
-
OSR (Out-of-Sync Replicas ):遅れているレプリカをリーダー レプリカと同期する(リーダーコピー含まず) 構成
AR = ISR + OSR。デフォルトでは、リーダー コピーが失敗すると、ISR セット内のコピーのみが新しいリーダーとして選出される資格があります。
通常の状況では、フォロワー コピーはリーダー コピーと一緒に保持する必要があります。ある程度までの同期、つまり AR=ISR、OSR セットが空です。
ISR と OSR は固定されていません。
- リーダー コピーは、ISR セット内のすべてのフォロワーの遅れ状態を維持および追跡する責任があります. フォロワー コピーが遅れすぎたり失敗したりすると、リーダー コピーはそれを ISR セットから削除します
- リーダー コピーに「追いつく」OSR セットにフォロワー コピーがある場合、リーダー コピーは OSR セットから ISR セットに転送されます。
ハードウェア、レオ
さらに、ISR はHWおよびLEOと密接な関係にあります。
-
HW : HW はHigh Watermarkの略で、通称ハイ ウォーター マークと呼ばれ、特定のメッセージ オフセット(オフセット) を識別します。コンシューマは、このオフセットより前のメッセージのみを取得できます。
下の図に示すように、コンシューマはオフセット 0 ~ 5 のデータのみを消費できます。
- LEO : LEO はLog End Offsetの略で、現在のログ ファイルを識別します。次に書き込まれるメッセージ オフセット上のログに示すように、データ番号 0 ~ 8 が書き込まれている場合、オフセットが 9 の位置が現在のログ ファイルの LEO です。
ISR とハードウェアを使用して、データの信頼性とパフォーマンスの関係を比較検討する
例を使用して、この種の ISR コレクションを具体的に感じてみましょう。
特定のパーティションの ISR に 3 つのコピーがあると仮定すると、HW と LEO は両方とも 3 であり (つまり、3 より前のメッセージのみを消費できます)、メッセージ 3 と 4 がプロデューサーから送信され、リーダーに格納されます。コピー
メッセージが書き込まれた後、フォロワーのコピーはメッセージ同期のためにメッセージをプルします
ある時点で、follower1 のみが正常に同期され、follower2 はメッセージ 3 のみが同期され、メッセージ 4 は同期されません。すると、この時のHWは4、LEOは5です。この時点で、コンシューマーはオフセットが 0 から 3 の間のデータを消費できます。
すべてのレプリカが正常に同期されると、HW と LEO の両方が 5 になり、コンシューマーはオフセット 4 のメッセージを消費できます
まとめ: Kafka は、この ISR メソッドによって有効になりますデータの信頼性とパフォーマンスの関係を比較検討。
この記事の参照先: 「Kafka コアの設計と実践の原則についての深い理解」