View a markdown version of this page

Erreurs d'exception relatives au débit provisionné - 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.

Erreurs d'exception relatives au débit provisionné

Des erreurs exceptionnelles de dépassement du débit provisionné (HTTP 400) se produisent lorsque le taux de demandes pour un flux Kinesis dépasse les limites de débit d'une ou de plusieurs partitions. Chaque partition possède des limites de capacité de lecture et d'écriture spécifiques, et le dépassement de ces limites déclenche cette exception. Les scénarios à l'origine de cette exception incluent : des pics soudains d'ingestion ou de consommation de données, une capacité de partition insuffisante pour le volume de données traité ou une distribution inégale des clés de partition.

Recommandations relatives à la gestion des exceptions
  • Mettez en œuvre des mécanismes de temporisation et de réessai exponentiels.

  • Augmentez le nombre de partitions pour répondre à un débit plus élevé.

  • Assurez-vous que les clés de partition sont correctement distribuées.

  • Surveillez les statistiques des flux.

En outre, l'utilisation du mode de capacité à la demande de Kinesis permet d'ajuster automatiquement les charges de travail et de minimiser l'occurrence de cette exception. Pour plus d’informations, consultez Qu’est-ce qu’ AWS Fault Injection Service ?

Note

Les problèmes de distribution inappropriés ne sont pas liés à la capacité du mode à la demande du dimensionnement automatique.

Pour effectuer une expérience de base
  1. Utilisez des mesures de référence : enregistrez les modèles de débit normaux avant les tests.

  2. Créez une expérience : utilisez l'aws:kinesis:inject-api-provisioned-throughput-exceptionaction.

  3. Configurez l'intensité : commencez par une limitation de 25 % des demandes.

  4. Surveillez les réponses : vérifiez la logique des nouvelles tentatives avec un recul exponentiel.

  5. Validez le dimensionnement : vérifiez que l'auto-scaling déclenche l'activation.

  6. Vérifiez les alarmes : assurez-vous que les CloudWatch alarmes fonctionnent comme prévu.

Les applications doivent mettre en œuvre des stratégies de sauvegarde, de surveillance WriteProvisionedThroughputExceeded et de ReadProvisionedThroughputExceeded mesures appropriées, et déclencher le dimensionnement des partitions le cas échéant.

Détails de l'action
  • Type de ressource : ARN du rôle IAM

  • Opérations cibles :PutRecord,PutRecords, GetRecords

  • Code d'erreur : ProvisionedThroughputExceededException (HTTP 400)

  • Description : simule des scénarios dans lesquels le taux de demandes dépasse les limites de capacité des partitions, teste la régulation des applications et redimensionne les réponses.

Parameters
  • ARN du rôle IAM : rôle utilisé par votre application pour les opérations Kinesis Data Streams.

  • Opérations : opérations cibles :PutRecord,PutRecords,GetRecords.

  • Liste des ressources : les noms de flux ou les identifiants de partition spécifiques.

  • Durée : durée de l'expérience, qui est comprise entre une minute et 12 heures. Dans l' AWS FIS API, la valeur est une chaîne au format ISO 8601. Par exemple, PT1 M représente une minute. Dans la AWS FIS console, vous entrez le nombre de secondes, de minutes ou d'heures.

  • Intensité : pourcentage de demandes à limiter.

Autorisations requises
  • kinesis:InjectApiError

Exemple de modèle d'expérience

L'exemple suivant montre une exception de débit provisionné pour toutes les demandes contenant jusqu'à 5 flux Kinesis Data avec la balise spécifiée. AWS FIS sélectionne les flux à affecter de manière aléatoire. Après 5 minutes, le défaut est supprimé.

{ "description": "Kinesis stream experiment", "targets": { "KinesisStreams-Target-1": { "resourceType": "aws:kinesis:stream", "resourceTags": { "tag-key": "tag-value" }, "selectionMode": "COUNT(5)" } }, "actions": { "kinesis": { "actionId": "aws:kinesis:stream-provisioned-throughput-exception", "description": "my-stream", "parameters": { "duration": "PT5M", "percentage": "100", "service": "kinesis" }, "targets": { "KinesisStreams": "KinesisStreams-Target-1" } } }, "stopConditions": [ { "source": "none" } ], "roleArn": "arn:aws:iam::111122223333:role/role-name", "tags": {}, "experimentOptions": { "accountTargeting": "single-account", "emptyTargetResolutionMode": "fail" } }

Exemple d'autorisations liées aux rôles d'expérimentation

L'autorisation suivante vous permet d'exécuter les aws:kinesis:stream-expired-iterator-exception actions aws:kinesis:stream-provisioned-throughput-exception et sur un flux spécifique qui ont un impact sur 50 % des demandes.