AWS Simple Queue Service (SQS)
Mikro hizmetleri, dağıtılmış sistemleri ve sunucusuz uygulamaları ayırmanıza ve ölçeklendirmenize olanak tanıyan, tam olarak yönetilen kuyruk hizmeti.
Messaging System nedir?
Gönderenden ve alıcıdan (üretici ve tüketici) gelen mesajlar / olaylar aracılığıyla eşzamansız iletişim ve ayrıştırma süreçleri sağlamak için kullanılır.
Queueing, Genellikle tüketilen mesajları silecektir. Basit iletişim. Gerçek Zamanlı değil çekmek zorunda. Reaktif değil.
Streaming, Birden fazla tüketici olaylara (mesajlara) tepki verebilir, Olay canlı yayında uzun süre boyunca tepki verebilir, böylece karmaşık işlemler uygulanabilir. Gerçek zaman.
SQS, uygulama entegrasyonu içindir. AWS SQS, uygulamanız tarafından oluşturulan mesajların dağıtılmış kuyruğa alınması için bir çözümdür. İletiyi birbirine ileterek izole uygulamaları birbirine bağlar. Kuyruk, işlenmeyi bekleyen mesajlar için geçici bir havuzdur.
AWS SDK’yı kullanarak mesajları kuyruğa yayınlayan kod yazarsınız veya mesajlar için kuyruğu çekersiniz. SQS, pull tabanlıdır. push tabanlı değil.
Kullanım Örnekleri,

1-Uygulama mesajları sıraya yayınlar.
2-Diğer uygulama kuyruğu çeker ve mesajı bulur ve bir şeyler yapar.
3-Diğer uygulamalar, görevlerini tamamladıklarını bildirir ve tamamlanması için mesajı işaretler.
4-Orijinal uygulama kuyruğu çeker ve mesajın artık kuyrukta olmadığını görür.
Her iki uygulama da mesajları göndermek ve kuyruğu çekmek için AWS SDK’yı kullanıyor.
Limitler ve Mesaj Boyutu,
Mesaj Boyutu, bir mesajın boyutu 1 bayt ile 256 KB arasında olabilir.

Java için SQS Genişletilmiş istemci kitaplığı, 256KB ila 2GB boyutunda mesajlar göndermenizi sağlar. Mesaj S3'te depolanacak ve kitaplık S3 nesnesine başvuracaktır.
Message Retention,
Mesaj Tutma, SQS, kuyruktaki bir mesajı kuyruktan çıkarmadan önce (silerek) ne kadar süreyle tutacaktır. Varsayılan olarak mesaj tutma 4 gündür.
Mesaj saklama süresi minimum 60 saniyeden maksimum 14 Güne kadar ayarlanabilir.

AWS SQS Standard Queues, saniyede neredeyse sınırsız sayıda işlem yapmanızı sağlar. Bir mesajın en az bir kez teslim edileceğini garanti eder. Bir mesajın birden fazla kopyası potansiyel olarak sırasız olarak teslim edilebilir. Bir mesajın genellikle gönderilenle aynı sırayla teslim edilmesini sağlamaya yardımcı olan en iyi şekilde sıralama sağlar.

AWS SQS First-in-First-On (FIFO) Queues, tek bir kuyruk içinde birden çok sıralı mesaj grubunu destekler. Saniyede 300 işlemle sınırlıdır. SQS FIFO kuyrukları, bir Standart kuyruğun tüm özelliklerine sahiptir.
Visibility Timeout,

Başka bir uygulamanın o mesajla meşgulken başka bir uygulamanın bir mesajı okumasını nasıl engelleyebiliriz? (Birinin aynı görevi yapmasından kaçının)
Visibility time-out, bir okuyucu bu mesajı aldıktan sonra mesajların SQS kuyruğunda görünmez olduğu süredir.
Bir iş işlendikten sonra mesaj kuyruktan silinecektir. (görünürlük zaman aşımı sona ermeden önce)
Görünürlük zaman aşımı süresinden önce bir iş işlenmezse, mesaj tekrar görünür hale gelir ve başka bir okuyucu onu işleyecektir.
Bu, aynı mesajın iki kez teslim edilmesine neden olabilir.
Short vs Long Polling,
Polling, mesajları kuyruklardan aldığımız yöntemdir. Short Polling(varsayılan), sorgulanan ileti kuyruğu boş olsa bile iletileri hemen döndürür. Hemen bir mesaja ihtiyacınız olduğunda. Short Polling kullanmak istediğiniz şeydir.

ReceiveMessageRequest’te bekleme süresini saniye cinsinden ayarlayarak bir mesaj alırken uzun yoklamayı etkinleştirebilirsiniz.
Long Polling, mesaj kuyruğa gelene kadar veya uzun yoklama süresi sona erene kadar bekler. Long Polling, Mesajlar kullanılabilir olur olmaz mesajları kuyruğunuzdan geri almayı ucuz hale getirir. Long Polling kullanmak, boş alımların sayısını azaltabileceğiniz için maliyeti düşürecektir.
Özetle,
- SQS, sıralı mesajları kullanan bir kuyruk hizmetidir. Sidekiq veya RabbitMQ’yu düşünün.
- SQS, uygulama entegrasyonu için kullanılır, ayrılmış hizmetlerin ve uygulamaların birbiriyle konuşmasına izin verir.
- SQS’yi okumak için AWS SDK’yı kullanarak kuyruğu çekmeniz gerekir. SQS itme tabanlı değildir.
- SQS hem Standart hem de FIFO kuyruklarını destekler.
- Standart, saniyede neredeyse sınırsız mesajlara izin verir, teslimat sırasını belirlemez, her zaman en az bir kez teslim eder, işlenen yinelenen iletileri yeniden korumanız gerekir.
- FIFO, mesajların sırasını 300 sınırı ile korur.
- İki tür Short Polling(varsayılan) ve Long Polling vardır.
- Short Polling, sorgulanan ileti kuyruğu boş olsa bile iletileri hemen döndürür.
- Long Polling, mesaj gelene kadar bekler, kısa yoklama yerine geçer. Çoğu durumda, Short Polling yerine uzun yoklama tercih edilir.
- Visibility time-out, mesajların SQS kuyruğunda görünmez olduğu süredir.
- Bir iş işlendikten sonra mesajlar kuyruktan silinecektir. (görünürlük zaman aşımı sona ermeden önce)
- Visibility time-out sona ererse, bir iş kuyrukta görünür hale gelir.
- Varsayılan Visibility time-out 30 saniyedir. Zaman aşımı 0 saniye ile maksimum 12 saat arasında olabilir.
- Varsayılan Visibility time-out 30 saniyedir. Zaman aşımı 0 saniye ile maksimum 12 saat arasında olabilir.
- SQS, mesajları 60 saniyeden 14 güne kadar saklayabilir ve varsayılan olarak 4 gündür.
- 1 bayt ile 256 kb arasında mesaj boyutu, Java için Genişletilmiş İstemci kitaplığı 2 GB’a kadar artırılabilir.