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

ApsaraMQ for Kafka:異なるパーティションのメッセージが異なる時点で消費される理由、または明らかな遅延を伴って順不同で消費される理由

最終更新日:Jan 11, 2025

同じ グループ 内のコンシューマーが、異なるパーティションのメッセージを順不同で、または明らかな遅延を伴って異なる時点で消費します。

問題の説明

Group の管理ApsaraMQ for Kafka コンソール の [グループ] ページで、管理するグループの名前をクリックします。Group の詳細 ページで、消費ステータス タブをクリックし、管理するトピックの 消費の詳細操作 列で 最大オフセット をクリックします。表示されるパネルで、パーティションの 列の値が他のパーティションの最大オフセット列の値よりも大きい場合、そのパーティションは他のパーティションよりも早くプロデューサーからメッセージを受信します。

原因

同じ グループ 内の各コンシューマーは、均等に分割された数のパーティションのメッセージを消費します。そのため、グループ内のコンシューマーがメッセージを均等に消費できるかどうかは、パーティションの数がコンシューマーの数で割り切れるかどうかによって決まります。

  • デフォルトのパーティション数 12 がコンシューマー数 N で割り切れる場合、各コンシューマーはメッセージを均等に消費できます。

  • デフォルトのパーティション数 12 がコンシューマー数 N で割り切れない場合、特定のコンシューマーは他のコンシューマーよりも多くのメッセージを消費します。

    たとえば、5 つのコンシューマーと 12 のパーティションが使用可能です。この場合、2 つのコンシューマーがそれぞれ 3 つのパーティションのメッセージを消費し、他の 3 つのコンシューマーがそれぞれ 2 つのパーティションのメッセージを消費します。消費率は、コンシューマーの処理性能によって異なります。すべてのコンシューマーの処理性能が同じである場合、3 つのパーティションのメッセージをそれぞれ消費する 2 つのコンシューマーは、2 つのパーティションのメッセージをそれぞれ消費する 3 つのコンシューマーよりもメッセージを消費する速度が遅くなります。

    説明

    サブスクリプションまたは従量課金制 ApsaraMQ for Kafka インスタンスのデフォルトのパーティション数は 12 で、サーバーレス ApsaraMQ for Kafka インスタンスのデフォルトのパーティション数は 3 です。

解決策

パーティションの数がコンシューマーの数で割り切れることを確認します。