View a markdown version of this page

Configurazioni KCL - Flusso di dati Amazon Kinesis

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Configurazioni KCL

È possibile impostare le proprietà di configurazione per personalizzare la funzionalità della Kinesis Client Library in base ai requisiti specifici. La tabella seguente descrive le proprietà e le classi di configurazione.

Importante

In KCL 3.x, l'algoritmo di bilanciamento del carico mira a ottenere un utilizzo uniforme della CPU tra i lavoratori, non un numero uguale di leasing per lavoratore. Impostando un valore maxLeasesForWorker troppo basso, potresti limitare la capacità di KCL di bilanciare efficacemente il carico di lavoro. Se utilizzi la maxLeasesForWorker configurazione, valuta la possibilità di aumentarne il valore per consentire la migliore distribuzione possibile del carico.

Questa tabella mostra le proprietà di configurazione per KCL
Proprietà di configurazione Classe di configurazione Description Valore predefinito
applicationName ConfigsBuilder Il nome per l'applicazione della KCL. Utilizzato come predefinito per tableName e consumerName. Non applicabile
tableName ConfigsBuilder

Consente di ignorare il nome della tabella utilizzato per la tabella di lease di Amazon DynamoDB.

Non applicabile
streamName ConfigsBuilder

Il nome del flusso dal quale l'applicazione elabora i record.

Non applicabile
workerIdentifier ConfigsBuilder

Un identificatore univoco che rappresenta la creazione dell'elaboratore di applicazione. Deve essere univoco.

Non applicabile
failoverTimeMillis LeaseManagementConfig

Il numero di millisecondi che devono passare prima di poter considerare un proprietario di lease come fallito. Per le applicazioni con un numero elevato di shard, è possibile impostare un numero più alto per ridurre il numero di IOPS DynamoDB necessari per il tracciamento dei leasing.

10.000 (10 secondi)
shardSyncIntervalMillis LeaseManagementConfig

Il periodo di tempo tra le chiamate di sincronizzazione dello shard.

60.000 (60 secondi)
cleanupLeasesUponShardCompletion LeaseManagementConfig

Quando impostati, i lease vengono rimossi non appena i lease figlio hanno iniziato l'elaborazione.

TRUE
ignoreUnexpectedChildShards LeaseManagementConfig

Quando impostato, i shard figlio che hanno un shard aperto vengono ignorati. Questo è principalmente per DynamoDB Streams.

FALSE
maxLeasesForWorker LeaseManagementConfig

Il numero massimo di contratti di locazione che un singolo lavoratore deve accettare. Un valore troppo basso può causare la perdita di dati se i lavoratori non sono in grado di elaborare tutti i frammenti e comportare un'assegnazione del leasing non ottimale tra i lavoratori. Considera il numero totale di frammenti, il numero di lavoratori e la capacità di elaborazione dei lavoratori durante la configurazione.

Illimitato
maxLeaseRenewalThreads LeaseManagementConfig

Controlla le dimensioni del pool di thread di rinnovo del lease. Quanto maggiori sono i lease che può richiedere l'applicazione, tanto più grande deve essere questo pool.

20
billingMode LeaseManagementConfig

Determina la modalità di capacità della tabella di leasing creata in DynamoDB. Sono disponibili due opzioni: modalità on-demand (PAY_PER_REQUEST) e modalità provisioned. Ti consigliamo di utilizzare l'impostazione predefinita della modalità on-demand perché si adatta automaticamente al carico di lavoro senza la necessità di pianificare la capacità.

PAY_PER_REQUEST (modalità su richiesta)
initialLeaseTableReadCapacity LeaseManagementConfig La capacità di lettura di DynamoDB utilizzata se la Kinesis Client Library deve creare una nuova tabella di lease DynamoDB con modalità di capacità predisposta. È possibile ignorare questa configurazione se si utilizza la modalità di capacità su richiesta predefinita nella configurazione. billingMode 10
initialLeaseTableWriteCapacity LeaseManagementConfig La capacità di lettura di DynamoDB utilizzata se la Kinesis Client Library deve creare una nuova tabella di lease DynamoDB. È possibile ignorare questa configurazione se si utilizza la modalità di capacità on-demand predefinita nella configurazione. billingMode 10
initialPositionInStreamExtended LeaseManagementConfig

