Resilienz in Amazon Kinesis Data Streams - Amazon Kinesis Data Streams

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.

Resilienz in Amazon Kinesis Data Streams

Die AWS globale Infrastruktur basiert auf AWS Regionen und Availability Zones. AWS Regionen bieten mehrere physisch getrennte und isolierte Availability Zones, die über Netzwerke mit niedriger Latenz, hohem Durchsatz und hoher Redundanz miteinander verbunden sind. Mithilfe von Availability Zones können Sie Anwendungen und Datenbanken erstellen und ausführen, die automatisch Failover zwischen Availability Zones ausführen, ohne dass es zu Unterbrechungen kommt. Availability Zones sind besser hoch verfügbar, fehlertoleranter und skalierbarer als herkömmliche Infrastrukturen mit einem oder mehreren Rechenzentren.

Weitere Informationen zu AWS Regionen und Availability Zones finden Sie unter AWS Globale Infrastruktur.

Zusätzlich zur AWS globalen Infrastruktur bietet Kinesis Data Streams mehrere Funktionen, die Sie bei der Unterstützung Ihrer Datenausfallsicherheit und Ihrer Backup-Anforderungen unterstützen.

Notfallwiederherstellung in Amazon Kinesis Data Streams

Wenn Sie Daten aus einem Stream mit einer Anwendung von Amazon Kinesis Data Streams verarbeiten, sind Ausfälle auf folgenden Ebenen möglich:

  • Ausfall eines Datensatzprozessors

  • Ausfall eines Auftragnehmers oder einer Instance der Anwendung, die den Auftragnehmer instanziiert hat

  • Ausfall einer EC2 Instance, die eine oder mehrere Instances der Anwendung hostet

Prozessorausfall aufzeichnen

Der Worker ruft mithilfe von ExecutorServiceJava-Aufgaben Methoden der Datensatzverarbeitung auf. Schlägt die Ausführung einer Aufgabe fehlt, behält der Auftragnehmer die Kontrolle über den Shard, den der Datensatzprozessor verarbeitet hat. Der Auftragnehmer startet eine neue Datensatzprozessoraufgabe für die Verarbeitung des Shards. Weitere Informationen finden Sie unter Drosselung von Lesevorgängen.

Fehler beim Worker oder bei der Anwendung

Wenn ein Worker oder eine Instance der Anwendung Amazon Kinesis Data Streams ausfällt, sollten Sie die Situation erkennen können und angemessen reagieren. Löst beispielsweise die Worker.run-Methode eine Ausnahme aus, müssen Sie diese abfangen und verwalten.

Fällt die Anwendung selbst aus, sollten Sie dies erkennen, damit Sie einen Neustart durchführen können. Wenn die Anwendung gestartet wird, instanziiert sie einen neuen Auftragnehmer, der wiederum neue Datensatzprozessoren instanziiert, denen automatisch Shards zur Verarbeitung zugewiesen werden. Dies können dieselben Shards sein, die der Datensatzprozessor vor dem Ausfall verarbeitet hat, oder neue Shards.

Falls der Auftragnehmer oder die Anwendung ausfällt, der Ausfall nicht bemerkt wird und noch weitere Instances der Anwendung auf anderen EC2-Instances ausgeführt werden, wird der Ausfall von den Auftragnehmern dieser weiteren Instances verwaltet. Sie erstellen weitere Datensatzprozessoren für die Verarbeitung der Shards des ausgefallenen Auftragnehmers. Die Verarbeitungslast für diese EC2 Instances erhöht sich entsprechend.

Bei dem hier beschriebenen Szenario wird davon ausgegangen, dass die hostende EC2-Instance trotz des Ausfalls des Auftragnehmers oder der Anwendung weiterhin ausgeführt wird und deshalb nicht von einer Auto-Scaling-Gruppe neu gestartet wird.

Fehler Amazon EC2 EC2-Instance

Wir empfehlen die Ausführung der EC2 Instances Ihrer Anwendung in einer Auto-Scaling-Gruppe. Wenn dann eine der EC2 Instances ausfällt, startet die Auto-Scaling-Gruppe automatisch eine neue Instance. Sie sollten die Instances so konfigurieren, dass Ihre Anwendung Amazon Kinesis Data Streams beim Start gestartet wird.