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