すべてのプロダクト
Search
ドキュメントセンター

:Apache KafkaのMessage Queueのパーティションの消費時間は異なります

最終更新日:Sep 25, 2024

問題の説明

Apache KafkaのMessage Queueのパーティションの消費時間は、次のように異なります。

  • 各パーティションの消費時間は大きく異なります。

  • 一部のパーティションの消費時間は大幅に遅れています。

  • 一部のシャードでは、消費時間が故障しています。

原因

現在、Message Queue for Apache Kafkaコンソールの [コンシューマーグループ] ページでは、このメッセージの消費時間ではなく、このパーティションで最後に消費されたメッセージの保存時間を確認します。 各パーティションの最新の消費時間は異なります。 これは、パーティションが異なる時間にプロデューサメッセージを受信するためであり得る。 たとえば、シャードが常に最初にプロデューサからメッセージを受信する場合、シャードの最新の消費時間は他のシャードの消費時間よりも早くなります。

説明

注: メッセージの蓄積ステータスを表示する方法の詳細については、「消費ステータス」をご参照ください。

パーティションが異なる時間にプロデューサーメッセージを受信するのはなぜですか? 理由は次のとおりです。

同じコンシューマーグループ内のすべてのコンシューマーインスタンス (N) は、パーティション数 (M) に基づいて分散されます。 2つのメッセージタイプは次のとおりです。

  • パーティションの数Mは分割され得るコンシューマインスタンス数N: メッセージに割り当てられるコンシューマの数が均一であることを指定します。 例えば、パーティションの数Mが24であり、コンシューマインスタンスの数Nが6である場合、各コンシューマインスタンスは4つのパーティション (24 = 6*4) を消費します。 メッセージが均等に消費されるかどうかは、プロデューサーが送信したメッセージが各パーティションに均等に分散されるかどうかによって異なります。

  • パーティションの数Mは、インスタンスのコンシューマ数Nを正確に分割することはできない。 たとえば、シャードの数Mが24である場合、コンシューマインスタンスの数は5であり、4つのコンシューマインスタンスはそれぞれ5つのパーティションを消費し、残りの1つのコンシューマインスタンスは4つのパーティションを消費します。つまり、24 =( 4*5 ) + ( 1*4) です。 各コンシューマの処理パフォーマンスが一貫している場合、5つのパーティションを持つコンシューマインスタンスの消費速度は、4つのパーティションを持つコンシューマインスタンスの消費速度よりも遅くなります。

解決策

原因問題に応じて、各パーティションの消費時間の不整合は、フラクショナルパーティション、コンシューマインスタンスの数、プロデューサによって送信されたメッセージの数、および各コンシューマの処理パフォーマンスなどの様々な要因を有します。 したがって、それはエラー状態ではなく、無視することができます。

適用範囲

  • Message Queue for Apache Kafka