Configuraciones de KCL - Amazon Kinesis Data Streams

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Configuraciones de KCL

Defina propiedades de configuración para personalizar la funcionalidad de Kinesis Client Library y cumplir requisitos específicos. En la siguiente tabla se describen las propiedades y clases de configuración.

importante

En KCL 3.x, el algoritmo de equilibrio de carga tiene como objetivo lograr un uso uniforme de la CPU entre los procesos de trabajo, y no un número igual de arrendamientos por proceso de trabajo. Si establece maxLeasesForWorker demasiado bajo, podría limitar la capacidad de KCL de equilibrar la carga de trabajo de forma eficaz. Si utiliza la configuración maxLeasesForWorker, tenga presente aumentar su valor para permitir la mejor distribución de carga posible.

En esta tabla se muestran las propiedades de configuración de KCL
Propiedad de configuración Clase de configuración Description (Descripción) Predeterminado
applicationName ConfigsBuilder El nombre de la aplicación de KCL. Se utiliza de forma predeterminada para tableName y consumerName. No aplicable
tableName ConfigsBuilder

Permite sustituir el nombre de la tabla que se utiliza para la tabla de asignaciones de Amazon DynamoDB.

No aplicable
streamName ConfigsBuilder

El nombre de la secuencia cuyos registros procesa de esta aplicación.

No aplicable
workerIdentifier ConfigsBuilder

Identificador único que representa esta instancia del procesador de aplicaciones. Deben ser único.

No aplicable
failoverTimeMillis LeaseManagementConfig

El número de milisegundos que deben transcurrir antes de que se pueda considerar que se ha producido un error en el propietario de una asignación. En el caso de las aplicaciones que tienen una gran cantidad de particiones, se pueden establecer en un número mayor para reducir la cantidad de IOPS de DynamoDB necesarios para el seguimiento de los arrendamientos.

10 000 (10 segundos)
shardSyncIntervalMillis LeaseManagementConfig

El tiempo entre llamadas de sincronización del fragmento.

60 000 (60 segundos)
cleanupLeasesUponShardCompletion LeaseManagementConfig

Cuando se establece, se eliminan las asignaciones tan pronto como se inicia el procesamiento del fragmento secundario.

TRUE
ignoreUnexpectedChildShards LeaseManagementConfig

Cuando se establece, los fragmentos secundarios que tienen un fragmento abierto se pasan por alto. Esto es principalmente para DynamoDB Streams.

FALSO
maxLeasesForWorker LeaseManagementConfig

La cantidad máxima de arrendamientos que debe aceptar un solo proceso de trabajo. Si se establece un valor demasiado bajo, podría causar que se pierdan datos si los procesos de trabajo no pueden procesar todas las particiones y que la asignación del arrendamiento entre los procesos de trabajo no sea óptima. Tenga en cuenta el número total de particiones, el número de procesos de trabajo y la capacidad de procesamiento de los procesos de trabajo al configurarlo.

Sin límite
maxLeaseRenewalThreads LeaseManagementConfig

Controla el tamaño del grupo de subprocesos del renovador de asignaciones. Cuanto más grande sea el número de asignaciones que puede tomar la aplicación, más grande debe ser este grupo.

20
billingMode LeaseManagementConfig

Determina el modo de capacidad de la tabla de arrendamiento creada en DynamoDB. Existen dos opciones: el modo bajo demanda (PAY_PER_REQUEST) y el modo aprovisionado. Recomendamos utilizar la configuración predeterminada del modo bajo demanda, ya que escala automáticamente para adaptarse a la carga de trabajo sin necesidad de planificar la capacidad.

PAY_PER_REQUEST (modo bajo demanda)
initialLeaseTableReadCapacity LeaseManagementConfig Capacidad de lectura de DynamoDB que se utiliza cuando Kinesis Client Library debe crear una tabla de arrendamiento de DynamoDB con el modo de capacidad aprovisionada. Puede ignorar esta configuración si utiliza el modo de capacidad bajo demanda predeterminado en la configuración billingMode. 10
initialLeaseTableWriteCapacity LeaseManagementConfig Capacidad de lectura de DynamoDB que se utiliza cuando Kinesis Client Library debe crear una tabla de arrendamiento de DynamoDB. Puede ignorar esta configuración si utiliza el modo de capacidad bajo demanda predeterminado en la configuración billingMode. 10
initialPositionInStreamExtended LeaseManagementConfig

