Utilizzo dell'ID gruppo di messaggi 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à.

Utilizzo dell'ID gruppo di messaggi Amazon SQS

MessageGroupId è il tag che specifica che un messaggio appartiene a un gruppo di messaggi specifico. I messaggi che appartengono allo stesso gruppo di messaggi vengono sempre elaborati uno per uno, in un ordine rigoroso rispetto al gruppo di messaggi (tuttavia, i messaggi che appartengono a gruppi di messaggi diversi potrebbero essere elaborati in modo errato).

Interleaving di più gruppi di messaggi ordinati

Per eseguire l'interleave di più gruppi di messaggi ordinati all'interno di una singola coda FIFO, utilizza i valori ID del gruppo di messaggi (ad esempio, i dati di sessione per più utenti). In questo scenario, più consumatori sono in grado di elaborare la coda, ma i dati della sessione di ogni utente vengono elaborati in modalità FIFO.

Nota

Quando i messaggi appartenenti a un determinato ID gruppo messaggi sono invisibili, gli altri consumatori non sono in grado di elaborare messaggi con lo stesso ID gruppo messaggi.

Evitare l'elaborazione di duplicati in un sistema a più produttori/consumatori

Per evitare l'elaborazione dei messaggi duplicati in un sistema con più produttori e consumatori in cui il throughput e la latenza sono più importanti dell'ordinamento, il produttore deve generare un ID gruppo messaggi univoco per ogni messaggio.

Nota

In questo scenario, i duplicati vengono eliminati. Tuttavia, l'ordinazione del messaggio non può essere garantita.

Qualsiasi scenario con più produttori e consumatori aumenta il rischio di distribuire inavvertitamente un messaggio duplicato nel caso in cui il lavoratore non elabori il messaggio all'interno del timeout visibilità e il messaggio diventi disponibile per un altro lavoratore.

Evitare di avere un backlog di messaggi di grandi dimensioni con lo stesso ID gruppo di messaggi

Per le code FIFO, possono esserci un massimo di 20.000 messaggi in corso (ricevuti da una coda da un consumatore, ma non ancora eliminati dalla coda). Se raggiungi questa quota, Amazon SQS non restituisce alcun messaggio di errore. Una coda FIFO esamina i primi 20.000 messaggi per determinare i gruppi di messaggi disponibili. Ciò significa che se in un singolo gruppo di messaggi è presente un backlog, non è possibile utilizzare i messaggi provenienti da altri gruppi di messaggi inviati successivamente alla coda fino a quando non si gestisce correttamente il backlog.

Nota

Un backlog di messaggi con lo stesso ID gruppo di messaggi potrebbe verificarsi a causa di un consumatore che non è in grado di elaborare correttamente un messaggio. I problemi di elaborazione dei messaggi possono verificarsi a causa di un problema con il contenuto di un messaggio o a causa di un problema tecnico con il consumatore.

Per spostare i messaggi che non possono essere elaborati ripetutamente e per sbloccare l'elaborazione di altri messaggi con lo stesso ID gruppo di messaggi, valutare la possibilità di configurare una policy di coda DLQ.

Evitare di riutilizzare lo stesso ID gruppo di messaggi con le code virtuali

Per evitare che i messaggi con lo stesso ID gruppo di messaggi inviati a code virtuali diverse con la stessa coda host si blocchino l'un l'altro, evitare di riutilizzare lo stesso ID gruppo di messaggi con le code virtuali.