Configurações da KCL - Amazon Kinesis Data Streams

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Configurações da KCL

Você pode definir as propriedades de configuração para personalizar a funcionalidade da Kinesis Client Library para atender às suas necessidades específicas. A tabela a seguir descreve as classes e propriedades de configuração.

Importante

Na KCL 3.x, o algoritmo de balanceamento de carga visa a alcançar uma utilização uniforme da CPU entre os operadores, e não um número igual de concessões por operador. Se a configuração maxLeasesForWorker for muito baixa, você pode limitar a capacidade da KCL de equilibrar a workload de forma eficaz. Se você usar a configuração maxLeasesForWorker, considere aumentar seu valor para permitir a melhor distribuição de carga possível.

Esta tabela mostra as propriedades de configuração da KCL
Propriedade de configuração Classe de configuração Description Valor padrão
applicationName ConfigsBuilder O nome da aplicação da KCL. Usado como padrão para o tableName e o consumerName. Não aplicável
tableName ConfigsBuilder

Permite substituir o nome usado para a tabela de concessão do Amazon DynamoDB.

Não aplicável
streamName ConfigsBuilder

O nome do fluxo a partir do qual esse aplicativo processa registros.

Não aplicável
workerIdentifier ConfigsBuilder

Um identificador exclusivo que representa a instanciação do processador do aplicativo. Isso deve ser exclusivo.

Não aplicável
failoverTimeMillis LeaseManagementConfig

O número de milissegundos que devem passar antes que se considere uma falha do proprietário da concessão. No caso de aplicações que têm um grande número de fragmentos, um número maior pode ser definido para reduzir o número de IOPS do DynamoDB necessário para rastrear as concessões.

10.000 (10 segundos)
shardSyncIntervalMillis LeaseManagementConfig

O tempo entre as chamadas de sincronização de fragmentos.

60.000 (60 segundos)
cleanupLeasesUponShardCompletion LeaseManagementConfig

Quando definidas, as concessões são removidas assim que as concessões filho iniciam o processamento.

VERDADEIRO
ignoreUnexpectedChildShards LeaseManagementConfig

Quando definidos, fragmentos filho que possuem um fragmento aberto são ignorados. Essa configuração destina-se principalmente a fluxos do DynamoDB.

FALSE
maxLeasesForWorker LeaseManagementConfig

O número máximo de concessões que um único operador deve aceitar. Se esse número for definido muito baixo, isso pode causar perda de dados se os operadores não conseguirem processar todos os fragmentos, levando a uma atribuição de concessões abaixo do ideal entre os operadores. Considere a contagem total de fragmentos, o número de operadores e a capacidade de processamento do operador ao configurá-lo.

Ilimitado
maxLeaseRenewalThreads LeaseManagementConfig

Controla o tamanho do grupo de threads de renovação de concessão. Quanto mais concessões seu aplicativo aceitar, maior esse grupo deve ser.

20
billingMode LeaseManagementConfig

Determina o modo de capacidade da tabela de concessões criada no DynamoDB. Há duas opções: modo sob demanda (PAY_PER_REQUEST) e modo provisionado. Recomendamos usar a configuração padrão do modo sob demanda, pois ela é escalada automaticamente para acomodar sua workload sem a necessidade de planejamento de capacidade.

PAY_PER_REQUEST (modo sob demanda)
initialLeaseTableReadCapacity LeaseManagementConfig A capacidade de leitura do DynamoDB que será usada se a Kinesis Client Library precisar criar uma nova tabela de concessões do DynamoDB com o modo de capacidade provisionada. Você pode ignorar essa configuração se estiver usando o modo de capacidade sob demanda padrão na configuração billingMode. 10
initialLeaseTableWriteCapacity LeaseManagementConfig A capacidade de leitura do DynamoDB que será usada se a Kinesis Client Library precisar criar uma nova tabela de concessões do DynamoDB. Você pode ignorar essa configuração se estiver usando o modo de capacidade sob demanda padrão na configuração billingMode. 10
initialPositionInStreamExtended LeaseManagementConfig

