問題の説明
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