Risolvi i problemi dei produttori di Amazon Kinesis Data Streams - 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à.

Risolvi i problemi dei produttori di Amazon Kinesis Data Streams

La mia applicazione di produzione sta scrivendo a una velocità inferiore al previsto

I motivi più comuni per cui la velocità di scrittura è più lenta del previsto sono:

Limiti di servizio superati

Per scoprire se i limiti di servizio vengono superati, verifica se il produttore sta inserendo eccezioni di throughput dal servizio e verifica quali operazioni vengono limitate. API Ricorda che ci sono limiti diversi in base alla chiamata, consulta Quote e limiti. Ad esempio, in aggiunta ai limiti a livello di shard per le operazioni di lettura e scrittura più comunemente noti, ci sono i seguenti limiti a livello di flusso:

Le operazioni CreateStream, DeleteStream, ListStreams, GetShardIterator, e MergeShards sono limitate a 5 chiamate al secondo. L'operazione DescribeStream è limitata a 10 chiamate al secondo. L'operazione DescribeStreamSummary è limitata a 20 chiamate al secondo.

Se queste chiamate non sono il problema, assicurati di aver selezionato una chiave di partizione che consente di distribuire in modo uniforme le operazioni put e che non disponi di una determinata chiave di partizione che va contro le restrizioni dei servizi quando il resto non lo fa. Ciò richiede di misurare i picchi di throughput e considerare il numero di shard nel flusso. Per ulteriori informazioni sulla gestione dei flussi, consulta Crea e gestisci flussi di dati Kinesis.

Suggerimento

Ricorda di arrotondare al kilobyte più vicino per calcolare la limitazione del throughput quando utilizzi l'operazione a record singolo, mentre l'operazione a record multiplo arrotonda in base alla somma PutRecordcumulativa dei record di ogni chiamata. PutRecords Ad esempio, su una richiesta PutRecords di 600 record di 1,1 KB non verrà effettuato il throttling.

Voglio ottimizzare il mio produttore

Prima di iniziare a ottimizzare il tuo produttore, completa le seguenti attività chiave. In primo luogo, identifica il throughput maggiore desiderato in termini di dimensioni di record e record al secondo. Quindi, scarta la capacità di streaming come fattore di limitazione (Limiti di servizio superati). Se hai escluso la capacità di streaming, utilizza i seguenti suggerimenti per la risoluzione dei problemi e linee guida sull'ottimizzazione per due tipi di produttori comuni.

Produttore di grandi dimensioni

Un produttore di grandi dimensioni di solito viene eseguito da un server locale o da un'EC2istanza Amazon. Ai clienti che necessitano di un throughput maggiore da un producer di grandi dimensioni in genere interessa la latenza per record. Le strategie per gestire la latenza includono quanto segue: se il cliente è in grado di eseguire registrazioni in microbatch/buffer, utilizza la Kinesis Producer Library (che dispone di una logica di aggregazione avanzata), l'operazione multi-record o aggrega i record in un file più grande prima di utilizzare l'operazione PutRecordsa record singolo. PutRecord Se non sei in grado di eseguire un batch/buffer, utilizza più thread per scrivere nel servizio di Flussi di dati Kinesis nello stesso momento. Questi AWS SDK for Java e altri SDKs includono client asincroni che possono eseguire questa operazione con pochissimo codice.

Produttore di piccole dimensioni

Un producer di piccole dimensioni solitamente è un'applicazione mobile, un dispositivo IoT o un client Web. Se si tratta di un'app per dispositivi mobili, ti consigliamo di utilizzare l'PutRecordsoperazione o il Kinesis Recorder nel dispositivo mobile. AWS SDKs Per ulteriori informazioni, consulta la Guida AWS Mobile SDK for Android introduttiva e la Guida AWS Mobile SDK for iOS introduttiva. Le applicazioni mobili devono gestire le connessioni intermittenti intrinsecamente e hanno bisogno di un batch di put, ad esempio PutRecords. Se non sei in grado di eseguire un batch per qualsiasi motivo, consulta le informazioni sul Produttore di grandi dimensioni qui sopra. Se il producer è un browser, la quantità di dati generati è generalmente inferiore. Tuttavia, stai avviando le operazioni put nel percorso critico dell'applicazione, che non è consigliabile.

Ricevo un errore di autorizzazione della chiave KMS master non autorizzata

Questo errore si verifica quando un'applicazione producer scrive su uno stream crittografato senza autorizzazioni sulla chiave KMS master. Per assegnare a un'applicazione le autorizzazioni per accedere a una KMS chiave, vedere Utilizzo delle politiche chiave in AWS KMS e Utilizzo IAM delle politiche con. AWS KMS

Risolvi altri problemi comuni per i produttori