Amazon Managed Service für Apache Flink war zuvor als Amazon Kinesis Data Analytics für Apache Flink bekannt.
Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Unbegrenztes Staatswachstum
Wenn Ihre Anwendung veraltete Zustandsinformationen nicht ordnungsgemäß löscht, sammeln sich diese kontinuierlich an und führen zu Leistungs- oder Stabilitätsproblemen der Anwendung. In diesem Abschnitt werden Symptome und Schritte zur Behebung dieses Problems beschrieben.
Symptome
Dieses Problem kann folgende Symptome aufweisen:
Die
lastCheckpointDuration
-Metrik nimmt allmählich zu oder steigt sprunghaft an.Die
lastCheckpointSize
-Metrik nimmt allmählich zu oder steigt sprunghaft an.
Ursachen und Lösungen
Die folgenden Bedingungen können dazu führen, dass Ihre Anwendung Zustandsdaten ansammelt:
In Ihrer Anwendung werden Zustandsdaten länger aufbewahrt, als sie benötigt werden.
Ihre Anwendung verwendet Fensterabfragen mit einer zu langen Dauer.
Sie haben TTL für Ihre Zustandsdaten nicht festgelegt. Weitere Informationen finden Sie unter State Time-To-Live (TTL)
in der Apache Flink-Dokumentation. Sie führen eine Anwendung aus, die von Apache Beam Version 2.25.0 oder neuer abhängt. Sie können sich von der neuen Version der Lesetransformation abmelden, indem Sie Ihre BeamApplicationProperties mit den wichtigsten Experimenten und Werten erweitern.
use_deprecated_read
Weitere Informationen finden Sie in der Apache-Beam-Dokumentation.
Manchmal sind Anwendungen mit einem stetigen Zuwachs der Zustandsgröße konfrontiert, was auf lange Sicht nicht nachhaltig ist (eine Flink-Anwendung läuft schließlich unbegrenzt). Manchmal kann dies darauf zurückgeführt werden, dass Anwendungen Daten im Zustand speichern und alte Informationen nicht ordnungsgemäß veralten lassen. Aber manchmal werden einfach unangemessene Erwartungen an das gestellt, was Flink bieten kann. Anwendungen können Aggregationen über große Zeitfenster hinweg verwenden, die sich über Tage oder sogar Wochen erstrecken. Sofern sie nicht verwendet AggregateFunctions
Darüber hinaus muss die Anwendung bei der Verwendung von Prozessfunktionen zur Implementierung benutzerdefinierter Operatoren Daten aus dem Zustand entfernen, die für die Geschäftslogik nicht mehr benötigt werden. In diesem Fall time-to-live kann der Status
Zu Debugging-Zwecken kann es sinnvoll sein, inkrementelle Checkpoints zu deaktivieren, um schneller zu überprüfen, ob die Checkpoint-Größe tatsächlich abnimmt oder sich stabilisiert (und um den Effekt der Verdichtung in RocksBS zu vermeiden). Dafür ist allerdings ein Ticket an das Serviceteam erforderlich.