Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Errori di eccezione del throughput assegnato
Il throughput assegnato ha superato gli errori di eccezione (HTTP 400) si verificano quando la frequenza di richiesta per uno stream Kinesis supera i limiti di throughput di uno o più shard. Ogni shard ha limiti di capacità di lettura e scrittura specifici e il superamento di tali limiti attiva questa eccezione. Gli scenari che portano a questa eccezione includono: picchi improvvisi nell'inserimento o nel consumo di dati, capacità insufficiente degli shard per il volume di dati in elaborazione o distribuzione non uniforme delle chiavi di partizione.
Consigli per la gestione delle eccezioni
-
Implementa meccanismi esponenziali di back-off e re-try.
-
Aumenta il numero di shard per garantire un throughput più elevato.
-
Assicuratevi che vi sia una corretta distribuzione delle chiavi di partizione.
-
Monitora le metriche dello stream.
Inoltre, l'utilizzo della modalità di capacità on-demand di Kinesis aiuta a regolare automaticamente i carichi di lavoro e a ridurre al minimo il verificarsi di questa eccezione. Per maggiori informazioni, consulta Che cos’è AWS Fault Injection Service?
Nota
I problemi di distribuzione impropria non rientrano nella funzionalità di scalabilità automatica della modalità on demand.
Per eseguire un esperimento di base
Utilizza le metriche di base: registra i normali modelli di throughput prima del test.
Crea un esperimento: usa l'azione.
aws:kinesis:inject-api-provisioned-throughput-exceptionConfigura l'intensità: inizia con una limitazione delle richieste del 25%.
Monitora le risposte: verifica la logica dei tentativi ripetuti con un back-off esponenziale.
Convalida il ridimensionamento: verifica che l'auto-scaling attivi l'attivazione.
Controlla gli allarmi: assicurati che gli allarmi funzionino come previsto.
CloudWatch
Le applicazioni devono implementare strategie, monitor WriteProvisionedThroughputExceeded e ReadProvisionedThroughputExceeded metriche di back-off adeguati e attivare lo shard scaling quando appropriato.
Dettagli dell'azione
-
Tipo di risorsa: IAM Role ARN
-
Operazioni target:
PutRecord,,PutRecordsGetRecords -
Codice di errore:
ProvisionedThroughputExceededException(HTTP 400) -
Descrizione: simula scenari in cui la frequenza di richiesta supera i limiti di capacità degli shard, testando la limitazione delle applicazioni e scalando le risposte.
Parameters
-
IAM Role ARN: il ruolo utilizzato dall'applicazione per le operazioni di Kinesis Data Streams.
-
Operazioni: operazioni target:,,.
PutRecordPutRecordsGetRecords -
Elenco delle risorse: i nomi o gli identificatori di frammenti specifici dei flussi.
-
Durata: la durata dell'esperimento, che è compresa tra un minuto e 12 ore. Nell' AWS FIS API, il valore è una stringa in formato ISO 8601. Ad esempio, PT1 M rappresenta un minuto. Nella AWS FIS console, si immette il numero di secondi, minuti o ore.
-
Intensità: la percentuale di richieste da limitare.
Autorizzazioni richieste
-
kinesis:InjectApiError
Esempio di modello di esperimento
L'esempio seguente mostra un'eccezione di throughput assegnato per tutte le richieste fino a 5 flussi di dati Kinesis con il tag specificato. AWS FIS seleziona casualmente gli stream da influenzare. Dopo 5 minuti l'errore viene rimosso.
{ "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" } }
Sperimenta un esempio di autorizzazioni di ruolo
La seguente autorizzazione consente di eseguire aws:kinesis:stream-expired-iterator-exception azioni aws:kinesis:stream-provisioned-throughput-exception and su un flusso specifico che influiscono sul 50% delle richieste.