

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.

# Desarrollo de productores con Amazon Kinesis Producer Library (KPL)
<a name="developing-producers-with-kpl"></a>

Un productor de Amazon Kinesis Data Streams es una aplicación que coloca los registros de datos de usuario en un flujo de datos de Kinesis Data Streams (también denominado *ingesta de datos*). Amazon Kinesis Producer Library (KPL) simplifica el desarrollo de aplicaciones productoras y permite a los desarrolladores alcanzar un mayor rendimiento de escritura en un flujo de datos de Kinesis Data Streams. 

Puedes monitorizar la KPL con Amazon CloudWatch. Para obtener más información, consulte [Supervise la biblioteca de Kinesis Producer con Amazon CloudWatch](monitoring-with-kpl.md).

**Topics**
+ [Revisar el rol de KPL](#developing-producers-with-kpl-role)
+ [Descubrir las ventajas del uso de KPL](#developing-producers-with-kpl-advantage)
+ [Comprender cuándo no usar la KPL](#developing-producers-with-kpl-when)
+ [Instalar el KPL](kinesis-kpl-dl-install.md)
+ [Migrar de KPL 0.x a KPL 1.x](kpl-migration-1x.md)
+ [Transicionar a los certificados de Amazon Trust Services (ATS) para la KPL](kinesis-kpl-upgrades.md)
+ [Plataformas compatibles con KPL](kinesis-kpl-supported-plats.md)
+ [Conceptos clave de KPL](kinesis-kpl-concepts.md)
+ [Integrar la KPL con el código de productor](kinesis-kpl-integration.md)
+ [Escribir en Kinesis Data Stream mediante KPL](kinesis-kpl-writing.md)
+ [Configurar Amazon Kinesis Producer Library](kinesis-kpl-config.md)
+ [Implementar la desagregación de consumidores](kinesis-kpl-consumer-deaggregation.md)
+ [Usar KPL con Amazon Data Firehose](kpl-with-firehose.md)
+ [Utilice el KPL con el registro de AWS Glue esquemas](kpl-with-schemaregistry.md)
+ [Configurar la configuración del proxy de KPL](kpl-proxy-configuration.md)
+ [Política de ciclo de vida de la versión de KPL](kpl-version-lifecycle-policy.md)

**nota**  
Se recomienda actualizar a la versión más reciente de KPL. KPL se actualiza periódicamente con versiones más recientes que incluyen los últimos parches de dependencia y seguridad, correcciones de errores y nuevas características compatibles con versiones anteriores. Para obtener más información, consulte [https://github.com/awslabs/amazon-kinesis-producer/releases/](https://github.com/awslabs/amazon-kinesis-producer/releases/).

## Revisar el rol de KPL
<a name="developing-producers-with-kpl-role"></a>

La KPL es una easy-to-use biblioteca altamente configurable que le ayuda a escribir en una transmisión de datos de Kinesis. Ejerce de intermediaria entre el código de la aplicación de productor y las acciones de la API de Kinesis Data Streams. KPL realiza las siguientes tareas principales: 
+ Escribe en uno o varios flujo de datos de Kinesis con un mecanismo de reintento automático y configurable
+ Recopila registros y utiliza `PutRecords` para escribir varios registros en varios fragmentos por solicitud
+ Acumula registros de usuario para aumentar el tamaño de la carga y mejorar el rendimiento
+ Se integra perfectamente con [Kinesis Client Library](https://docs.aws.amazon.com/kinesis/latest/dev/developing-consumers-with-kcl.html) (KCL) para desagrupar registros en lotes en el consumidor
+ Envía las CloudWatch estadísticas de Amazon en tu nombre para proporcionar visibilidad sobre el rendimiento del productor

Tenga en cuenta que la KPL es diferente de la API de Kinesis Data Streams que está disponible en. [AWS SDKs](https://aws.amazon.com/tools/) La API de Kinesis Data Streams ayuda a administrar muchos aspectos de Kinesis Data Streams (como la creación de flujos, el cambio de las particiones de registros, así como la inserción y obtención de estos), mientras que KPL proporciona una capa de abstracción específica para la ingesta de datos. Para obtener información sobre la API de Kinesis Data Streams, consulte [Referencia de la API de Amazon Kinesis](https://docs.aws.amazon.com/kinesis/latest/APIReference/).

## Descubrir las ventajas del uso de KPL
<a name="developing-producers-with-kpl-advantage"></a>

La siguiente lista representa algunas de las ventajas más importantes de utilizar KPL para el desarrollo de productores de Kinesis Data Streams.

KPL puede utilizarse en casos de uso síncronos o asíncronos. Se recomienda utilizar el mayor rendimiento de la interfaz asíncrona a menos que haya una razón específica para utilizar un comportamiento síncrono. Para obtener más información sobre estos dos casos de uso y ver código de muestra, consulte [Escribir en Kinesis Data Stream mediante KPL](kinesis-kpl-writing.md).

 **Beneficios de rendimiento**   
KPL puede ayudar a crear productores de alto rendimiento. Piense en una situación en la que las instancias de Amazon EC2 sirven como un proxy para recopilar eventos de 100 bytes de cientos o miles de dispositivos de baja potencia y para escribir registros en un flujo de datos de Kinesis. Cada una de estas instancias EC2 debe escribir miles de eventos por segundo en la secuencia de datos. Para conseguir el nivel de rendimiento necesario, los productores deben implementar lógica complicada como, por ejemplo, la creación de lotes o la ejecución de subprocesos, además de lógica de reintento y desagrupación de registros en el lado del consumidor. KPL realiza todas estas tareas. 

 **Facilidad de uso en el lado del consumidor**   
En el caso de los desarrolladores del lado del consumidor que usan KCL en Java, KPL se integra sin mayor esfuerzo. Cuando KCL recupera un registro agregado de Kinesis Data Streams que consta de varios registros de usuario de KPL, llama automáticamente a KPL para que extraiga los registro de usuario individuales antes de devolverlos al usuario.   
Para los desarrolladores del lado del consumidor que no utilicen KCL, sino que, en su lugar, utilicen la operación de la API `GetRecords` directamente, hay disponible una biblioteca de Java de KPL que pueden usar para extraer los registros de los usuarios individuales antes de devolverlos al usuario. 

 **Monitoreo del productor**   
Puede recopilar, supervisar y analizar a sus productores de Kinesis Data Streams mediante CloudWatch Amazon y la KPL. El KPL emite el rendimiento, los errores y otras métricas CloudWatch en su nombre, y se puede configurar para supervisarlo a nivel de transmisión, fragmento o productor.

 **Arquitectura asíncrona**   
Debido a que KPL puede almacenar en búfer los registros antes de enviarlos a Kinesis Data Streams, en la aplicación intermediaria no se fuerza el bloqueo y la espera a la confirmación de que el registro ha llegado al servidor antes de continuar con el tiempo de ejecución. Una llamada para insertar un registro en KPL siempre vuelve inmediatamente, y no se espera a que el registro se envíe o a que se reciba una respuesta desde el servidor. En su lugar, se crea un objeto `Future` que recibe el resultado de enviar el registro a Kinesis Data Streams en un momento posterior. Este comportamiento es el mismo que el de los clientes asíncronos del SDK. AWS 

## Comprender cuándo no usar la KPL
<a name="developing-producers-with-kpl-when"></a>

KPL puede ocasionar un retraso adicional en el procesamiento de hasta `RecordMaxBufferedTime` en la biblioteca (configurable por el usuario). Los valores más altos de `RecordMaxBufferedTime` ofrecen un mayor eficacia de empaquetamiento y un mejor rendimiento. Es posible que las aplicaciones que no pueden tolerar este retraso tengan que utilizar el SDK de AWS directamente. Para obtener más información sobre el uso del AWS SDK con Kinesis Data Streams, [Desarrolle productores mediante la API Amazon Kinesis Data Streams con AWS SDK para Java](developing-producers-with-sdk.md) consulte. Para más información sobre `RecordMaxBufferedTime` y otras propiedades configurables por el usuario de KPL, consulte [Configurar Amazon Kinesis Producer Library](kinesis-kpl-config.md).