View a markdown version of this page

Tipi di code Amazon SQS - Amazon Simple Queue Service

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à.

Tipi di code Amazon SQS

Amazon SQS supporta due tipi di code: code standard e code FIFO. Utilizza la seguente tabella per determinare quale coda si adatta meglio alle tue esigenze.

Code standard Code FIFO

Throughput illimitato: le code standard supportano un numero molto elevato e quasi illimitato di chiamate API al secondo, per azione (,, o). SendMessage ReceiveMessage DeleteMessage Questo elevato throughput le rende ideali per i casi d'uso che richiedono l'elaborazione rapida di grandi volumi di messaggi, come lo streaming di dati in tempo reale o le applicazioni su larga scala. Sebbene le code standard si scalino automaticamente in base alla domanda, è essenziale monitorare i modelli di utilizzo per garantire prestazioni ottimali, soprattutto nelle regioni con carichi di lavoro più elevati.

At-least-once consegna: consegna garantita almeno una volta, il che significa che ogni messaggio viene recapitato almeno una volta, ma in alcuni casi, un messaggio può essere recapitato più di una volta a causa di nuovi tentativi o ritardi della rete. È consigliabile progettare l'applicazione in modo da gestire potenziali messaggi duplicati utilizzando operazioni idempotenti, che assicurino che l'elaborazione dello stesso messaggio più volte non influisca sullo stato del sistema.

Best-effort ordinazione: consente di effettuare gli ordini con la massima rapidità, il che significa che Amazon SQS tenta di recapitare i messaggi nell'ordine in cui sono stati inviati, ma non garantisce che ciò avvenga. In alcuni casi, i messaggi possono arrivare fuori servizio, soprattutto in condizioni di elevata produttività o di ripristino in caso di errore. Per le applicazioni in cui l'ordine di elaborazione dei messaggi è fondamentale, è necessario gestire la logica di riordino all'interno dell'applicazione o utilizzare le code FIFO per garantire rigorose garanzie di ordinazione.

Durata e ridondanza: le code standard garantiscono un'elevata durabilità archiviando più copie di ciascun messaggio in più zone di disponibilità. AWS Ciò garantisce che i messaggi non vadano persi, anche in caso di guasti all'infrastruttura.

Timeout di visibilità: Amazon SQS consente di configurare un timeout di visibilità per controllare per quanto tempo un messaggio rimane nascosto dopo essere stato ricevuto, assicurando che altri consumatori non elaborino il messaggio fino a quando non è stato completamente gestito o non è scaduto il timeout.

Produttività elevata: quando si utilizza il batch, le code FIFO elaborano fino a 3.000 messaggi al secondo per metodo API (,, o). SendMessageBatch ReceiveMessage DeleteMessageBatch Questo throughput si basa su 300 chiamate API al secondo, con ogni chiamata API che gestisce un batch di 10 messaggi. Attivando la modalità High Throughput, è possibile scalare fino a 30.000 transazioni al secondo (TPS) con un ordinamento semplificato all'interno dei gruppi di messaggi. Senza batch, le code FIFO supportano fino a 300 chiamate API al secondo per metodo API (,, o). SendMessage ReceiveMessage DeleteMessage Se hai bisogno di una maggiore produttività, puoi richiedere un aumento della quota tramite il Centro assistenza. AWS Per abilitare la modalità ad alta velocità effettiva, consulta. Abilitare un throughput elevato per le code FIFO in Amazon SQS

Exactly-once elaborazione: le code FIFO recapitano ogni messaggio una volta e lo mantengono disponibile fino all'elaborazione e all'eliminazione. Utilizzando funzionalità come la deduplicazione basata sui contenuti, si evitano i messaggi duplicati, anche in caso di nuovo tentativo a causa di problemi di rete MessageDeduplicationId o timeout.

First-in-first-out consegna: le code FIFO assicurano che i messaggi vengano ricevuti nell'ordine in cui vengono inviati all'interno di ciascun gruppo di messaggi. Distribuendo i messaggi tra più gruppi, è possibile elaborarli in parallelo mantenendo l'ordine all'interno di ciascun gruppo.

Invio di messaggi in coda standard.
Consegna dei messaggi in coda FIFO.
Utilizza code standard per inviare dati tra applicazioni quando la velocità effettiva è fondamentale, ad esempio:
  • Separa le richieste degli utenti in tempo reale dal lavoro intensivo in background. Consenti agli utenti di caricare rapidamente i file multimediali mentre elabori attività come il ridimensionamento o la codifica in background, garantendo tempi di risposta rapidi senza sovraccaricare il sistema.

  • Assegna le attività a più nodi di lavoro. Distribuisci un numero elevato di richieste di convalida delle carte di credito su più nodi di lavoro e gestisci i messaggi duplicati con operazioni idempotenti per evitare errori di elaborazione.

  • Messaggi in batch per elaborazioni future. Mette in coda più voci per le aggiunte in batch a un database. Poiché l'ordine dei messaggi non è garantito, progetta il tuo sistema in modo da gestire l'elaborazione degli ordini non corretti, se necessario.

Usa le code FIFO per inviare dati tra applicazioni quando l'ordine degli eventi è importante, ad esempio:

  • Assicurati che i comandi immessi dall'utente vengano eseguiti nell'ordine corretto. Questo è un caso d'uso chiave per le code FIFO, in cui l'ordine dei comandi è fondamentale. Ad esempio, se un utente esegue una sequenza di azioni in un'applicazione, le code FIFO assicurano che le azioni vengano elaborate nello stesso ordine in cui sono state inserite.

  • Mostra il prezzo corretto del prodotto inviando le modifiche ai prezzi nell'ordine corretto. Le code FIFO assicurano che più aggiornamenti del prezzo di un prodotto arrivino e vengano elaborati in sequenza. Senza FIFO, una riduzione del prezzo potrebbe essere elaborata dopo un aumento del prezzo, causando la visualizzazione di dati errati.

  • Impedisci a uno studente di iscriversi a un corso prima di creare un account. Utilizzando le code FIFO, ti assicuri che il processo di registrazione avvenga nella sequenza corretta. Il sistema elabora prima la registrazione dell'account e poi l'iscrizione al corso, evitando che la richiesta di iscrizione venga eseguita prematuramente.