View a markdown version of this page

Dettagli sull'ordine dei messaggi Amazon SNS per argomenti FIFO - Amazon Simple Notification 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à.

Dettagli sull'ordine dei messaggi Amazon SNS per argomenti FIFO

Un argomento FIFO di Amazon SNS invia sempre messaggi alle code di Amazon SQS sottoscritte nell'ordine esatto in cui i messaggi vengono pubblicati nell'argomento e una sola volta. Con una coda FIFO di Amazon SQS sottoscritta, l'utente della coda riceve i messaggi nell'ordine esatto in cui questi vengono consegnati alla coda e senza duplicati. Con una coda standard di SQS sottoscritta, tuttavia, l'utente della coda può ricevere messaggi non in ordine e più di una volta. Ciò consente un ulteriore disaccoppiamento degli abbonati dagli editori, offrendo agli abbonati una maggiore flessibilità in termini di consumo di messaggi e di ottimizzazione dei costi, come mostrato nel diagramma seguente, basato su Esempio di utilizzo dell'argomento FIFO di Amazon SNS.

Esempio di sistema di consegna dei messaggi in un argomento Amazon SNS FIFO (First-In-First-Out), che evidenzia come i messaggi vengono recapitati in modo coerente e in un ordine rigoroso alle code FIFO di Amazon SQS. Ciò contrasta con il comportamento di una coda standard di Amazon SQS, in cui i messaggi possono arrivare fuori ordine e più di una volta. L'esempio mostra tre diversi tipi di abbonati: una funzione di analisi, un'applicazione per la vendita all'ingrosso e un'applicazione per la vendita al dettaglio, a dimostrazione del modo in cui ciascuno riceve i messaggi in ordine rigoroso o nel miglior ordine possibile a seconda del tipo di coda a cui si iscrive.

Si noti che non vi è alcun ordinamento implicito degli abbonati. L'esempio seguente ne è un'illustrazione m1 viene consegnato prima all'abbonato all'ingrosso, poi all'abbonato al dettaglio e quindi all'abbonato di analisi. Messaggio m2 viene consegnato prima all'abbonato al dettaglio, poi all'abbonato all'ingrosso e infine all'abbonato di analisi. Sebbene i due messaggi vengano recapitati agli abbonati in un ordine diverso, l'ordinamento dei messaggi viene mantenuto per ogni abbonato FIFO di Amazon SQS. Ogni abbonato è percepito in isolamento da qualsiasi altro abbonato.

Esempio di come gli argomenti FIFO di Amazon SNS e i vari tipi di abbonati, tra cui Amazon SQS FIFO e le code standard, gestiscono l'ordinazione e la consegna dei messaggi. Mostra che i messaggi vengono pubblicati su un argomento e recapitati a diversi tipi di code, garantendo la consegna ordinata per le code FIFO e la massima efficienza per le code standard. Questa configurazione supporta scenari in una piattaforma di e-commerce in cui diversi componenti richiedono una consegna affidabile dei messaggi in un ordine specifico per un'elaborazione accurata.

Se un sottoscrittore della coda di Amazon SQS diventa irraggiungibile, può uscire dalla sincronizzazione. Ad esempio, supponiamo che il proprietario della coda dell'applicazione all'ingrosso cambi erroneamente il Policy Coda Amazon SQS in modo da impedire all'entità servizio Amazon SNS di recapitare messaggi alla coda. In questo caso, le consegne degli aggiornamenti dei prezzi alla coda all'ingrosso non vanno a buon fine, mentre quelle alle code di vendita al dettaglio e di analisi hanno esito positivo, causando la mancata sincronizzazione degli abbonati. Quando il proprietario della coda delle applicazioni all'ingrosso corregge la relativa policy della coda, Amazon SNS riprende a consegnare i messaggi alla coda sottoscritta. Gli eventuali messaggi pubblicati nell'argomento che hanno come target la coda configurata in modo errato vengono eliminati, a meno che la sottoscrizione corrispondente non disponga di un coda DLQ configurata.

Esempio del comportamento di consegna dei messaggi in una configurazione FIFO di Amazon SNS in cui i messaggi vengono pubblicati a diversi tipi di abbonati (vendita all'ingrosso, vendita al dettaglio e analisi) tramite code Amazon SQS. Evidenzia l'impatto di un'errata configurazione delle politiche di coda sulla sincronizzazione della consegna dei messaggi tra diverse code di abbonati. L'esempio mostra come la consegna dei messaggi fallisca per gli abbonati all'ingrosso a causa di un errore di policy, ma continui con successo per gli abbonati retail e analytics, sottolineando l'importanza di una corretta configurazione della coda per mantenere la distribuzione sincronizzata dei dati. Questo scenario sottolinea la capacità degli argomenti FIFO di garantire una consegna ordinata ed esatta in circostanze normali e le conseguenze degli errori di configurazione.

È possibile disporre di più applicazioni (o più thread all'interno della stessa applicazione) che pubblicano messaggi in un argomento FIFO SNS in parallelo. Quando si esegue questa operazione, è possibile delegare in modo efficace il sequenziamento dei messaggi al servizio di Amazon SNS. Per determinare la sequenza stabilita di messaggi, è possibile controllare il numero di sequenza.

Il numero di sequenza è un numero grande, non consecutivo, che Amazon SNS assegna a ciascun messaggio. La lunghezza del numero di sequenza è di 128 bit e continua ad aumentare per ogni gruppo di messaggi. Il numero di sequenza viene passato alle code FIFO di Amazon SQS sottoscritte come parte del corpo del messaggio. Tuttavia, se si abilita Consegna di messaggi non elaborati, il messaggio recapitato alla coda di Amazon SQS non include il numero di sequenza o altri metadati del messaggio Amazon SNS.

Un esempio di più funzioni Lambda consente di pubblicare messaggi su un argomento Amazon SNS FIFO (First In, First Out), che quindi recapita questi messaggi a una coda FIFO di Amazon SQS, mantenendo il rigoroso ordine di elaborazione dei messaggi. Questa configurazione viene utilizzata per garantire che i messaggi vengano elaborati nell'ordine esatto in cui vengono inviati tra i diversi componenti di un'applicazione, con numeri di sequenza che indicano l'ordine di ciascun messaggio all'interno di un gruppo. Questo tipo di configurazione è fondamentale per le applicazioni in cui l'ordine delle operazioni e dei messaggi deve essere rigorosamente mantenuto per garantire la coerenza.

Gli argomenti FIFO di Amazon SNS definiscono l'ordine nel contesto di un gruppo di messaggi. Per ulteriori informazioni, consulta Raggruppamento di messaggi Amazon SNS per argomenti FIFO.