Aws Sqs
DodaTech
2 min read
title: "Cum să folosești SQS (Simple Queue Service) în AWS — Ghid rapid" description: "Creare cozi SQS, trimitere și consumare mesaje, configurare Dead Letter Queue și vizibilitate în AWS" weight: 1037 date: 2025-01-15 draft: false tags: [aws, sqs, cozi, mesaje, quick-fix]
Amazon SQS (Simple Queue Service) este un serviciu de coadă de mesaje complet gestionat care decuplează componentele aplicațiilor, permițând procesarea asincronă și fiabilă a mesajelor.
Problema
Într-o arhitectură monolitică, componentele aplicației comunică direct, creând cuplări strânse. Dacă o componentă cade, întregul flux e blocat și pierzi mesaje. Scalarea devine dificilă și costisitoare.
Abordarea Greșită
# Comunicare directă HTTP între servicii
response = requests.post("http://procesare/api/comenzi", json=comanda)
# Dacă serviciul cade, comanda e pierdută
Abordarea Corectă
Folosește SQS pentru decuplare:
# Creare coadă
aws sqs create-queue --queue-name comenzi-livezi
# Trimite mesaj
aws sqs send-message \
--queue-url https://sqs.us-east-1.amazonaws.com/123456789012/comenzi-livezi \
--message-body '{"comanda_id": "1234", "produs": "Laptop", "cantitate": 1}'
# Primește mesaj
aws sqs receive-message \
--queue-url https://sqs.us-east-1.amazonaws.com/123456789012/comenzi-livezi \
--max-number-of-messages 5 \
--wait-time-seconds 10
# Șterge mesaj (după procesare)
aws sqs delete-message \
--queue-url https://sqs.us-east-1.amazonaws.com/123456789012/comenzi-livezi \
--receipt-handle "AQEB..."
Output send-message:
{
"MessageId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
Dead Letter Queue (DLQ)
# Creare DLQ
aws sqs create-queue --queue-name comenzi-livezi-dlq
# Obține ARN-ul DLQ-ului
aws sqs get-queue-attributes \
--queue-url https://sqs.us-east-1.amazonaws.com/123456789012/comenzi-livezi-dlq \
--attribute-names QueueArn
# Configurează coada principală cu redrive policy
aws sqs set-queue-attributes \
--queue-url https://sqs.us-east-1.amazonaws.com/123456789012/comenzi-livezi \
--attributes '{
"RedrivePolicy": "{\"deadLetterTargetArn\":\"arn:aws:sqs:us-east-1:123456789012:comenzi-livezi-dlq\",\"maxReceiveCount\":\"5\"}"
}'
Greșeli Comune
- Fără DLQ — mesajele care eșuează de 5 ori rămân în coadă și blochează procesarea.
- Visibility timeout prea mic — mesajele revin în coadă înainte de procesare completă.
- Polling scurt în loc de long polling — setează
WaitTimeSecondsla 10-20s pentru a reduce costurile. - Mesaje fără idempotență — SQS poate livra același mesaj de două ori; asigură procesare idempotentă.
- Ignorarea ordinii mesajelor în FIFO — pentru ordine strictă, folosește cozi FIFO nu Standard.
FAQ
Construit de dezvoltătorii Doda Browser, DodaZIP și Durga Antivirus Pro. DodaTech integrează securitatea în fiecare soluție cloud.
Built by the developers of DodaTech
Doda Browser, DodaZIP & Durga Antivirus Pro