Anteriormente, o Amazon Managed Service for Apache Flink (Amazon MSF) era conhecido como Amazon Kinesis Data Analytics for Apache Flink.
Controle de utilização de fonte ou upstream de um fluxo de dados do Kinesis
Sintoma: o aplicativo detecta LimitExceededExceptions a partir da fonte upstream do fluxo de dados do Kinesis.
Causa provável: a configuração padrão do conector Kinesis da biblioteca Apache Flink é definida para leitura da fonte do fluxo de dados do Kinesis com uma configuração padrão muito agressiva para o número máximo de registros buscados por chamada GetRecords. O Apache Flink é configurado por padrão para buscar 10.000 registros por chamada GetRecords (essa chamada é feita por padrão a cada 200 ms), embora o limite por fragmento seja de apenas 1.000 registros.
Esse comportamento padrão pode levar ao controle de utilização ao tentar consumir do fluxo de dados do Kinesis, o que afetará o desempenho e a estabilidade dos aplicativos.
Você pode confirmar isso verificando a métrica ReadProvisionedThroughputExceeded do CloudWatch e vendo períodos prolongados ou sustentados em que essa métrica seja maior que zero.
Você também pode ver isso nos logs do CloudWatch de seu aplicativo Amazon Managed Service for Apache Flink ao ver erros LimitExceededException contínuos.
Resolução: você tem duas opções para resolver esse cenário:
Diminuir o limite padrão para o número de registros buscados por chamada de
GetRecordsHabilitar as leituras adaptáveis em seu aplicativo Amazon Managed Service for Apache Flink. Para obter mais informações sobre o recurso Adaptive Reads, consulte SHARD_USE_ADAPTIVE_READS