Personnaliser le KPL comportement des nouvelles tentatives et des limites de débit - Amazon Kinesis Data Streams

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.

Personnaliser le KPL comportement des nouvelles tentatives et des limites de débit

Lorsque vous ajoutez des enregistrements utilisateur Kinesis Producer Library (KPL) à l'aide de cette KPL addUserRecord() opération, un enregistrement reçoit un horodatage et est ajouté à une mémoire tampon avec une date limite définie par le paramètre de RecordMaxBufferedTime configuration. Cette combinaison de l'horodatage et du délai définit la priorité tampon. Les enregistrements sont vidés de la mémoire tampon selon les critères suivants :

  • Priorité tampon

  • Configuration du regroupement

  • Configuration de la collecte

Les paramètres de configuration du regroupement et de la collecte qui influencent le comportement du tampon sont les suivants :

  • AggregationMaxCount

  • AggregationMaxSize

  • CollectionMaxCount

  • CollectionMaxSize

Les enregistrements vidés sont ensuite envoyés à votre flux de données Kinesis sous forme d'enregistrements Amazon Kinesis Data Streams à l'aide d'un appel à l'opération Kinesis Data Streams. API PutRecords L'opération PutRecords envoie des demandes à votre flux qui échouent parfois entièrement ou partiellement. Les enregistrements qui échouent sont automatiquement ajoutés à la KPL mémoire tampon. Le nouveau délai est défini sur la base du minimum des deux valeurs suivantes :

  • La moitié de la configuration RecordMaxBufferedTime actuelle

  • La time-to-live valeur de l'enregistrement

Cette stratégie permet d'inclure les enregistrements KPL d'utilisateurs réessayés dans les appels Kinesis Data API Streams suivants, afin d'améliorer le débit et de réduire la complexité tout en renforçant la valeur de l'enregistrement Kinesis Data Streams. time-to-live Il n'y a aucun algorithme d'interruption, ce qui rend cette stratégie de nouvelle tentative relativement brutale. Le spam provoqué par des tentatives excessives est empêché par la limitation de vitesse, qui est présentée à la section suivante.

Limitation du débit

KPLIl inclut une fonctionnalité de limitation de débit, qui limite le débit par partition envoyée par un seul producteur. La limitation de vitesse est implémentée à l'aide d'un algorithme de compartiment à jeton, avec des compartiments distincts pour les enregistrements Kinesis Data Streams et les octets. Chaque écriture réussie dans un flux de données Kinesis ajoute un jeton (ou plusieurs jetons) à chaque compartiment, jusqu'à un certain seuil. Ce seuil est configurable, mais est défini par défaut sur une valeur 50 % supérieure au nombre limite de partitions réel afin d'autoriser la saturation de partition par une seule application producteur.

Vous pouvez réduire ce nombre limite pour diminuer le spam dû aux tentatives excessives. Toutefois, la bonne pratique consiste, pour chaque application producteur, à effectuer des tentatives brutales pour atteindre un débit maximal et à traiter toute limitation obtenue comme excessive en étendant la capacité du flux et en mettant en œuvre une stratégie de clé de partition appropriée.