2016-11-02 9 views
0

カフカレプリケーションデザインwiki(https://cwiki.apache.org/confluence/display/KAFKA/Kafka+Replication)は、カフカフラッシュオフセットをHWおよびLEOとは別のオフセットとして記述しています。 Wikiコメントカフカレプリケーションフラッシュオフセット詳細

Data before the flushed offset is guaranteed to be persisted on disks 

このオフセットでは、wikiにも他の記事でもオンライン上の詳細情報はありません。これについての詳細はご理解いただけます。

答えて

0

私の理解では、HWはフラッシュされたオフセットとは直接関係がありません。フラッシュされたオフセットは、Linuxのデフォルトのライトバック戦略のために、ディスク上に永続化される前のデータがない場所でなければなりません。

パーティションコミットログには10個のメッセージが含まれているとします。これらの10個のメッセージすべてが完全に複製されているため、HWは10になりました。その後、プロデューサーはさらに5つのメッセージを配信します。 LEO(ログ終了オフセット)は15ですが、HWはまだ作成されていないので、HWは10です。これらの新しいメッセージはすべてのフォロワーによって完全に複製されていないためです。しかし、このコミットログはpagecacheに残っていることを覚えておいてください。デフォルトのライトバックのため、カーネルはすべてのメッセージをディスクにフラッシュしていない可能性が高いため、フラッシュされたオフセットはHWの前後にある可能性があります。

+0

上記の例では、フラッシュされたオフセットが10でLEOが15で、同期レプリカがack 5メッセージしか持たないため、HWが15に拡張されている(クライアントが私たちがリーダーノードを緩めると、耐久性を維持してスレーブノードにメッセージの複製を残します。これは正しく聞こえる@amethystic – Yatin