Knowledge Center Monthly Newsletter - March 2025
Stay up to date with the latest from the Knowledge Center. See all new and updated Knowledge Center articles published in the last month and re:Post’s top contributors.
Come posso evitare l’aumento il backlog di messaggi nella mia coda Amazon SQS?
Il backlog di messaggi nella mia coda Amazon Simple Queue Service (Amazon SQS) è aumentato e desidero evitarlo.
Breve descrizione
Code SQS standard e FIFO
Il backlog di messaggi aumenta nelle seguenti circostanze:
- I produttori inviano messaggi a una velocità superiore a quella dei messaggi consumati.
- I consumatori non eliminano i messaggi entro il periodo di timeout di visibilità. Quando viene eseguito il polling della coda SQS, i messaggi vengono nuovamente visualizzati nella coda.
Code FIFO SQS
Per le code SQS FIFO (First-In-First-Out), un aumento del backlog di messaggi può derivare anche da uno dei seguenti fattori:
- Limite del buffer di 120.000 messaggi della coda FIFO.
- Un messaggio che appartiene a un gruppo di messaggi viene bloccato da un consumatore che impedisce l'elaborazione di altri messaggi dello stesso gruppo di messaggi.
Risoluzione
Segui queste best practice per evitare un aumento del backlog di messaggi.
Code SQS standard e FIFO
- Imposta il timeout di visibilità ottimale della coda SQS per consentire al consumatore di eliminare i messaggi dopo averli elaborati entro il periodo di timeout di visibilità. Se non sai quanto tempo è necessario per elaborare un messaggio, crea un heartbeat per il tuo processo di consumo. Specifica il timeout di visibilità iniziale (ad esempio, due minuti). Se il consumatore ha bisogno di più tempo per elaborare il messaggio, utilizza la chiamata API ChangeMessageVisibility per aumentare il timeout di visibilità.
- Aumenta la dimensione del batch quando effettui chiamate API ReceiveMessage. Imposta il valore del parametro MaxNumberOfMessages su più di 1 e fino a un massimo di 10.
- Monitora la metrica della coda SQS Numero approssimativo di messaggi visibili. Questa metrica consente di vedere se i produttori iniziano a produrre messaggi a una velocità superiore alla velocità alla quale i consumatori possono consumare i messaggi. Per scalare orizzontalmente, aumenta il numero di consumatori o clienti che utilizzano la coda SQS o aumenta il numero di thread che eseguono il polling della coda.
Code FIFO SQS
Buffer di 120.000 messaggi
Le code FIFO consentono un massimo di 120.000 messaggi in transito. I messaggi in transito includono quelli ricevuti da una coda da un consumatore, ma non ancora eliminati dalla coda. Se raggiungi la quota di 120.000, Amazon SQS non restituisce messaggi di errore.
Una coda FIFO esamina i primi 120.000 messaggi per determinare i gruppi di messaggi disponibili. Se hai un backlog di messaggi in un singolo gruppo di messaggi, non puoi consumare messaggi da altri gruppi di messaggi finché non consumi correttamente i messaggi del backlog.
Ridimensionamento su gruppi di messaggi
I messaggi che appartengono allo stesso gruppo di messaggi vengono elaborati uno per uno, nell'ordine relativo al gruppo di messaggi. Quando ricevi messaggi con più ID di gruppo di messaggi, Amazon SQS tenta di restituire il maggior numero possibile di messaggi con lo stesso ID di gruppo di messaggi. Ciò consente ad altri consumatori di elaborare messaggi con un ID di gruppo di messaggi diverso.
Quando i messaggi che appartengono a un ID di gruppo di messaggi specifico sono invisibili, nessun altro consumatore può elaborare messaggi con lo stesso ID del gruppo di messaggi. Tuttavia, i consumatori possono elaborare i messaggi provenienti da altri gruppi di messaggi. Prova ad aumentare il numero di gruppi di messaggi in cui l'ordine non è importante.

Contenuto pertinente
- AWS UFFICIALEAggiornata 3 anni fa
- AWS UFFICIALEAggiornata 4 mesi fa
- AWS UFFICIALEAggiornata 4 anni fa
- AWS UFFICIALEAggiornata 2 anni fa