Cos'è Amazon Simple Queue Service - 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à.

Cos'è Amazon Simple Queue Service

Amazon Simple Queue Service (Amazon SQS) offre una coda ospitata internamente sicura, durevole e disponibile che consente di integrare e separare i componenti e i sistemi software distribuiti. Amazon SQS offre costrutti comuni come, ad esempio, code DLQ e tag di allocazione dei costi. Fornisce un'API di servizi Web generica a cui puoi accedere utilizzando qualsiasi linguaggio di programmazione supportato dall' AWS SDK.

Vantaggi dell'utilizzo di Amazon SQS

  • Sicurezza - Puoi controllare chi può inviare e ricevere messaggi da una coda Amazon SQS. Puoi scegliere di trasmettere dati sensibili proteggendo il contenuto dei messaggi nelle code utilizzando la crittografia lato server gestita (SSE) predefinita di Amazon SQS o utilizzando chiavi SSE personalizzate gestite in AWS Key Management Service (AWS KMS).

  • Durabilità: per garantire la sicurezza dei tuoi messaggi, Amazon SQS li memorizza su più server. Le code standard supportano il recapito dei at-least-once messaggi, mentre le code FIFO supportano l'elaborazione dei messaggi una sola volta e la modalità ad alta velocità.

  • Disponibilità: Amazon SQS utilizza un'infrastruttura ridondante per fornire l'accesso simultaneo ai messaggi e alta disponibilità per la produzione e l'utilizzo di messaggi.

  • Scalabilità: Amazon SQS è in grado di elaborare ogni richiesta di buffer in modo indipendente e di ridimensionarsi in maniera trasparente per gestire eventuali picchi o aumenti di carico senza le relative istruzioni di provisioning.

  • Affidabilità: Amazon SQS blocca i tuoi messaggi durante l'elaborazione, in modo tale che più produttori possono inviare e più consumatori possono ricevere messaggi contemporaneamente.

  • Personalizzazione: le tue code non devono essere esattamente uguali, per esempio, è possibile impostare un intervallo predefinito su una coda. Puoi archiviare i contenuti dei messaggi di dimensioni superiori a 256 KB utilizzando Amazon Simple Storage Service (Amazon S3) o Amazon DynamoDB con Amazon SQS che mantiene un puntatore all'oggetto Amazon S3, oppure puoi dividere un messaggio di grandi dimensioni in messaggi più piccoli.

Architettura Amazon SQS di base

Questa sezione illustra le parti di un sistema di messaggistica distribuito e spiega il ciclo di vita di un messaggio Amazon SQS.

Code distribuite

Esistono tre parti principali in un sistema di messaggistica distribuito: i componenti del sistema distribuito, la coda (distribuita su server Amazon SQS) e i messaggi nella coda.

Nel seguente scenario, il sistema dispone di diversi produttori, ossia componenti che inviano messaggi alla coda, e consumatori, componenti che ricevono messaggi dalla coda. La coda (che contiene i messaggi da A a E) archivia in modo ridondante i messaggi su più server Amazon SQS.

Tre parti principali di un sistema di messaggistica distribuito: i componenti del sistema distribuito, la coda (distribuita sui server Amazon SQS) e i messaggi in coda.

Ciclo di vita del messaggio

Lo scenario seguente descrive il ciclo di vita di un messaggio Amazon SQS in una coda, dalla creazione all'eliminazione.

Il ciclo di vita di un messaggio Amazon SQS in coda, dalla creazione all'eliminazione.

Section one description for the previous lifecycle diagram. Un produttore (componente 1) invia il messaggio A a una coda e il messaggio viene distribuito in modo ridondante sui server SQS.

Section two description for the previous lifecycle diagram. Quando un consumatore (componente 2) è pronto per elaborare i messaggi, utilizza i messaggi dalla coda e il messaggio A viene restituito. Mentre il messaggio A viene elaborato, rimane nella coda e non viene restituito alle richieste di ricezione successive per la durata del timeout visibilità.

Section three description for the previous lifecycle diagram. Il consumatore (componente 2) elimina il messaggio A dalla coda per impedire che venga nuovamente ricevuto ed elaborato allo scadere del timeout visibilità.

Nota

Amazon SQS elimina automaticamente i messaggi che sono stati in una coda per un periodo superiore quello massimo di conservazione. Il periodo predefinito per la conservazione dei messaggi è 4 giorni. Tuttavia, puoi impostare un valore compreso tra 60 secondi e 1.209.600 secondi (14 giorni) utilizzando l'azione SetQueueAttributes .

Differenze tra Amazon SQS, Amazon MQ e Amazon SNS

Amazon SQS, Amazon SNS e Amazon MQ offrono servizi di messaggistica altamente scalabili easy-to-use e gestiti, ciascuno progettato per ruoli specifici all'interno di sistemi distribuiti. Ecco una panoramica avanzata delle differenze tra questi servizi:

Amazon SQS disaccoppia e ridimensiona sistemi e componenti software distribuiti come servizio di coda. In genere elabora i messaggi tramite un singolo abbonato, ideale per flussi di lavoro in cui l'ordine e la prevenzione delle perdite sono fondamentali. Per una distribuzione più ampia, l'integrazione di Amazon SQS con Amazon SNS consente un modello di messaggistica fanout, inviando efficacemente i messaggi a più abbonati contemporaneamente.

Amazon SNS consente agli editori di inviare messaggi a più abbonati tramite argomenti, che fungono da canali di comunicazione. Gli abbonati ricevono messaggi pubblicati utilizzando un tipo di endpoint supportato, ad esempio Amazon Amazon Data FirehoseSQS, Lambda, HTTP, e-mail, notifiche push per dispositivi mobili e messaggi di testo mobili (SMS). Questo servizio è ideale per scenari che richiedono notifiche immediate, come il coinvolgimento degli utenti in tempo reale o i sistemi di allarme. Per evitare la perdita di messaggi quando gli abbonati sono offline, l'integrazione di Amazon SNS con i messaggi in coda di Amazon SQS garantisce una distribuzione coerente.

Amazon MQ si adatta meglio alle aziende che desiderano migrare dai tradizionali broker di messaggistica, supportando protocolli di messaggistica standard come AMQP e MQTT, oltre ad Apache ActiveMQ e RabbitMQ. Offre compatibilità con i sistemi legacy che richiedono una messaggistica stabile e affidabile senza riconfigurazioni significative.

La tabella seguente fornisce una panoramica del tipo di risorsa di ciascun servizio:

Tipo di risorsa Amazon SNS Amazon SQS Amazon MQ
Synchronous (Sincrona) No No
Asynchronous (Asincrona)
Queues No
Messaggistica publish-subscribe No
Broker di messaggi No No

Consigliamo Amazon SQS e Amazon SNS per le nuove applicazioni che possono sfruttare i vantaggi offerti da una scalabilità quasi illimitata e da semplici API. In genere offrono soluzioni più convenienti per applicazioni ad alto volume con i loro prezzi. pay-as-you-go Consigliamo Amazon MQ per la migrazione di applicazioni da broker di messaggi esistenti che si basano sulla compatibilità con API come JMS o protocolli come Advanced Message Queuing Protocol (AMQP), MQTT e Simple Text Oriented Message Protocol (STOMP). OpenWire