Warum habe ich in meinem Amazon MSK-Cluster eine hohe Verzögerung für die Verbraucher?

Lesedauer: 3 Minute
0

Ich möchte die Verzögerung bei Verbrauchern in meinem Amazon Managed Streaming für Apache Kafka (Amazon MSK)-Cluster beheben.

Lösung

Voraussetzung

Führen Sie den folgenden Befehl aus, um anhand von Amazon CloudWatch-Metriken die Verzögerung bei Verbrauchern zu ermitteln:

./kafka-consumer-groups.sh --bootstrap-server <broker endpoints> --group <groupid> --describe --command-config <properties>

Hinweis: Ersetzen Sie <broker endpoints> durch Ihre Broker-Endpunkte, <groupid> durch Ihre Gruppen-ID und **<properties>**durch Ihre Eigenschaften.

Beheben Sie häufig auftretende Probleme im Zusammenhang mit Verzögerungen bei Verbrauchern

Überprüfen Sie das Verhältnis von Verbraucher zu Partitionen: Jeder Verbraucher in einer Verbrauchergruppe liest auf Grundlage der verfügbaren Verbraucher in der Gruppe aus einer Teilmenge von Partitionen. Wenn jeder Verbraucher mehrere Partitionen nutzt, kann es sein, dass große Datenmengen verarbeitet werden und es zu Verzögerungen kommt.

Halten Sie nach Möglichkeit das Verhältnis von Verbrauchern zu Partitionen nahe 1:1. Wenn die Verzögerung anhält, erhöhen Sie die Anzahl der Partitionen und Verbraucher.

Identifizieren Sie den Ausreißer: Ein Ausreißer kann zu Verzögerungen beim Verbraucher führen. Prüfen Sie, ob eine der Verbraucherpartitionen signifikant mehr beiträgt als die anderen in der Verbrauchergruppe. Identifizieren Sie die Ursache des Problems, um die entsprechende Lösung anzuwenden. Starten Sie als letzte Option die Anwendung neu.

Überprüfen Sie die Ressourcennutzung auf dem Verbraucher-Host: Überwachen Sie die Ressourcen in den Verbraucheranwendungen, um festzustellen, ob Ressourcen knapp werden. Langsame Verbraucher führen zu einer langsamen Nachrichtenverarbeitung und zu Verzögerungen bei den Verbrauchern.

Kontrollieren Sie die Neugewichtung der Verbrauchergruppen: Bei einer Neugewichtung der Verbrauchergruppen werden alle Zuweisungen von Verbraucherpartitionen aufgehoben. Infolgedessen hören die Verbraucher auf, aus dem Thema zu lesen, was zu einer erhöhten Verzögerung führt. Weitere Informationen finden Sie unter Wie behebe ich Probleme bei der kontinuierlichen Neugewichtung meiner Verbrauchergruppe?

Betrachten Sie die Verbraucherkonfiguration: Es kann zu Verzögerungen beim Verbraucher kommen, wenn der Hersteller schneller schreibt, als der Verbraucher lesen kann. Um die Daten zu lesen, sobald sie erzeugt wurden, passen Sie fetch.min.bytes und fetch.partition.min.bytes in der Verbraucher-Konfiguration an. Die Eigenschaften max.poll.interval.ms und max.poll.records können beeinflussen, wie oft der Verbraucher seinen Offset festlegt und wie viele Nachrichten er gleichzeitig abruft. Passen Sie diese Einstellungen an, um Verzögerungen bei den Verbrauchern zu verringern.

Nachrichtengröße verwalten: Große Nachrichtengrößen können zu Verzögerungen beim Verbraucher führen, insbesondere wenn Ihre Verbraucheranwendung Nachrichten langsam verarbeitet. Erhöhen Sie die Anzahl der Verbraucher-Instances, um den Workload zu bewältigen.

Überprüfen Sie Ihr Anwendungsdesign: Das Design Ihrer Verbraucheranwendung kann sich auf Verzögerungen bei den Verbrauchern auswirken. Prüfen Sie, ob Sie Ihre Anwendung so konzipiert haben, dass sie das Volumen der von Ihnen verarbeiteten Nachrichten bewältigen kann. Skalieren Sie Ihre Anwendung hoch oder optimieren Sie Ihre Verarbeitungslogik.

Überwachen Sie die Ressourcennutzung der Broker: Überwachen Sie die CPU-Auslastung auf Brokern, um zu überprüfen, ob Broker überlastet sind, was zu einer erhöhten Verzögerung führt. Weitere Informationen zur Behebung einer hohen CPU-Auslastung finden Sie unter Wie kann ich eine hohe CPU-Auslastung auf einem oder mehreren Brokern in einem Amazon MSK-Cluster beheben?

Optimieren Sie den Cluster für den Workload: Stellen Sie sicher, dass die Kafka-Broker in Ihrem MSK-Cluster für Ihren Workload konfiguriert und optimiert sind. Stellen Sie sicher, dass Ihre Themenpartitionen gleichmäßig auf Ihre Broker verteilt sind. Vergewissern Sie sich, dass Ihr Replikationsfaktor richtig eingestellt ist.

Ermitteln Sie die Netzwerklatenz: Eine hohe Netzwerklatenz zwischen einem Verbraucher und dem MSK-Cluster kann zu einer hohen Verzögerung beim Verbraucher führen. Überprüfen Sie die Netzwerkverbindung zwischen Ihrer Verbraucheranwendung und Ihrem MSK-Cluster. Wenn die Verbindung langsam ist, verschieben Sie Ihre Verbraucheranwendung näher an die Kafka-Broker. Optimieren Sie alternativ Ihre Netzwerkkonfiguration.

AWS OFFICIAL
AWS OFFICIALAktualisiert vor einem Jahr