Résilience dans Amazon Kinesis Data Streams - Amazon Kinesis Data Streams

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Résilience dans Amazon Kinesis Data Streams

Le AWS l'infrastructure mondiale est construite autour de AWS Régions et zones de disponibilité. AWS Les régions fournissent plusieurs zones de disponibilité physiquement séparées et isolées, reliées par un réseau à latence faible, à haut débit et hautement redondant. Avec les zones de disponibilité, vous pouvez concevoir et exploiter des applications et des bases de données qui basculent automatiquement d'une zone de disponibilité à l'autre sans interruption. Les zones de disponibilité sont plus hautement disponibles, tolérantes aux pannes et évolutives que les infrastructures traditionnelles à un ou plusieurs centres de données.

Pour plus d'informations sur AWS Régions et zones de disponibilité, voir AWS Infrastructure mondiale.

En plus du AWS infrastructure mondiale, Kinesis Data Streams propose plusieurs fonctionnalités pour répondre à vos besoins en matière de résilience et de sauvegarde des données.

Reprise après sinistre dans Amazon Kinesis Data Streams

Un incident peut se produire aux niveaux suivants lorsque vous utilisez une Amazon Kinesis Data Streams pour traiter des données à partir d'un flux :

  • Un processeur d'enregistrements peut échouer

  • Une application de travail peut échouer, ou l'instance de l'application qui a instancié l'application de travail peut échouer

  • Une EC2 instance hébergeant une ou plusieurs instances de l'application peut échouer

Défaillance du processeur d'enregistrement

Le travailleur invoque les méthodes du processeur d'enregistrements à l'aide de ExecutorServicetâches Java. En cas d'échec d'une tâche, l'application de travail garde le contrôle de la partition que le processeur d'enregistrements était en train de traiter. L'application de travail démarre une nouvelle tâche de processeur d'enregistrements pour traiter cette partition. Pour de plus amples informations, veuillez consulter Limitation de lecture.

Défaillance du travailleur ou de l'application

Si une application de travail ou une instance de Amazon Kinesis Data Streams échoue, vous devez détecter et gérer la situation. Par exemple, si la méthode Worker.run lève une exception, vous devez l'intercepter et la traiter.

En cas de défaillance de l'application elle-même, vous devez détecter cette défaillance et redémarrer l'application. Lorsque l'application démarre, elle instancie une nouvelle application de travail, qui à on tour instancie de nouveaux processeurs d'enregistrements auxquels sont attribuées automatiquement des partitions à traiter. Il peut s'agir des mêmes partitions que ces processeurs d'enregistrements traitaient avant la défaillance ou de partitions qui sont nouvelles pour ces processeurs.

Lorsque le programme de travail ou l'application échoue, que la défaillance n'est pas détectée et que d'autres instances de l'application s'exécutent sur d'autres EC2 instances, les travailleurs de ces autres instances gèrent l'échec. Elles créent d'autres processeurs d'enregistrements pour traiter les partitions qui ne sont plus traitées par l'application de travail en échec. La charge sur ces autres EC2 instances augmente en conséquence.

Le scénario décrit ici suppose que même si le programme de travail ou l'application a échoué, l'EC2instance d'hébergement est toujours en cours d'exécution et n'est donc pas redémarrée par un groupe Auto Scaling.

EC2Défaillance de l'instance Amazon

Nous vous recommandons d'exécuter les EC2 instances de votre application dans un groupe Auto Scaling. Ainsi, si l'une des EC2 instances échoue, le groupe Auto Scaling lance automatiquement une nouvelle instance pour la remplacer. Vous devez configurer les instances pour lancer votre application Amazon Kinesis Data Streams au démarrage.