Le service géré Amazon pour Apache Flink était auparavant connu sous le nom d’Amazon Kinesis Data Analytics pour Apache Flink.
Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Limitation en amont ou à la source à partir d’un flux de données Kinesis
Symptôme : l’application rencontre une erreur LimitExceededExceptions
provenant du flux de données Kinesis source en amont.
Cause potentielle : le paramètre par défaut du connecteur Kinesis de la bibliothèque Apache Flink est défini pour lire à partir du flux de données Kinesis source, avec un paramètre par défaut très agressif pour le nombre maximal d’enregistrements extraits par appel GetRecords
. Apache Flink est configuré par défaut pour récupérer 10 000 enregistrements par GetRecords
appel (cet appel est effectué par défaut toutes les 200 ms), bien que la limite par partition ne soit que de 1 000 enregistrements.
Ce comportement par défaut peut entraîner une limitation lors de la tentative de consommation à partir du flux de données Kinesis, ce qui affectera les performances et la stabilité des applications.
Vous pouvez le confirmer en vérifiant la CloudWatch ReadProvisionedThroughputExceeded
métrique et en voyant les périodes prolongées ou prolongées pendant lesquelles cette métrique est supérieure à zéro.
Vous pouvez également le voir dans CloudWatch les journaux de votre application Amazon Managed Service for Apache Flink en observant LimitExceededException
les erreurs continues.
Résolution : vous pouvez effectuer l'une des deux opérations suivantes pour résoudre ce scénario :
Abaisser la limite par défaut du nombre d'enregistrements récupérés par appel
GetRecords
Activez les lectures adaptatives dans votre application Amazon Managed Service pour Apache Flink. Pour plus d’informations sur la fonctionnalité de lecture adaptative, consultez SHARD_USE_ADAPTIVE_READS