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.
Argomenti
Avvia produttori e consumatori di dati
Per impostazione predefinita, la KCL inizia a leggere i record dall'estremità del flusso, 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, dovreste sempre fare in modo che le applicazioni consumer leggano lo stream e utilizzino 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
Dopo aver eseguito l'arresto della tua applicazione del flusso di dati Amazon Kinesis, è necessario eliminare la tabella Amazon DynamoDB che la KCL ha utilizzato per monitorare lo 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. Dato che KCL gestisce le interazioni tra l'applicazione e il flusso di dati Kinesis, si verificano eccezioni di limitazione nel codice della KCL anziché nel codice dell'applicazione. Tuttavia, dato che la KCL registra queste eccezioni, è possibile vederle 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.