La posición inicial de la secuencia en la que debería comenzar la aplicación. Esto solo se utiliza durante la creación inicial de la asignación.

InitialPositionInStream.TRIM_HORIZON

reBalanceThresholdPercentage LeaseManagementConfig

Un valor porcentual que determina cuándo el algoritmo de equilibrio de carga debería reasignar las particiones entre los procesos de trabajo.

Es una nueva configuración presentada en KCL 3.x.

10
dampeningPercentage LeaseManagementConfig

Un valor porcentual que se utiliza para amortiguar la cantidad de carga que se moverá desde el proceso de trabajo sobrecargado en una sola operación de rebalanceo.

Es una nueva configuración presentada en KCL 3.x.

60
allowThroughputOvershoot LeaseManagementConfig

Determina si aún es necesario contratar un arrendamiento adicional al proceso de trabajo sobrecargado, incluso si esto provoca que el monto total del arrendamiento solicitado supere el monto de rendimiento deseado.

Es una nueva configuración presentada en KCL 3.x.

TRUE
disableWorkerMetrics LeaseManagementConfig

Determina si KCL debe ignorar las métricas de recursos de los procesos de trabajos (como el uso de la CPU) al reasignar los arrendamientos y equilibrar la carga. Configúrelo en TRUE si quiere evitar que KCL equilibre la carga según el uso de la CPU.

Es una nueva configuración presentada en KCL 3.x.

FALSO
maxThroughputPerHostKBps LeaseManagementConfig

Cantidad de rendimiento máximo que se debe asignar a un proceso de trabajo durante la asignación del arrendamiento.

Es una nueva configuración presentada en KCL 3.x.

Sin límite
isGracefulLeaseHandoffEnabled LeaseManagementConfig

Controla el comportamiento de la transferencia del arrendamiento entre los procesos de trabajo. Si se establece en true, KCL intentará transferir los arrendamientos sin problemas, dejando que el fragmento RecordProcessor tenga tiempo suficiente para completar el procesamiento antes de entregar el arrendamiento a otro trabajador. Esto puede ayudar a garantizar la integridad de los datos y realizar transiciones fluidas, pero puede aumentar el tiempo de transferencia.

Si se establece en falso, el contrato de arrendamiento se transferirá inmediatamente sin esperar a que se cierre correctamente. RecordProcessor Esto puede llevar a que las transferencias sean más rápidas, pero se corre el riesgo de que el procesamiento quede incompleto.

Nota: Los puntos de control deben implementarse dentro del método shutdownRequested () del RecordProcessor para poder beneficiarse de la elegante función de traspaso de arrendamientos.

Es una nueva configuración presentada en KCL 3.x.

TRUE
gracefulLeaseHandoffTimeoutMillis LeaseManagementConfig

Especifica el tiempo mínimo (en milisegundos) que se debe esperar a que el fragmento actual se cierre correctamente antes de RecordProcessor transferir forzosamente el arrendamiento al siguiente propietario.

Si el método processRecords suele ejecutarse durante más tiempo que el valor predeterminado, tenga en mente aumentar esta configuración. Esto garantiza que RecordProcessor tenga tiempo suficiente para completar su procesamiento antes de que se produzca la transferencia del arrendamiento.

Es una nueva configuración presentada en KCL 3.x.

30 000 (30 segundos)
maxRecords PollingConfig

Permite establecer el número máximo de registros que devuelve Kinesis.

10 000
retryGetRecordsInSeconds PollingConfig

Configura el retraso entre los GetRecords intentos en caso de error.

Ninguno
maxGetRecordsThreadPool PollingConfig

El tamaño del grupo de subprocesos utilizado para GetRecords.

Ninguno
idleTimeBetweenReadsInMillis PollingConfig

Determina cuánto tiempo espera KCL entre GetRecords llamadas para sondear los datos de los flujos de datos. La unidad es de milisegundos.

1500
callProcessRecordsEvenForEmptyRecordList ProcessorConfig

