Gestisci l'avvio, lo spegnimento e la limitazione - 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à.

Gestisci l'avvio, lo spegnimento e la limitazione

Di seguito sono elencate alcune considerazioni aggiuntive da integrare nella progettazione della tua applicazione del flusso di dati Amazon Kinesis.

Avvia produttori e consumatori di dati

Per impostazione predefinita, KCL inizia a leggere i record dall'estremità dello stream, che è il record aggiunto più di recente. In questa configurazione, se un'applicazione produttrice di dati aggiunge record al flusso prima che i processori di record riceventi siano in esecuzione, i record non vengono letti dai processori di record dopo l'avvio.

Per modificare il comportamento dei processori di record in modo che leggano sempre i dati dall'inizio del flusso, imposta il seguente valore nel file proprietà per la tua applicazione del flusso di dati Amazon Kinesis:

initialPositionInStream = TRIM_HORIZON

Per impostazione predefinita, Flusso di dati Amazon Kinesis archivia tutti i dati per 24 ore. Supporta inoltre la conservazione prolungata fino a 7 giorni e la conservazione a lungo termine fino a 365 giorni. Questo intervallo di tempo viene chiamato il periodo di conservazione. Se si imposta la posizione iniziale in TRIM_HORIZON il processore di record verrà avviato con i dati meno recenti nel flusso, secondo quanto definito dal periodo di conservazione. Anche con l'impostazione TRIM_HORIZON, qualora un processore di record venisse avviato dopo che è trascorso un intervallo di tempo maggiore rispetto al periodo di conversazione alcuni record nel flusso non sarebbero più disponibili. Per questo motivo, dovresti sempre fare in modo che le applicazioni consumer leggano lo stream e utilizzare la CloudWatch metrica GetRecords.IteratorAgeMilliseconds per monitorare che le applicazioni stiano tenendo il passo con i dati in entrata.

In alcuni scenari, perdere i primi record nel flusso potrebbe essere una buona opzione per i processori di record. Ad esempio, potreste eseguire alcuni record iniziali attraverso lo stream per verificare che lo stream funzioni end-to-end come previsto. Dopo avere eseguito questa verifica iniziale, avvieresti i tuoi lavoratori e cominceresti a integrare i dati di produzione nel flusso.

Per ulteriori informazioni sull'impostazione TRIM_HORIZON, consulta Usa gli iteratori shard.

Chiudi un'applicazione Amazon Kinesis Data Streams

Quando l'applicazione Amazon Kinesis Data Streams ha completato l'attività prevista, è necessario chiuderla EC2 chiudendo le istanze su cui è in esecuzione. Puoi terminare le istanze utilizzando la AWS Management Console o la AWS CLI.

Dopo aver chiuso l'applicazione Amazon Kinesis Data Streams, è necessario eliminare la tabella Amazon DynamoDB utilizzata per tracciare lo KCL stato dell'applicazione.

Limitazione della lettura

Il throughput di un flusso viene assegnato a livello di shard. Ogni partizione ha una velocità di trasmissione effettiva di lettura fino a 5 transazioni al secondo, fino a una velocità di lettura totale massima di 2 MB al secondo. Se un'applicazione (o un gruppo di applicazioni che operano nello stesso flusso) prova a ottenere i dati da una partizione una velocità superiore, il flusso di dati Kinesis applica la limitazione delle operazioni Get corrispondenti.

In un'applicazione del flusso di dati Amazon Kinesis, se un processore di record sta elaborando dati più rapidamente rispetto al limite, ad esempio nel caso di un failover, si verifica una limitazione. Poiché KCL gestisce le interazioni tra l'applicazione e Kinesis Data Streams, le eccezioni di limitazione si verificano KCL nel codice anziché nel codice dell'applicazione. Tuttavia, poiché KCL registra queste eccezioni, le vedi nei log.

Se ritieni che la tua applicazione sia sottoposta a throttling in modo costante, è consigliabile considerare un aumento del numero di shard per il flusso.