As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Erros de exceção de throughput provisionada
Os erros de exceção de throughput provisionado excedido (HTTP 400) ocorrem quando a taxa de solicitação de um fluxo do Kinesis ultrapassa os limites de throughput de um ou mais fragmentos. Cada fragmento tem limites específicos de capacidade de leitura e gravação e exceder esses limites aciona essa exceção. Os cenários que levam a essa exceção incluem: picos repentinos na ingestão ou no consumo de dados, capacidade insuficiente de fragmentos para o volume de dados processado ou distribuição desigual das chaves de partição.
Recomendações para lidar com exceções
-
Implemente mecanismos exponenciais de espera e de novas tentativas.
-
Aumente o número de fragmentos para acomodar uma maior throughput.
-
Assegure que haja uma distribuição adequada das chaves de partição.
-
Monitore as métricas do fluxo.
Além disso, o uso do modo de capacidade sob demanda do Kinesis ajuda a ajustar automaticamente workloads e minimizar a ocorrência dessa exceção. Para ter mais informações, consulte O que é o AWS Fault Injection Service?
nota
Os problemas de distribuição imprópria estão fora da capacidade de escalonamento automático no modo sob demanda.
Para realizar um experimento básico
Use métricas básicas: registre os padrões de throughput normais antes do teste.
Crie um experimento: use a ação
aws:kinesis:inject-api-provisioned-throughput-exception.Configure a intensidade: comece com um controle de utilização de solicitações de 25%.
Monitore as respostas: verifique a lógica de novas tentativas com espera exponencial.
Valide o ajuste de escala: confirme se o ajuste de escala automático aciona a ativação.
Verifique os alarmes: confira se os alarmes
CloudWatchestão funcionando conforme o esperado.
As aplicações devem implementar estratégias de espera adequadas, monitorar as métricas WriteProvisionedThroughputExceeded e ReadProvisionedThroughputExceeded e acionar o ajuste de escala de fragmentos quando apropriado.
Detalhes da ação
-
Tipo de recurso: ARN do perfil do IAM
-
Operações de destino:
PutRecord,PutRecords,GetRecords -
Código de erro:
ProvisionedThroughputExceededException(HTTP 400) -
Descrição: simula cenários em que a taxa de solicitação excede os limites de capacidade de fragmento, testando o controle de utilização de aplicações e ajustando a escala das respostas.
Parâmetros
-
ARN do perfil do IAM: perfil usado por sua aplicação para as operações do Kinesis Data Streams.
-
Operações: operações de destino:
PutRecord,PutRecords,GetRecords. -
Lista de recursos: nomes específicos do fluxo ou identificadores de fragmentos.
-
Duração: duração do experimento, que varia de um minuto a 12 horas. Na AWS FIS API, o valor é uma string no formato ISO 8601. Por exemplo, PT1 M representa um minuto. No AWS FIS console, você insere o número de segundos, minutos ou horas.
-
Intensidade: a porcentagem de solicitações a serem submetidas a controle de utilização.
Permissões obrigatórias
-
kinesis:InjectApiError
Exemplo de modelo de experimento
O exemplo a seguir mostra uma exceção de taxa de transferência provisionada para todas as solicitações de até 5 streams do Kinesis Data com a tag especificada. AWS FIS seleciona os fluxos a serem afetados aleatoriamente. Após 5 minutos, a falha é removida.
{ "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" } }
Exemplo de permissões do perfil do experimento
A permissão a seguir permite que você execute as ações aws:kinesis:stream-provisioned-throughput-exception e aws:kinesis:stream-expired-iterator-exception em um fluxo específico que afeta 50% das solicitações.