Controle de utilização de fonte ou upstream de um fluxo de dados do Kinesis - Managed Service for Apache Flink

Anteriormente, o Amazon Managed Service for Apache Flink (Amazon MSF) era conhecido como Amazon Kinesis Data Analytics for Apache Flink.

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

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 CloudWatch ReadProvisionedThroughputExceeded métrica e vendo períodos prolongados ou sustentados em que essa métrica é maior que zero.

Você também pode ver isso nos CloudWatch registros do seu aplicativo Amazon Managed Service for Apache Flink observando erros contínuos. LimitExceededException

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 GetRecords

  • Habilitar 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