Limitación ascendente o de origen desde un flujo de datos de Kinesis - Managed Service para Apache Flink

Amazon Managed Service para Apache Flink Amazon se denominaba anteriormente Amazon Kinesis Data Analytics para Apache Flink.

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Limitación ascendente o de origen desde un flujo de datos de Kinesis

Síntoma: la aplicación encuentra LimitExceededExceptions de su flujo de datos de Kinesis de origen ascendente.

Causa potencial: la configuración predeterminada del conector Kinesis de la biblioteca Apache Flink está configurada para leer desde la fuente de flujo de datos de Kinesis, con una configuración predeterminada muy agresiva para el número máximo de registros recuperados por llamada GetRecords. Apache Flink está configurado de forma predeterminada para obtener 10 000 registros por GetRecords llamada (esta llamada se realiza de forma predeterminada cada 200 ms), aunque el límite por fragmento es de solo 1000 registros.

Este comportamiento predeterminado puede provocar una limitación al intentar consumir datos del flujo de datos de Kinesis, lo que afectará al rendimiento y la estabilidad de las aplicaciones.

Puede confirmarlo comprobando la CloudWatch ReadProvisionedThroughputExceeded métrica y viendo períodos prolongados o sostenidos en los que esta métrica es superior a cero.

También puedes ver esto en CloudWatch los registros de tu aplicación Amazon Managed Service for Apache Flink si observas LimitExceededException los errores continuos.

Solución: puede hacer una de estas dos cosas para resolver este escenario:

  • Reduzca el límite predeterminado de la cantidad de registros recuperados por llamada GetRecords

  • Activa las lecturas adaptables en tu aplicación Amazon Managed Service for Apache Flink. Para obtener más información sobre la característica de lecturas adaptables, consulte SHARD_USE_ADAPTIVE_READS