A posição inicial do aplicativo no fluxo. Isso é usado somente durante a criação da concessão inicial.

InitialPositionInStream.TRIM_HORIZON

reBalanceThresholdPercentage LeaseManagementConfig

Um valor percentual que determina quando o algoritmo de balanceamento de carga deve considerar a reatribuição de fragmentos entre os operadores.

Essa é uma nova configuração introduzida na KCL 3.x.

10
dampeningPercentage LeaseManagementConfig

Um valor percentual usado para amortecer a quantidade de carga que será movida do operador sobrecarregado em uma única operação de rebalanceamento.

Essa é uma nova configuração introduzida na KCL 3.x.

60
allowThroughputOvershoot LeaseManagementConfig

Determina se a concessão adicional ainda precisa ser obtida do operador sobrecarregado, mesmo que isso faça com que a quantidade total de throughput da concessão exceda a quantidade de throughput desejada.

Essa é uma nova configuração introduzida na KCL 3.x.

VERDADEIRO
disableWorkerMetrics LeaseManagementConfig

Determina se a KCL deve ignorar as métricas de recursos dos operadores (como a utilização da CPU) ao reatribuir concessões e balancear a carga. Defina isso como TRUE se quiser evitar que a KCL balanceie a carga com base na utilização da CPU.

Essa é uma nova configuração introduzida na KCL 3.x.

FALSE
maxThroughputPerHostKBps LeaseManagementConfig

Quantidade de throughput máxima a ser atribuída a um operador durante a atribuição da concessão.

Essa é uma nova configuração introduzida na KCL 3.x.

Ilimitado
isGracefulLeaseHandoffEnabled LeaseManagementConfig

Controla o comportamento da transferência de concessões entre os operadores. Quando definido como verdadeiro, a KCL tentará transferir os arrendamentos normalmente, permitindo que o fragmento RecordProcessor tenha tempo suficiente para concluir o processamento antes de entregar o contrato a outro trabalhador. Isso pode ajudar a garantir integridade dos dados e transições suaves, mas pode aumentar o tempo de transferência.

Quando definido como falso, o contrato será entregue imediatamente, sem esperar que o RecordProcessor contrato seja encerrado normalmente. Isso pode levar a transferências mais rápidas, mas pode causar um processamento incompleto.

Nota: O ponto de verificação deve ser implementado dentro do método shutdownRequested () do RecordProcessor para se beneficiar do recurso elegante de transferência de locação.

Essa é uma nova configuração introduzida na KCL 3.x.

VERDADEIRO
gracefulLeaseHandoffTimeoutMillis LeaseManagementConfig

Especifica o tempo mínimo (em milissegundos) para esperar que os fragmentos atuais sejam encerrados normalmente antes de transferir o contrato RecordProcessor à força para o próximo proprietário.

Se seu método processRecords é executado comumente por mais tempo do que o valor padrão, considere aumentar essa configuração. Isso garante que RecordProcessor tenha tempo suficiente para concluir seu processamento antes que a transferência da locação ocorra.

Essa é uma nova configuração introduzida na KCL 3.x.

30.000 (30 segundos)
maxRecords PollingConfig

Permite definir o número máximo de registros que o Kinesis retorna.

10.000
retryGetRecordsInSeconds PollingConfig

Configura o atraso entre as GetRecords tentativas de falhas.

Nenhum
maxGetRecordsThreadPool PollingConfig

O tamanho do pool de fios usado para GetRecords.

Nenhum
idleTimeBetweenReadsInMillis PollingConfig

Determina quanto tempo a KCL espera entre as GetRecords chamadas para pesquisar os dados dos fluxos de dados. A unidade é milissegundos.

1.500
callProcessRecordsEvenForEmptyRecordList ProcessorConfig

