View a markdown version of this page

Configurations KCL - 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.

Configurations KCL

Vous pouvez définir des propriétés de configuration pour personnaliser les fonctionnalités de Kinesis Client Library en fonction de vos besoins spécifiques. Le tableau suivant décrit les propriétés et les classes de configuration.

Important

Dans KCL 3.x, l'algorithme d'équilibrage de charge vise à obtenir une utilisation uniforme du processeur entre les employés, et non un nombre égal de contrats de location par travailleur. Si le réglage maxLeasesForWorker est trop faible, vous risquez de limiter la capacité de KCL à équilibrer efficacement la charge de travail. Si vous utilisez la maxLeasesForWorker configuration, envisagez d'augmenter sa valeur pour permettre la meilleure répartition de charge possible.

Ce tableau présente les propriétés de configuration pour KCL
Propriété de configuration Classe de configuration Description Valeur par défaut
applicationName ConfigsBuilder Nom de cette application KCL. Utilisé par défaut pour le tableName et le consumerName. Non applicable
tableName ConfigsBuilder

Permet de remplacer le nom du tableau utilisé par le tableau des baux Amazon DynamoDB.

Non applicable
streamName ConfigsBuilder

Nom du flux à partir duquel cette application traite les enregistrements.

Non applicable
workerIdentifier ConfigsBuilder

Identifiant unique qui représente cette instanciation du processeur d'applications. Il doit être unique.

Non applicable
failoverTimeMillis LeaseManagementConfig

Nombre de millisecondes qui doivent s'écouler avant que vous puissiez considérer qu'un bail propriétaire a échoué. Pour les applications contenant un grand nombre de fragments, ce nombre peut être défini sur une valeur plus élevée afin de réduire le nombre d'IOPS DynamoDB requis pour le suivi des contrats de location.

10 000 (10 secondes)
shardSyncIntervalMillis LeaseManagementConfig

Délai entre les appels de synchronisation des partitions.

60 000 (60 secondes)
cleanupLeasesUponShardCompletion LeaseManagementConfig

Lorsqu'ils sont définis, les baux sont supprimés dès que les baux enfant ont commencé le traitement.

TRUE
ignoreUnexpectedChildShards LeaseManagementConfig

Lorsqu'elles sont définies, les partitions enfant ont une partition ouverte qui est ignorée. Cela concerne principalement DynamoDB Streams.

FALSE
maxLeasesForWorker LeaseManagementConfig

Le nombre maximum de contrats de location qu'un seul travailleur doit accepter. Une valeur trop faible peut entraîner une perte de données si les employés ne peuvent pas traiter tous les fragments, et entraîner une attribution de bail sous-optimale entre les employés. Tenez compte du nombre total de partitions, du nombre de travailleurs et de la capacité de traitement des travailleurs lors de sa configuration.

Illimité
maxLeaseRenewalThreads LeaseManagementConfig

Contrôle la taille du pool de threads des renouvellements de baux. Plus votre application accepte de baux, plus la taille du pool doit être importante.

20
billingMode LeaseManagementConfig

Détermine le mode de capacité de la table de location créée dans DynamoDB. Il existe deux options : le mode à la demande (PAY_PER_REQUEST) et le mode provisionné. Nous vous recommandons d'utiliser le réglage par défaut du mode à la demande, car il s'adapte automatiquement à votre charge de travail sans qu'il soit nécessaire de planifier les capacités.

PAY_PER_REQUEST (mode à la demande)
initialLeaseTableReadCapacity LeaseManagementConfig Capacité de lecture DynamoDB utilisée si la bibliothèque cliente Kinesis doit créer une nouvelle table de location DynamoDB avec le mode de capacité provisionné. Vous pouvez ignorer cette configuration si vous utilisez le mode de capacité à la demande par défaut dans la billingMode configuration. 10
initialLeaseTableWriteCapacity LeaseManagementConfig Capacité de lecture DynamoDB utilisée si la bibliothèque cliente Kinesis doit créer une nouvelle table de location DynamoDB. Vous pouvez ignorer cette configuration si vous utilisez le mode de capacité à la demande par défaut dans la billingMode configuration. 10
initialPositionInStreamExtended LeaseManagementConfig