Cuando se establece, se llama al procesador de registros incluso cuando no se proporciona ningún registro de Kinesis.

FALSO
parentShardPollIntervalMillis CoordinatorConfig

Determina la frecuencia con que debería sondear un procesador de registros para ver si el fragmento principal se ha completado. La unidad es milisegundos.

10 000 (10 segundos)
skipShardSyncAtWorkerInitializationIfLeaseExist CoordinatorConfig

Deshabilita la sincronización de los datos de los fragmentos si la tabla de asignaciones todavía contiene entradas.

FALSO

shardPrioritization CoordinatorConfig

La priorización de fragmentos que se va a utilizar.

NoOpShardPrioritization

ClientVersionConfig CoordinatorConfig

Determina en qué modo de compatibilidad de versiones de KCL se ejecutará la aplicación. Esta configuración es solo para la migración desde versiones anteriores de KCL. Al migrar a la versión 3.x, debe establecer esta configuración en CLIENT_VERSION_CONFIG_COMPATIBLE_WITH_2X. Puede eliminar esta configuración cuando complete la migración.

CLIENT_VERSION_CONFIG_3X
taskBackoffTimeMillis LifecycleConfig

El tiempo que se debe esperar para reintentar la tareas de KCL con errores. La unidad es de milisegundos.

500 (0,5 segundos)
logWarningForTaskAfterMillis LifecycleConfig

Tiempo que se debe esperar antes de registrar una advertencia si una tarea no ha finalizado.

Ninguno
listShardsBackoffTimeInMillis RetrievalConfig El número de milisegundos que se debe esperar entre llamadas a ListShards cuando se producen errores. La unidad es de milisegundos. 1500 (1,5 segundos)
maxListShardsRetryAttempts RetrievalConfig El número máximo de veces que se reintenta ListShards antes de desistir. 50
metricsBufferTimeMillis MetricsConfig

Especifica el tiempo máximo (en milisegundos) para almacenar en búfer las métricas antes de publicarlas. CloudWatch

10 000 (10 segundos)
metricsMaxQueueSize MetricsConfig

Especifica el número máximo de métricas que se deben almacenar en búfer antes de publicarlas CloudWatch.

10 000
metricsLevel MetricsConfig

Especifica el nivel de granularidad de CloudWatch las métricas que se van a habilitar y publicar.

Valores posibles: NONE, SUMMARY, DETAILED.

MetricsLevel.DETALLADO

metricsEnabledDimensions MetricsConfig

Controla las dimensiones permitidas para las CloudWatch métricas.

Todas las dimensiones

Configuraciones discontinuadas en KCL 3.x

Las siguientes propiedades de configuración están discontinuadas en KCL 3.x:

En la tabla se muestran las propiedades de configuración discontinuadas de KCL 3.x
Propiedad de configuración Clase de configuración Description (Descripción)
maxLeasesToStealAtOneTime LeaseManagementConfig

El número máximo de asignaciones del que debería intentar apropiarse una aplicación al mismo tiempo. KCL 3.x ignorará esta configuración y reasignará los arrendamientos según la utilización de los recursos por parte de los procesos de trabajo.

enablePriorityLeaseAssignment LeaseManagementConfig

Controla si los trabajadores deben dar prioridad a los arrendamientos muy vencidos (los arrendamientos no se renuevan hasta triplicar el tiempo de conmutación por error) y a los nuevos arrendamientos de particiones, independiente del número de arrendamientos de destino, pero respetando los límites máximos de arrendamiento. KCL 3.x ignorará esta configuración y siempre distribuirá los arrendamientos vencidos entre los procesos de trabajo.

importante

Debe seguir teniendo las propiedades de configuración interrumpidas durante la migración de versiones anteriores de KCL a KCL 3.x. Durante la migración, el proceso de trabajo de KCL comenzará primero con el modo compatible con KCL 2.x y pasará al modo de funcionalidad de KCL 3.x cuando detecte que todos los procesos de trabajo de KCL de la aplicación están preparados para ejecutar KCL 3.x. Estas configuraciones discontinuadas son necesarias mientras los procesos de trabajo de KCL utilizan el modo compatible con KCL 2.x.