Quando definido, o processador de registros é chamado mesmo quando o Kinesis não fornece nenhum registro.

FALSE
parentShardPollIntervalMillis CoordinatorConfig

Com que frequência um processador de registros deve sondar a conclusão de fragmentos pai. A unidade é milissegundos.

10.000 (10 segundos)
skipShardSyncAtWorkerInitializationIfLeaseExist CoordinatorConfig

Desative a sincronização de dados de fragmento se a tabela de concessão contiver concessões existentes.

FALSE

shardPrioritization CoordinatorConfig

A priorização de fragmentos a ser usada.

NoOpShardPrioritization

ClientVersionConfig CoordinatorConfig

Determina em qual modo de compatibilidade de versão da KCL a aplicação será executada. Essa configuração serve somente para a migração de versões anteriores da KCL. Ao migrar para 3.x, é preciso definir essa configuração como CLIENT_VERSION_CONFIG_COMPATIBLE_WITH_2X. Essa configuração pode ser removida quando a migração for concluída.

CLIENT_VERSION_CONFIG_3X
taskBackoffTimeMillis LifecycleConfig

Tempo de espera para repetir tarefas da KCL com falha. A unidade é milissegundos.

500 (0,5 segundo)
logWarningForTaskAfterMillis LifecycleConfig

Quanto tempo esperar antes de um aviso ser registrado caso uma tarefa não seja concluída.

Nenhum
listShardsBackoffTimeInMillis RetrievalConfig O número de milissegundos de espera entre as chamadas para ListShards em caso de falha. A unidade é milissegundos. 1.500 (1,5 segundo)
maxListShardsRetryAttempts RetrievalConfig O número máximo de novas tentativas de ListShards antes de desistir. 50
metricsBufferTimeMillis MetricsConfig

Especifica a duração máxima (em milissegundos) para armazenar métricas em buffer antes de publicá-las. CloudWatch

10.000 (10 segundos)
metricsMaxQueueSize MetricsConfig

Especifica o número máximo de métricas a serem armazenadas em buffer antes da publicação. CloudWatch

10.000
metricsLevel MetricsConfig

Especifica o nível de granularidade das CloudWatch métricas a serem ativadas e publicadas.

Valores possíveis: NENHUM, RESUMO, DETALHADO.

MetricsLevel.DETALHADO

metricsEnabledDimensions MetricsConfig

Controla as dimensões permitidas para CloudWatch métricas.

Todas as dimensões

Configurações descontinuadas na KCL 3.x

As seguintes propriedades de configuração foram descontinuadas na KCL 3.x:

A tabela mostra as propriedades de configuração descontinuadas da KCL 3.x
Propriedade de configuração Classe de configuração Description
maxLeasesToStealAtOneTime LeaseManagementConfig

O número máximo de concessões que um aplicativo deve tentar roubar de uma só vez. A KCL 3.x ignorará essa configuração e reatribuirá as concessões com base na utilização de recursos dos operadores.

enablePriorityLeaseAssignment LeaseManagementConfig

Controla se os operadores devem priorizar concessões muito expiradas (concessões não renovadas por 3 vezes o tempo de failover) e novas concessões de fragmentos, independentemente do número de concessões pretendidas, mas ainda respeitando os limites máximos de concessões. A KCL 3.x ignorará essa configuração e sempre distribuirá as concessões expiradas entre os operadores.

Importante

Você precisa ter as propriedades de configuração descontinuadas durante a migração das versões anteriores da KCL para a KCL 3.x. Durante a migração, o operador da KCL iniciará primeiro com o modo compatível com KCL 2.x e passará para o modo de funcionalidade da KCL 3.x quando detectar que todos os operadores da KCL da aplicação estão prontos para executar a KCL 3.x. Essas configurações descontinuadas são necessárias enquanto os operadores da KCL estiverem executando o modo compatível com a KCL 2.x.