Solucione los problemas de los productores de Amazon Kinesis Data Streams - 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.

Solucione los problemas de los productores de Amazon Kinesis Data Streams

Mi aplicación de productor se graba a un ritmo más lento de lo esperado

Las razones más comunes por las que el rendimiento de escritura es más lento de lo esperado son:

Se han superado los límites de servicio

Para saber si se están excediendo los límites de servicio, compruebe si su productor está emitiendo excepciones de rendimiento al servicio y valide qué API operaciones se están limitando. Tenga en cuenta que hay diferentes límites en función de la llamada, consulte Cuotas y límites. Por ejemplo, además de los límites de nivel de fragmento para escrituras y lecturas más conocidos, existen los siguientes límites para el nivel de la secuencia:

Las operaciones CreateStream, DeleteStream, ListStreams, GetShardIterator y MergeShards están limitadas a 5 llamadas por segundo. La operación DescribeStream está limitada a 10 llamadas por segundo. La operación DescribeStreamSummary está limitada a 20 llamadas por segundo.

Si estas llamadas no son el problema, asegúrese de que ha seleccionado una clave de partición que le permita distribuir de manera uniforme las operaciones put en todos los fragmentos, y que no tiene una clave de partición en particular que alcance los límites del servicio sin que el resto lo hagan. Esto requiere que mida los picos de rendimiento y que tenga en cuenta el número de fragmentos de su secuencia. Para obtener más información acerca de cómo administrar secuencias, consulte Cree y administre transmisiones de datos de Kinesis.

sugerencia

Recuerde redondear al kilobyte más cercano para calcular la reducción del rendimiento cuando utilice la operación de registro único PutRecord, mientras que la operación de registro múltiple PutRecordsredondea la suma acumulada de los registros de cada llamada. Por ejemplo, una solicitud PutRecords con 600 registros de 1,1 KB no será objeto de limitación controlada.

Quiero optimizar mi productor

Antes de empezar a optimizar su productor, complete las siguientes tareas clave. En primer lugar, identifique el rendimiento máximo deseado en términos de tamaño del registro y registros por segundo. A continuación, descarte la capacidad de la secuencia como factor limitante (Se han superado los límites de servicio). Si ha descartado la capacidad de la secuencia, recurra a los siguientes consejos para solucionar problemas y directrices de optimización para los dos tipos comunes de productores.

Productor grande

Por lo general, un gran productor se ejecuta desde un servidor local o una EC2 instancia de Amazon. Los clientes que necesitan un mayor rendimiento de un productor grande normalmente se preocupan de la latencia por registro. Entre las estrategias para gestionar la latencia se incluyen las siguientes: si el cliente puede almacenar registros en microlotes o en búfer, utilice la biblioteca Kinesis Producer (que cuenta con una lógica de agregación avanzada), la operación de varios registros o agregue los registros en un archivo más grande antes de utilizar la operación PutRecordsde registro único. PutRecord Si no puede crear lotes o almacenar en memoria, use varios subprocesos para escribir en un servicio de Kinesis Data Streams al mismo tiempo. Esta AWS SDK for Java y otras SDKs incluyen clientes asíncronos que pueden hacerlo con muy poco código.

Productores pequeños

Un productor pequeño suele ser una aplicación móvil, un dispositivo de IoT o un cliente web. Si se trata de una aplicación móvil, le recomendamos que utilice la PutRecords operación o la grabadora Kinesis en el AWS dispositivo móvil. SDKs Para obtener más información, consulte la AWS Mobile SDK for Android Guía de introducción y la AWS Mobile SDK for iOS Guía de introducción. Las aplicaciones móviles deben administrar conexiones intermitentes inherentemente y necesitan algún tipo de inserción por lotes, como por ejemplo PutRecords. Si no puede crear lotes por algún motivo, consulte la información sobre productores grandes que aparece anteriormente. Si su productor es un navegador, la cantidad de datos generados suele ser muy pequeña. Sin embargo, estará ubicando las operaciones put en la ruta crítica de la aplicación, lo que no es recomendable.

Recibo un error de permiso de clave KMS maestra no autorizada

Este error se produce cuando una aplicación de producción escribe en una transmisión cifrada sin los permisos de la clave KMS maestra. Para asignar permisos a una aplicación para acceder a una KMS clave, consulte Uso de políticas clave en AWS KMS y Uso de IAM políticas con AWS KMS.

Solucione otros problemas comunes para los productores