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

ApsaraMQ for Kafka:コンシューマーがブローカーからメッセージをゆっくりプルする理由、またはブローカーからメッセージをプルできない理由

最終更新日:Jan 11, 2025

この問題は、次のいずれかの原因で発生する可能性があります。消費トラフィックがネットワーク帯域幅に達している、単一メッセージのトラフィックがネットワーク帯域幅を超えている、コンシューマーが同時にプルするメッセージのトラフィックがネットワーク帯域幅を超えている。

問題の説明

コンシューマーがサブスクライブしているトピックはメッセージを受信しますが、消費は最新のオフセットに達していません。ただし、コンシューマーはブローカーからメッセージをゆっくりプルするか、ブローカーからメッセージをプルできません。この問題は、インターネット経由で消費が行われる場合に頻繁に発生します。

考えられる原因

この問題は、次の原因によって発生する可能性があります。

  • 消費トラフィックがネットワーク帯域幅に達している。

  • 単一メッセージのトラフィックがネットワーク帯域幅を超えている。

  • コンシューマーが同時にプルするメッセージのトラフィックがネットワーク帯域幅を超えている。

    説明

    コンシューマーが同時にプルできるメッセージの数とサイズは、次のパラメーターによって決まります。

    • max.poll.records: コンシューマーが同時にプルできるメッセージの最大数。

    • fetch.max.bytes: コンシューマーが同時にプルできるメッセージの最大バイト数。

    • max.partition.fetch.bytes: コンシューマーが単一パーティションから同時にプルできるメッセージの最大バイト数。

解決策

  1. ApsaraMQ for Kafka コンソール にログインして、メッセージをクエリします。

    クエリ結果にメッセージが返された場合は、後続の手順を実行します。

  2. Instances ページの左側のナビゲーションペインで、[オブザーバビリティ] > [cloudmonitor] を選択します。表示されたページで、モニタリングチャート タブをクリックし、instance_internet_rx.rate(bit/s) チャートを表示して、インスタンスの消費トラフィックがネットワーク帯域幅に達しているかどうかを確認します。

    消費トラフィックがネットワーク帯域幅に達している場合は、ネットワーク帯域幅を増やします。

  3. トピック内の単一メッセージのトラフィックがネットワーク帯域幅を超えているかどうかを確認します。

    トラフィックがネットワーク帯域幅を超えている場合は、ネットワーク帯域幅を増やすか、メッセージのサイズを減らします。

  4. コンシューマーが同時にプルするメッセージのトラフィックがネットワーク帯域幅を超えているかどうかを確認します。

    トラフィックがネットワーク帯域幅を超えている場合は、次のパラメーターの構成を変更します。

    • fetch.max.bytes: パラメーターをネットワーク帯域幅よりも小さい値に設定します。

    • max.partition.fetch.bytes: パラメーターを制限値よりも小さい値に設定します。制限値は、次の式を使用して計算されます。制限値 = ネットワーク帯域幅 / メッセージをサブスクライブするパーティションの数。

重要
  • コンシューマーが仮想プライベートクラウド ( VPC ) 内のブローカーにアクセスする場合、このトピックのネットワーク帯域幅は、インスタンスの Elastic Network Interface ( ENI ) の最大書き込みトラフィックを指します。

  • コンシューマーがインターネット経由でブローカーにアクセスする場合、このトピックのネットワーク帯域幅は、インスタンスのインターネット帯域幅を指します。