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.
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). La biblioteca de productores de Kinesis (KPL) simplifica el desarrollo de aplicaciones para productores, lo que permite a los desarrolladores lograr un alto rendimiento de escritura en una transmisión de datos de Kinesis.
Puedes monitorizar la KPL con Amazon CloudWatch. Para obtener más información, consulte Supervise la biblioteca de Kinesis Producer con Amazon CloudWatch.
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/
Revisar el rol de KPL
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 (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
Descubrir las ventajas del uso de KPL
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.
- Beneficios de rendimiento
-
KPL puede ayudar a crear productores de alto rendimiento. Considere una situación en la que sus EC2 instancias de Amazon sirvan como proxy para recopilar eventos de 100 bytes de cientos o miles de dispositivos de bajo consumo y escribir registros en una transmisión de datos de Kinesis. Cada una de estas EC2 instancias debe escribir miles de eventos por segundo en su transmisión 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
-
Como el KPL puede almacenar en búfer los registros antes de enviarlos a Kinesis Data Streams, no obliga a la aplicación que llama a bloquear y esperar a que se confirme que el registro ha llegado al servidor antes de continuar con la 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. Es el mismo comportamiento que el de los clientes asíncronos del SDK. AWS
Comprender cuándo no usar la KPL
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 toleren este retraso adicional necesiten usar el AWS SDK 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 for Java consulte. Para más información sobre RecordMaxBufferedTime
y otras propiedades configurables por el usuario de KPL, consulte Configurar Kinesis Producer Library.