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à.
Le code per le fiere di Amazon SQS
Amazon SQS fair queues mitiga automaticamente l'impatto del rumore di prossimità nelle code multi-tenant che contengono messaggi provenienti da più entità logiche, come clienti, applicazioni client o tipi di messaggi. In questi ambienti di coda condivisi, una metrica prestazionale fondamentale è il tempo di permanenza, che misura il tempo totale di permanenza dei messaggi in coda dall'arrivo all'elaborazione. Quando un tenant crea un arretrato nella coda pubblicando più messaggi di quanti il sistema sia in grado di gestire, fair queues riduce al minimo l'impatto sul tempo di permanenza per gli altri tenant.
Stato stazionario
Il diagramma seguente illustra una coda multi-tenant contenente messaggi provenienti da quattro tenant distinti (etichettati A, B, C e D). La coda funziona in uno stato stazionario e non vi è alcun arretrato di messaggi in quanto i consumatori ricevono i messaggi non appena compaiono nella coda. Tutti gli inquilini hanno tempi di permanenza bassi. Non tutta la capacità dei consumatori è pienamente utilizzata in questo stato stazionario.

Impatto rumoroso sui vicini
L'impatto di Noisy Neighbor si verifica quando un tenant in una coda multi-tenant crea un backlog, aumentando il tempo di permanenza dei messaggi per tutti gli altri tenant. Un tenant può diventare un vicino rumoroso inviando un volume di messaggi maggiore rispetto agli altri tenant o quando i consumatori impiegano più tempo a elaborare i messaggi di quel particolare tenant.
Questo diagramma illustra come l'aumento del traffico proveniente dal Tenant A crei un arretrato nella coda. I consumatori sono impegnati a elaborare i messaggi provenienti solo dal Tenant A, mentre i messaggi degli altri tenant attendono nel backlog, con conseguenti tempi di permanenza più lunghi per tutti i tenant.

Attenuazione con code eque
Amazon SQS rileva i vicini rumorosi monitorando la distribuzione dei messaggi tra i tenant durante l'elaborazione (lo stato «in volo»). Quando un tenant ha un numero sproporzionato di messaggi in volo rispetto agli altri, Amazon SQS identifica quel tenant come un vicino rumoroso e dà priorità alla consegna dei messaggi per gli altri tenant. Questo approccio riduce l'impatto del tempo di permanenza sugli altri tenant.
Questo diagramma illustra come Amazon SQS fair queues risolve il problema dei vicini rumorosi. Quando un tenant (Tenant A) diventa rumoroso, Amazon SQS dà la priorità alla restituzione dei messaggi da altri tenant (B, C e D). Questa prioritizzazione aiuta a mantenere bassi i tempi di permanenza per i tenant silenziosi (Tenant B, C e D), mentre il tempo di permanenza per i messaggi del Tenant A è elevato fino a esaurire il backlog della coda senza influire sugli altri tenant.

Nota
Amazon SQS non limita il tasso di consumo per tenant. Consente ai consumatori di ricevere messaggi da inquilini vicini rumorosi quando il numero di utenti è disponibile e la coda non ha altri messaggi da restituire. Come le code standard di Amazon SQS, le code fair consentono un throughput praticamente illimitato e non ci sono limiti al numero di tenant che è possibile avere in coda.
Differenza rispetto alle code FIFO
Le code FIFO mantengono un ordine rigoroso limitando il numero di messaggi in volo da ciascun inquilino. In questo modo si evitano i rumorosi vicini, dall'altro limita la velocità di trasmissione per ogni inquilino. Le code eque sono progettate per scenari multi-tenant in cui la produttività elevata, il tempo di permanenza ridotto e l'equa allocazione delle risorse sono priorità. Le code eque consentono a più consumatori di elaborare contemporaneamente i messaggi dello stesso inquilino, aiutando tutti gli inquilini a mantenere tempi di permanenza costanti.
Utilizzo di code eque
I produttori di messaggi possono aggiungere un identificatore del tenant impostando un MessageGroupId
su un messaggio in uscita:
// Send message with tenant identifier SendMessageRequest request = new SendMessageRequest() .withQueueUrl(queueUrl) .withMessageBody(messageBody) .withMessageGroupId("tenant-123"); // Tenant identifier sqs.sendMessage(request);
La funzionalità di equità verrà applicata automaticamente in tutte le code standard di Amazon SQS per i messaggi con la proprietà. MessageGroupId Non richiede alcuna modifica del codice consumer, non ha alcun impatto sulla latenza delle API e non presenta limitazioni di throughput.
Metriche relative alle code eque CloudWatch
Amazon SQS fornisce CloudWatch parametri aggiuntivi per aiutarti a monitorare la mitigazione dell'impatto dei rumori vicini. Ad esempio, puoi confrontare Approximate..InQuietGroups
le metriche con le metriche standard a livello di coda. Durante i picchi di traffico per uno specifico tenant, le metriche generali a livello di coda potrebbero rivelare un aumento degli arretrati o una vecchiaia dei messaggi più vecchia. Tuttavia, esaminando isolatamente i gruppi silenziosi, è possibile constatare che la maggior parte dei gruppi di messaggi o degli inquilini non rumorosi non ne risente.
Di seguito è riportato un esempio in cui la metrica standard del backlog delle code (ApproximateNumberOfMessagesVisible) aumenta a causa di un tenant rumoroso, mentre il backlog per i tenant non rumorosi () rimane basso. ApproximateNumberOfMessagesVisibleInQuietGroups

Per un elenco completo dei parametri di Amazon SQS e delle relative descrizioni, consulta CloudWatch CloudWatch Metrics for Amazon SQS.