Simple Queue Service (SQS)
Örnek:

Tek Seferde farkedildiği üzere 2. Elastik Load Balancer'a devasa bir yük binebilmektedir.
Ama Eğer Bir Queue (Sıra) Sistemi kullanırsak:

Sanki Ortasına devasa bir kova koymuşuz ve kova vasıtasıyla veriler sunuculara yansıtılır.
Yani Front sunucularındaki tüm istekler bir kovaya atılır, kovadan ise müsait olan sunuculara veriler gönderilir. Eğer arada ELB olsa idi müsait olup olmamasına bakmaksızın ELB verileri eşit olarak sunuculara yönlendirecek ve sunucuların birinin iptal olmasına sebep olabilecekti.

SQS, mikroservisleri, dağıtılmış sistemleri ve sunucu olmayan uygulamaları ölçeklendirmenize olanak tanıyan, tam yönetilen bir mesajlaşma hizmetidir. SQS Karmaşık aracılık ve üst düzey yönetim gereken yazılımlar arası mesajlaşma işlemlerini basit ve etkili hale getirir.
Saniyede Sınırsıza yakın işlem kapasitesi
Saniyede 300 mesaj işleme kapasitesi, batch request ile bu 3000 mesaja kadar çıkabilir
Mesajın Tek bir defa iletilmesi ve giriş çıkış sırası garanti değil
Mesajın tek sefer işleneceği garanti edilir.
İlk giren mesaj ilk işlenir.
Seçimlerdeki bazı önemli Notlar:
Default Visibility Timeout: Bir mesaj kuyruktan bir consumer tarafından alındığında, bu süre boyunca diğer consumer'lara görünmez olur. – Örneğin 30 saniye ise, mesaj 30 saniye boyunca görünmez ama consumer silmezse süresi dolunca kuyrukta tekrar görünür ve başka bir consumer alabilir. – Mesaj günün sonunda consumer silmeden kendiliğinden silinmez, kalmaya devam eder.
Message Retention Period: Mesajın maksimum kaç gün kuyrukta tutulacağını belirler. – Örneğin 4 gün ise, 4 gün boyunca mesaj kuyrukta kalır, o sürede alınmazsa AWS otomatik olarak siler.
Max Message Size: Kuyruğa atılacak bir mesajın maksimum boyutunu belirler (örneğin 256 KB gibi). Daha büyük mesaj göndermeye çalışırsan hata alırsın.
Delivery Delay: Bir mesaj kuyruğa atıldığında, belirli bir süre erişilemez (gizli) kalmasını sağlar. – Örneğin 10 saniye delay ayarlanırsa, mesaj 10 saniye boyunca görünmez, sonrasında tüketilmeye hazır hale gelir.
Receive Message Wait Time: Consumer, long polling süresidir. – Consumer kuyruktan mesaj isterken belirli bir süre (örneğin 10 saniye) mesaj gelmesini bekleyebilir. Mesaj yoksa bekleyip gelirse hemen alır, yoksa süre bitince boş döner.
Dead-Letter Queue (DLQ): Bazı mesajlar işlenemez veya sürekli hata alırsa, incelemek veya yeniden işlemek üzere başka bir kuyruğa (DLQ) gönderilir. – Böylece bozuk mesajlar normal kuyruğu tıkamaz, debugging ve manual müdahale için izole edilir.
SQS’e Müdahale
AWS SQS’te kuyruk ve mesajlara müdahale etmek için genellikle AWS SDK (boto3, aws-sdk-go, aws-sdk-js, vb.) kullanılır. – Kuyruğa mesaj göndermek, mesaj almak veya silmek için SDK üzerinden API çağrıları yapılır. – AWS Console’dan Queue Actions > Send and receive messages sekmesinden:
Message Body kısmına mesaj içeriğini yazabilirsin.
Message Attributes kısmından mesajın metadata bilgilerini (ör: content-type, user id) ekleyebilirsin.
Kuyruğa doğrudan elle mesaj eklemek, test amaçlı kullanışlıdır ama gerçek dünyada producer uygulaman SQS’e mesaj atar, consumer uygulaman mesajı alır ve işler.
FIFO işlemi için bazı ayarlamalar:
FIFO queue'ları her zaman .fifo uzantılı olmalıdır.
Eğer mevcut uygulaman standart kuyruklar kullanıyorsa ve FIFO kuyrukların sıralama veya tam olarak bir kez işleme özelliklerinden yararlanmak istiyorsan, kuyruğu ve uygulamanı doğru şekilde yapılandırman gerekir.
Mevcut bir standart kuyruğu FIFO kuyruğa dönüştüremezsin Geçiş yapmak için ya uygulaman için yeni bir FIFO kuyruk oluşturman ya da mevcut standart kuyruğu silip aynı isimle FIFO kuyruk olarak yeniden oluşturman gerekir.
Ekler:
SQS in fiyatları, ne kadar veri uzun tutulursa o kadar iner (Long pooling açılırsa fiyat en ucuz hale gelir)
Last updated