Sviluppo di applicazioni producer tramite la Amazon Kinesis Producer Library - Flusso di dati Amazon Kinesis

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Sviluppo di applicazioni producer tramite la Amazon Kinesis Producer Library

Un producer del flusso di dati Amazon Kinesis è qualsiasi applicazione che inserisce record di dati utente in un flusso di dati Kinesis (anche detto importazione dei dati). La Kinesis Producer Library (KPL) semplifica lo sviluppo di applicazioni producer, che consentono agli sviluppatori di ottenere velocità di trasmissione effettiva di scrittura elevata in un flusso di dati Kinesis.

Puoi monitorare il KPL con Amazon CloudWatch. Per ulteriori informazioni, consulta Monitoraggio della Kinesis Client Library con Amazon CloudWatch.

Nota

Consigliamo di eseguire l'aggiornamento alla versione KPL più recente. La KCL viene regolarmente aggiornata con versioni più recenti che includono le ultime patch di dipendenza e sicurezza, correzioni di bug e nuove funzionalità retrocompatibili. Per ulteriori informazioni, consulta https://github.com/awslabs/ amazon-kinesis-producer /releases/.

Ruolo della KPL

KPL è una easy-to-use libreria altamente configurabile che ti aiuta a scrivere su un flusso di dati Kinesis. Funge da intermediario tra il codice dell'applicazione producer e le operazioni API del flusso di dati Kinesis. La KPL esegue le seguenti attività primarie:

  • Scrive su uno o più flussi di dati Kinesis con un meccanismo di tentativi automatico e configurabile

  • Raccoglie record e utilizza PutRecords per scrivere più record in più shard per richiesta

  • Unisce i record degli utenti per aumentare la dimensione del payload e migliorare il throughput

  • Si integra perfettamente con la Kinesis Client Library (KCL) per disaggregare i record raggruppati nel consumer

  • Invia i CloudWatch parametri di Amazon per tuo conto per fornire visibilità sulle prestazioni dei produttori

Nota che la KPL è diversa dall'API del flusso di dati Kinesis che è disponibile negli SDKAWS. L'API del flusso di dati Kinesis consente di gestire molti aspetti del flusso di dati Kinesis (inclusa la creazione di flussi, il ripartizionamento e l'inserimento e l'estrazione di record), mentre la KPL fornisce un livello di astrazione specificamente per l'importazione dei dati. Per ulteriori informazioni sulle API del flusso di dati Kinesis, consulta la Documentazione di riferimento delle API di Amazon Kinesis.

Vantaggi nell'utilizzo della KPL

L'elenco seguente rappresenta alcuni dei principali vantaggi dell'utilizzo della KPL per lo sviluppo di producer del flusso di dati Kinesis.

La KPL può essere utilizzata in casi di utilizzo sincroni o asincroni. Suggeriamo di utilizzare le prestazioni più elevate dell'interfaccia asincrona, a meno che non vi sia un motivo specifico per l'utilizzo del comportamento sincrono. Per ulteriori informazioni su questi due casi d'uso e sul codice di esempio, consulta Scrittura sul flusso di dati Kinesis tramite la KPL.

Vantaggi in termini di prestazioni

La KPL può aiutare a creare producer ad alte prestazioni. Considera una situazione in cui le istanze Amazon EC2 servono come proxy per la raccolta di eventi a 100 byte provenienti da centinaia o migliaia di dispositivi a bassa potenza e record di scrittura in un flusso di dati Kinesis. Queste istanze EC2 devono scrivere migliaia di eventi al secondo ciascuna per il flusso di dati. Per ottenere il throughput necessario, i produttori devono implementare una logica complicata, ad esempio esecuzione di batch o multithreading, in aggiunta al tentativo di disaggregare la logica e i record da parte del consumer. La KPL esegue tutte queste attività per tuo conto.

Consumer-Side Ease of Use (Facilità utilizzo lato consumer)

Per gli sviluppatori lato consumer che utilizzano la KCL in Java, la KPL si integra senza sforzo aggiuntivo. Quando la KCL recupera un record del flusso di dati Kinesis aggregato composto da più record utente della KPL, automaticamente richiama la KPL per estrarre i record utente individuali prima di restituirli all'utente.

Per gli sviluppatori lato consumer che non utilizzano la KCL ma invece utilizzano l'operazione API GetRecords direttamente, una libreria Java della KPL è disponibile per estrarre i record utente individuali prima di restituirli all'utente.

Monitoraggio producer

Puoi raccogliere, monitorare e analizzare i tuoi produttori di Kinesis Data Streams utilizzando CloudWatch Amazon e KPL. Il KPL emette velocità effettiva, errori e altre metriche per tuo CloudWatch conto ed è configurabile per il monitoraggio a livello di stream, shard o produttore.

Asynchronous Architecture (Architettura asincrona)

Poiché la KPL potrebbe eseguire il buffer sui record prima di inviarli al flusso di dati Kinesis, non forza l'applicazione dell'intermediario a bloccare e attendere la conferma che il record è arrivato al server prima di continuare l'esecuzione. Una chiamata per inserire un record nella KPL restituisce sempre immediatamente e non attende l'invio del record né di ricevere una risposta dal server. Al contrario, viene creato un oggetto Future che riceve il risultato di inviare il record al flusso di dati Kinesis in un secondo momento. Si tratta dello stesso comportamento dei client asincroni nell'SDK. AWS

Quando non utilizzare la KPL

La KPL può subire un ulteriore ritardo di elaborazione fino a RecordMaxBufferedTime all'interno della libreria (configurabile dall'utente). Valori più elevati di RecordMaxBufferedTime risultano in creazione di pacchetti più veloce e prestazioni migliori. Le applicazioni che non possono tollerare questo ritardo aggiuntivo potrebbe aver bisogno di utilizzare direttamente l'SDK AWS . Per ulteriori informazioni sull'utilizzo dell' AWS SDK con Kinesis Data Streams, consulta. Sviluppo di applicazioni producer tramite l'API di Flusso di dati Amazon Kinesis con la AWS SDK for Java Per ulteriori informazioni su RecordMaxBufferedTime e altre proprietà configurabili dall'utente della KPL, consulta Configurazione della Kinesis Producer Library.