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