La position initiale dans le flux à laquelle l'application doit commencer. Elle est utilisée uniquement lors de la création de bail initiale.

InitialPositionInStream.TRIM_HORIZON

reBalanceThresholdPercentage LeaseManagementConfig

Valeur en pourcentage qui détermine à quel moment l'algorithme d'équilibrage de charge doit envisager de réaffecter les partitions entre les travailleurs.

Il s'agit d'une nouvelle configuration introduite dans KCL 3.x.

10
dampeningPercentage LeaseManagementConfig

Valeur en pourcentage utilisée pour amortir la quantité de charge qui sera déplacée par le travailleur surchargé en une seule opération de rééquilibrage.

Il s'agit d'une nouvelle configuration introduite dans KCL 3.x.

60
allowThroughputOvershoot LeaseManagementConfig

Détermine si un contrat de location supplémentaire doit encore être souscrit auprès du travailleur surchargé, même si cela entraîne un dépassement du débit souhaité.

Il s'agit d'une nouvelle configuration introduite dans KCL 3.x.

TRUE
disableWorkerMetrics LeaseManagementConfig

Détermine si KCL doit ignorer les indicateurs de ressources des travailleurs (tels que l'utilisation du processeur) lors de la réattribution des contrats de location et de l'équilibrage de charge. Définissez ce paramètre sur TRUE si vous souhaitez empêcher KCL d'équilibrer la charge en fonction de l'utilisation du processeur.

Il s'agit d'une nouvelle configuration introduite dans KCL 3.x.

FALSE
maxThroughputPerHostKBps LeaseManagementConfig

Montant du débit maximal à attribuer à un travailleur lors de l'attribution du bail.

Il s'agit d'une nouvelle configuration introduite dans KCL 3.x.

Illimité
isGracefulLeaseHandoffEnabled LeaseManagementConfig

Contrôle le comportement de transfert des contrats de location entre les travailleurs. Lorsque ce paramètre est défini sur true, KCL tentera de transférer les baux de manière gracieuse en laissant RecordProcessor suffisamment de temps au shard pour terminer le traitement avant de transférer le bail à un autre travailleur. Cela peut contribuer à garantir l'intégrité des données et la fluidité des transitions, mais peut également augmenter le temps de transfert.

Lorsque ce paramètre est défini sur faux, le bail sera transféré immédiatement sans attendre sa résiliation RecordProcessor en bonne et due forme. Cela peut accélérer les transferts mais peut entraîner un traitement incomplet.

Remarque : le pointage de contrôle doit être implémenté dans la méthode shutdownRequested () RecordProcessor pour bénéficier de la fonctionnalité de transfert de bail gracieux.

Il s'agit d'une nouvelle configuration introduite dans KCL 3.x.

TRUE
gracefulLeaseHandoffTimeoutMillis LeaseManagementConfig

Spécifie la durée minimale (en millisecondes) à attendre que le fragment actuel s'arrête correctement avant de RecordProcessor transférer de force le bail au propriétaire suivant.

Si votre méthode ProcessRecords s'exécute généralement plus longtemps que la valeur par défaut, envisagez d'augmenter ce paramètre. Cela garantit RecordProcessor qu'il dispose de suffisamment de temps pour terminer son traitement avant le transfert du bail.

Il s'agit d'une nouvelle configuration introduite dans KCL 3.x.

30 000 (30 secondes)
maxRecords PollingConfig

Permet de définir le nombre maximum d'enregistrements renvoyés par Kinesis.

10 000
retryGetRecordsInSeconds PollingConfig

Configure le délai entre les GetRecords tentatives en cas d'échec.

Aucune
maxGetRecordsThreadPool PollingConfig

Taille du pool de threads utilisé pour GetRecords.

Aucune
idleTimeBetweenReadsInMillis PollingConfig

Détermine la durée pendant laquelle KCL attend entre les GetRecords appels pour interroger les données des flux de données. L'unité est la milliseconde.

1 500
callProcessRecordsEvenForEmptyRecordList ProcessorConfig

Lorsqu'il est défini, le processeur d'enregistrements est appelé même si aucun enregistrement n'a été fourni depuis Kinesis.

FALSE
parentShardPollIntervalMillis CoordinatorConfig

À quelle fréquence un processeur d'enregistrements doit-il interroger pour voir si la partition parent est terminée. L'unité est la milliseconde.

10 000 (10 secondes)
skipShardSyncAtWorkerInitializationIfLeaseExist CoordinatorConfig

Désactivez la synchronisation des données de partition si la table des baux contient des baux existants.

FALSE

shardPrioritization CoordinatorConfig

Définition des priorités de partition à utiliser.

NoOpShardPrioritization

ClientVersionConfig CoordinatorConfig

Détermine le mode de compatibilité des versions de KCL dans lequel l'application sera exécutée. Cette configuration est uniquement destinée à la migration depuis les versions précédentes de KCL. Lors de la migration vers la version 3.x, vous devez définir cette configuration sur. CLIENT_VERSION_CONFIG_COMPATIBLE_WITH_2X Vous pouvez supprimer cette configuration une fois la migration terminée.

VERSION_CLIENT_CONFIG_3X
taskBackoffTimeMillis LifecycleConfig

Le temps d'attente avant de réessayer les tâches KCL ayant échoué. L'unité est la milliseconde.

500 (0,5 seconde)
logWarningForTaskAfterMillis LifecycleConfig

Temps d'attente avec la consignation d'un avertissement si une tâche n'a pas été terminée.

Aucune
listShardsBackoffTimeInMillis RetrievalConfig Nombre de millisecondes à attendre entre les appels de ListShards en cas de défaillance. L'unité est la milliseconde. 1 500 (1,5 seconde)
maxListShardsRetryAttempts RetrievalConfig Nombre maximum de nouvelles tentatives par ListShards avant l'abandon. 50
metricsBufferTimeMillis MetricsConfig

Spécifie la durée maximale (en millisecondes) de mise en mémoire tampon des métriques avant de les publier. CloudWatch

10 000 (10 secondes)
metricsMaxQueueSize MetricsConfig

Spécifie le nombre maximum de métriques à mettre en mémoire tampon avant de les publier CloudWatch.

10 000
metricsLevel MetricsConfig

Spécifie le niveau de granularité des CloudWatch mesures à activer et à publier.

Valeurs possibles : AUCUNE, RÉSUMÉ, DÉTAILLÉ.

MetricsLevel.DETAILED

metricsEnabledDimensions MetricsConfig

Contrôle les dimensions autorisées pour CloudWatch les métriques.

Toutes les dimensions

Configurations abandonnées dans KCL 3.x

Les propriétés de configuration suivantes ne sont plus disponibles dans KCL 3.x :

Le tableau présente les propriétés de configuration abandonnées pour KCL 3.x
Propriété de configuration Classe de configuration Description
maxLeasesToStealAtOneTime LeaseManagementConfig

Nombre maximum de baux qu'une application doit tenter de voler à la fois. KCL 3.x ignorera cette configuration et réattribuera les contrats de location en fonction de l'utilisation des ressources par les employés.

enablePriorityLeaseAssignment LeaseManagementConfig

Contrôle si les travailleurs doivent donner la priorité à la prise de baux très expirés (baux non renouvelés pendant 3 fois la durée de basculement) et à de nouveaux contrats de location partiels, quel que soit le nombre de baux cibles, tout en respectant les limites maximales des baux. KCL 3.x ignorera cette configuration et répartira toujours les baux expirés entre les employés.

Important

Vous devez toujours disposer des propriétés de configuration abandonnées lors de la migration des versions précédentes de KCL vers KCL 3.x. Au cours de la migration, le travailleur KCL démarre d'abord en mode compatible avec KCL 2.x et passe en mode de fonctionnalité KCL 3.x lorsqu'il détecte que tous les travailleurs KCL de l'application sont prêts à exécuter KCL 3.x. Ces configurations abandonnées sont nécessaires lorsque les utilisateurs de KCL exécutent le mode compatible KCL 2.x.