La posizione iniziale nel flusso nella quale l'applicazione dovrebbe iniziare. Questo viene utilizzato soltanto durante la creazione del lease iniziale.

InitialPositionInStream.TRIM_HORIZON

reBalanceThresholdPercentage LeaseManagementConfig

Un valore percentuale che determina quando l'algoritmo di bilanciamento del carico deve prendere in considerazione la riassegnazione degli shard tra i lavoratori.

Questa è una nuova configurazione introdotta in KCL 3.x.

10
dampeningPercentage LeaseManagementConfig

Un valore percentuale che viene utilizzato per ridurre la quantità di carico che verrà spostata dal lavoratore sovraccarico in una singola operazione di ribilanciamento.

Questa è una nuova configurazione introdotta in KCL 3.x.

60
allowThroughputOvershoot LeaseManagementConfig

Determina se il contratto di leasing aggiuntivo deve ancora essere riscosso dal lavoratore sovraccarico anche se ciò fa sì che la quantità totale del leasing richiesto superi la quantità di produttività desiderata.

Questa è una nuova configurazione introdotta in KCL 3.x.

TRUE
disableWorkerMetrics LeaseManagementConfig

Determina se KCL deve ignorare le metriche delle risorse fornite dai lavoratori (come l'utilizzo della CPU) durante la riassegnazione dei leasing e il bilanciamento del carico. Impostalo su TRUE se vuoi impedire a KCL di bilanciare il carico in base all'utilizzo della CPU.

Questa è una nuova configurazione introdotta in KCL 3.x.

FALSE
maxThroughputPerHostKBps LeaseManagementConfig

Importo della produttività massima da assegnare a un lavoratore durante l'assegnazione del contratto di locazione.

Questa è una nuova configurazione introdotta in KCL 3.x.

Illimitato
isGracefulLeaseHandoffEnabled LeaseManagementConfig

Controlla il comportamento della cessione del contratto di locazione tra i lavoratori. Se impostato su true, KCL tenterà di trasferire con garbo i contratti di locazione concedendo allo shard il tempo RecordProcessor sufficiente per completare l'elaborazione prima di consegnare il contratto di locazione a un altro lavoratore. Ciò può contribuire a garantire l'integrità dei dati e le transizioni senza intoppi, ma può aumentare i tempi di consegna.

Se impostato su false, il contratto di locazione verrà ceduto immediatamente senza attendere che RecordProcessor venga chiuso correttamente. Ciò può portare a consegne più rapide ma può comportare un'elaborazione incompleta.

Nota: il checkpointing deve essere implementato all'interno del metodo shutdownRequested () di RecordProcessor per usufruire della graziosa funzionalità di trasferimento del lease.

Questa è una nuova configurazione introdotta in KCL 3.x.

TRUE
gracefulLeaseHandoffTimeoutMillis LeaseManagementConfig

Specifica il tempo minimo (in millisecondi) di attesa che lo shard corrente si spenga correttamente prima di RecordProcessor trasferire forzatamente il contratto di locazione al proprietario successivo.

Se il metodo ProcessRecords in genere viene eseguito più a lungo del valore predefinito, valuta la possibilità di aumentare questa impostazione. Ciò garantisce il RecordProcessor tempo sufficiente per completare l'elaborazione prima che avvenga il trasferimento del leasing.

Questa è una nuova configurazione introdotta in KCL 3.x.

30.000 (30 secondi)
maxRecords PollingConfig

Consente di impostare il numero massimo di record restituiti da Kinesis.

10.000
retryGetRecordsInSeconds PollingConfig

Configura il ritardo tra i GetRecords tentativi di errore.

Nessuno
maxGetRecordsThreadPool PollingConfig

La dimensione del pool di thread utilizzato per. GetRecords

Nessuno
idleTimeBetweenReadsInMillis PollingConfig

Determina quanto tempo KCL attende tra una GetRecords chiamata e l'altra per raccogliere i dati dai flussi di dati. L'unità è in millisecondi.

1.500
callProcessRecordsEvenForEmptyRecordList ProcessorConfig

Quando impostato, l'elaboratore di record viene chiamato anche quando nessun record è stato fornito da .

FALSE
parentShardPollIntervalMillis CoordinatorConfig

Con quale frequenza un elaboratore di record deve eseguire il polling per vedere se il shard padre è stata completato. L'unità è in millisecondi.

10.000 (10 secondi)
skipShardSyncAtWorkerInitializationIfLeaseExist CoordinatorConfig

Disabilita la sincronizzazione dei dati shard se la tabella di lease contiene lease esistenti.

FALSE

shardPrioritization CoordinatorConfig

Quale prioritizzazione shard utilizzare.

NoOpShardPrioritization

ClientVersionConfig CoordinatorConfig

Determina in quale modalità di compatibilità della versione KCL verrà eseguita l'applicazione. Questa configurazione è solo per la migrazione dalle versioni precedenti di KCL. Quando si esegue la migrazione a 3.x, è necessario impostare questa configurazione su. CLIENT_VERSION_CONFIG_COMPATIBLE_WITH_2X È possibile rimuovere questa configurazione al termine della migrazione.

CLIENT_VERSION_CONFIG_3X
taskBackoffTimeMillis LifecycleConfig

Il tempo di attesa per riprovare le attività KCL non riuscite. L'unità è in millisecondi.

500 (0,5 secondi)
logWarningForTaskAfterMillis LifecycleConfig

Quanto tempo bisogna attendere prima che venga registrato un avviso se un'attività non è stata completata.

Nessuno
listShardsBackoffTimeInMillis RetrievalConfig Il numero di millisecondi di attesa tra le chiamate in ListShards quando si verificano errori. L'unità è in millisecondi. 1.500 (1,5 secondi)
maxListShardsRetryAttempts RetrievalConfig Il numero massimo di volte che ListShards effettua nuovi tentativi prima di desistere. 50
metricsBufferTimeMillis MetricsConfig

Specifica la durata massima (in millisecondi) per bufferizzare le metriche prima di pubblicarle. CloudWatch

10.000 (10 secondi)
metricsMaxQueueSize MetricsConfig

Specifica il numero massimo di metriche da memorizzare nel buffer prima della pubblicazione. CloudWatch

10.000
metricsLevel MetricsConfig

Specifica il livello di granularità delle CloudWatch metriche da abilitare e pubblicare.

Valori possibili: NONE, SUMMARY, DETAILED.

MetricsLevel.DETAILED

metricsEnabledDimensions MetricsConfig

Controlla le dimensioni consentite per le CloudWatch metriche.

Tutte le dimensioni

Configurazioni fuori produzione in KCL 3.x

Le seguenti proprietà di configurazione non sono più disponibili in KCL 3.x:

La tabella mostra le proprietà di configurazione non più disponibili per KCL 3.x
Proprietà di configurazione Classe di configurazione Description
maxLeasesToStealAtOneTime LeaseManagementConfig

Il numero massimo di lease che un'applicazione deve tentare di intercettare simultaneamente. KCL 3.x ignorerà questa configurazione e riassegnerà i contratti di locazione in base all'utilizzo delle risorse dei lavoratori.

enablePriorityLeaseAssignment LeaseManagementConfig

Controlla se i lavoratori debbano dare la priorità all'acquisto di contratti di locazione molto scaduti (contratti di locazione non rinnovati per 3 volte il tempo di failover) e nuovi contratti di locazione parziale, indipendentemente dal numero di leasing previsto ma rispettando comunque i limiti massimi di leasing. KCL 3.x ignorerà questa configurazione e distribuirà sempre i contratti di locazione scaduti tra i lavoratori.

Importante

Devi comunque avere le proprietà di configurazione interrotte durante la migrazione dalle versioni precedenti di KCL a KCL 3.x. Durante la migrazione, il worker KCL inizierà innanzitutto con la modalità compatibile con KCL 2.x e passerà alla modalità di funzionalità KCL 3.x quando rileva che tutti i lavoratori KCL dell'applicazione sono pronti per eseguire KCL 3.x. Queste configurazioni fuori produzione sono necessarie mentre i lavoratori KCL eseguono la modalità compatibile con KCL 2.x.