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.
Dies ist eine Sammlung wichtiger Aspekte der Ausführung von Produktionsanwendungen auf Managed Service für Apache Flink. Es handelt sich nicht um eine vollständige Liste, sondern um das absolute Minimum dessen, worauf Sie achten sollten, bevor Sie eine Anwendung in Produktion nehmen.
Testen Sie Ihre Anwendungen unter Last
Einige Probleme mit Anwendungen treten nur bei hoher Auslastung auf. Wir haben Fälle gesehen, in denen Anwendungen funktionstüchtig zu sein schienen, aber ein Betriebsereignis die Belastung der Anwendung erheblich erhöhte. Dies kann völlig unabhängig von der Anwendung selbst geschehen. Wenn die Datenquelle oder die Datensenke für ein paar Stunden nicht verfügbar ist, kann die Flink-Anwendung keine Fortschritte machen. Wenn dieses Problem behoben ist, hat sich ein Stau an unverarbeiteten Daten angesammelt, wodurch die verfügbaren Ressourcen vollständig ausgeschöpft werden können. Die Belastung kann dann Fehler oder Leistungsprobleme verstärken, die zuvor nicht aufgetreten waren.
Es ist daher wichtig, dass Sie die richtigen Auslastungstests für Produktionsanwendungen durchführen. Zu den Fragen, die bei diesen Lasttests beantwortet werden sollten, gehören:
Ist die Anwendung bei anhaltend hoher Last stabil?
Kann die Anwendung bei Spitzenlast immer noch einen Savepoint verwenden?
Wie lange braucht die Verarbeitung eines Rückstands von 1 Stunde? Und wie lange von 24 Stunden (abhängig von der maximalen Aufbewahrung der Daten im Stream)?
Steigt der Durchsatz der Anwendung, wenn die Anwendung skaliert wird?
Beim Verbrauch aus einem Datenstrom können diese Szenarien simuliert werden, indem sie für einige Zeit in den Stream übertragen werden. Starten Sie dann die Anwendung und lassen Sie sie von Anfang an Daten verbrauchen. Verwenden Sie beispielsweise TRIM_HORIZON
im Fall eines Kinesis-Datenstroms die Startposition von.
Definieren Sie Max. Parallelität
Die maximale Parallelität definiert die maximale Parallelität, auf die eine zustandsbehaftete Anwendung skalieren kann. Dies wird definiert, wenn der Zustand erstmalig erstellt wird, und es gibt keine Möglichkeit, den Operator über dieses Maximum hinaus zu skalieren, ohne den Zustand zu verwerfen.
Die maximale Parallelität wird festgelegt, wenn der Status zum ersten Mal erstellt wird.
Standardmäßig ist Max. Parallelität auf Folgendes gesetzt:
128, wenn Parallelität <= 128
MIN(nextPowerOfTwo(parallelism + (parallelism / 2)), 2^15)
: wenn Parallelität > 128
Wenn Sie planen, Ihre Anwendung auf > 128 Parallelität zu skalieren, sollten Sie die maximale Parallelität explizit definieren.
Sie können die maximale Parallelität auf Anwendungsebene mit oder mit einem einzelnen Operator definieren. env.setMaxParallelism(x)
Sofern nicht anders angegeben, erben alle Operatoren die maximale Parallelität der Anwendung.
Weitere Informationen finden Sie unter Setting the Maximum Parallelism in der Apache Flink-Dokumentation
Festlegen einer UUID für alle Operatoren
Eine UUID wird bei dem Vorgang verwendet, bei dem Flink einen Savepoint auf einen einzelnen Operator abbildet. Wenn Sie für jeden Operator eine bestimmte UUID festlegen, erhalten Sie eine stabile Zuordnung für den wiederherzustellenden Savepoint-Prozess.
.map(...).uid("my-map-function")
Weitere Informationen finden Sie unter Checkliste zur Produktionsbereitschaft