

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á.

# Personalize o comportamento de limites de taxas e novas tentativas da KPL
<a name="kinesis-producer-adv-retries-rate-limiting"></a>

Ao adicionar registros de usuário do Amazon Kinesis Producer Library (KPL) usando a operação `addUserRecord()` da KPL, o registro recebe um carimbo de data e hora e é adicionado a um buffer com um prazo definido pelo parâmetro de configuração `RecordMaxBufferedTime`. Essa stamp/deadline combinação de tempo define a prioridade do buffer. Os registros são descarregados do buffer com base nos seguintes critérios:
+ Prioridade do buffer
+ Configuração de agregação
+ Configuração de coleta

Os parâmetros de configuração de coleta e agregação que afetam o comportamento do buffer são os seguintes:
+ `AggregationMaxCount`
+ `AggregationMaxSize`
+ `CollectionMaxCount`
+ `CollectionMaxSize`

Em seguida, os registros descarregados são enviados para o fluxo de dados do Kinesis como registros do Amazon Kinesis Data Streams usando uma chamada para a operação `PutRecords` de API do Kinesis Data Streams. A operação `PutRecords` envia solicitações ao fluxo que ocasionalmente apresenta falhas parciais ou totais. Os registros com falha são automaticamente adicionados de volta ao buffer da KPL. O novo prazo é definido com base no mínimo destes dois valores: 
+ Metade da configuração de `RecordMaxBufferedTime` atual
+ O time-to-live valor do registro

Essa estratégia permite que registros repetidos de usuários do KPL sejam incluídos nas chamadas subsequentes da API do Kinesis Data Streams, para melhorar a taxa de transferência e reduzir a complexidade, ao mesmo tempo em que reforça o valor do registro do Kinesis Data Streams. time-to-live Não há um algoritmo de espera, tornando essa uma estratégia de tentativa relativamente agressiva. O spam devido ao excesso de tentativas é evitado pela limitação de taxas, discutida na próxima seção.

## Limitação de intervalo
<a name="kinesis-producer-adv-retries-rate-limiting-rate-limit"></a>

A KPL inclui um recurso de limitação de taxas, que limita o throughput por fragmento enviado de um único produtor. A limitação de taxas é implementada usando um algoritmo de bucket de token com buckets separados para bytes e registros do Kinesis Data Streams. Cada gravação bem-sucedida em um fluxo de dados do Kinesis adiciona um token (ou vários tokens) a cada bucket, até um determinado limite. Esse limite é configurável, mas por padrão é definido como 50% maior que o limite de fragmento real, para permitir a saturação de fragmentos a partir de um único produtor. 

É possível reduzir esse limite para diminuir o spam devido ao excesso de tentativas. No entanto, a melhor prática é que cada produtor tente novamente para um throughput máximo de maneira agressiva e lide com qualquer limitação resultante determinada como excessiva por meio da expansão da capacidade do fluxo e da implementação de uma estratégia de chave de partição apropriada.