SQS Standard ve FIFO Kuyrukları
En yüksek aktarım hızı için Standard kuyrukları ile sıralı ve tam bir kez işleme için FIFO kuyruklarını karşılaştıracak ve doğru türü seçeceksiniz.
SQS Standard ve FIFO Kuyrukları, CoddyKit'te ücretsiz bir AWS Solutions Architect dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, AWS Solutions Architect öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. AWS Solutions Architect kursu toplamda 4 dersten oluşur.
Mesaj Kuyrukları Neden Önemlidir
Mesaj kuyrukları üreticileri tüketicilerden ayrıştırır: Üretici, tüketicinin mesajı işlemesini beklemeden kuyruğa bir mesaj gönderir. Tüketici, mesajları kendi hızında işler. Bu yaklaşım, hızlı üreticilerin yavaş tüketicileri aşırı yüklemesini önler, her katmanın bağımsız olarak ölçeklendirilmesini sağlar ve tüketici geçici olarak kullanılamadığında dayanıklı bir arabellek sunar. Amazon SQS, AWS'nin tamamen yönetilen ve yüksek erişilebilirlik sunan mesaj kuyruğu hizmetidir.
SQS Standard Kuyruklarının Özellikleri
Standard kuyruklar sınırsız aktarım hızı (saniyede neredeyse sınırsız işlem) sunar. En az bir kez teslimatı garanti eder; nadir durumlarda (dağıtık altyapı nedeniyle) bir mesaj birden fazla kez teslim edilebilir. Mesaj sırası en iyi çaba yaklaşımına dayanır: Mesajlar genellikle gönderildikleri sırayla teslim edilir, ancak bu garanti edilmez. Standard kuyruklar, aktarım hızının kritik olduğu ve tüketicinizin zaman zaman yinelenen mesajları ve sıra dışı teslimatı işleyebildiği durumlar için idealdir.
# Create a Standard queue
aws sqs create-queue \
--queue-name 'OrderProcessingQueue'
# Send a message
aws sqs send-message \
--queue-url 'https://sqs.us-east-1.amazonaws.com/123456789012/OrderProcessingQueue' \
--message-body 'OrderId-12345'SQS FIFO Kuyruklarının Özellikleri
FIFO kuyrukları (İlk Giren, İlk Çıkar) tam olarak bir kez işlemeyi ve katı mesaj sıralamasını garanti eder. Mesajlar gönderildikleri kesin sırayla teslim edilir. FIFO kuyrukları saniyede en fazla 300 işlem (toplu işlemle 3.000) destekler. FIFO kuyruklarının adları .fifo ile bitmelidir. Sıralamanın ve tam olarak bir kez işleme semantiğinin kritik olduğu durumlarda (finansal işlemler, e-ticaret siparişlerinin işlenmesi, envanter güncellemeleri) FIFO kuyruklarını kullanın.
# Create a FIFO queue
aws sqs create-queue \
--queue-name 'OrderProcessingQueue.fifo' \
--attributes '{
"FifoQueue": "true",
"ContentBasedDeduplication": "true"
}'FIFO Kuyruklarında Mesaj Grupları
FIFO kuyrukları, kuyruk içindeki sıralamayı bölümlere ayırmak için Mesaj Grubu Kimliklerini kullanır. Aynı Grup Kimliğine sahip mesajlar sırayla teslim edilir; farklı Grup Kimliklerine sahip mesajlar paralel olarak işlenebilir. Örneğin, Grup Kimliği olarak customerId kullanabilirsiniz: Her müşterinin siparişleri sırayla işlenirken farklı müşterilerin siparişleri eşzamanlı olarak işlenir. Bu, tüketiciler arasında yatay ölçeklenebilirlik sağlayarak FIFO semantiğini mümkün kılar.
aws sqs send-message \
--queue-url 'https://sqs.us-east-1.amazonaws.com/123456789012/Orders.fifo' \
--message-body 'Order details here' \
--message-group-id 'customer-789' \
--message-deduplication-id 'order-uuid-abc123'FIFO Kuyruklarında Yinelenenleri Önleme
FIFO kuyrukları, bir yinelenenleri önleme kimliği kullanarak mesajların yinelenen şekilde işlenmesini engeller. İki mesaj 5 dakikalık yinelenenleri önleme aralığı içinde aynı kimlikle gönderilirse ikincisi sessizce atılır. Bir yinelenenleri önleme kimliğini açıkça sağlayabilir (MessageDeduplicationId) veya SQS'nin mesaj gövdesinin SHA-256 özetini otomatik olarak yinelenenleri önleme kimliği olarak hesapladığı içeriğe dayalı yinelenenleri önlemeyi etkinleştirebilirsiniz. İçeriğe dayalı yinelenenleri önleme daha basittir, ancak mesaj gövdelerinin benzersiz olmasını gerektirir.
Mesaj Saklama ve Boyut Sınırları
SQS, mesajları yapılandırılabilir bir süre boyunca saklar: en az 1 dakika, en fazla 14 gün (varsayılan 4 gün). Saklama süresi içinde tüketilmeyen mesajlar otomatik olarak silinir. Maksimum mesaj boyutu 256 KB'dır. Daha büyük yükler için SQS Genişletilmiş İstemci Kitaplığı'nı kullanın veya yükü S3'te depolayıp SQS mesajında yalnızca S3 nesnesine ilişkin referansı gönderin. Standard ve FIFO kuyrukları bu sınırları paylaşır.
Mesajları Alma ve Silme
Tüketiciler kuyruğu receive-message kullanarak yoklar. Mesaj alındıktan sonra görünmez hâle gelir (diğer tüketicilerden gizlenir) ve bu durum görünürlük zaman aşımı süresi boyunca devam eder. Tüketici, mesajı işlemeli ve zaman aşımı dolmadan önce makbuz tutamacını kullanarak mesajı açıkça silmelidir. Tüketici çöker veya mesajı zamanında silmezse mesaj yeniden görünür hâle gelir ve başka bir tüketici mesajı işleyebilir. Bu, Standard kuyruklarda en az bir kez teslimatı mümkün kılar.
RECEIPT=$(aws sqs receive-message \
--queue-url 'https://...' \
--query 'Messages[0].ReceiptHandle' --output text)
# Process message, then delete it
aws sqs delete-message \
--queue-url 'https://...' \
--receipt-handle "$RECEIPT"Uygulamada Aktarım Hızı Karşılaştırması
Standard kuyruklar şu amaçlar için uygundur: görsel küçük resimleri oluşturma, bildirim e-postaları gönderme ve günlük işleme. Bunlar, yinelenen mesajların etkisiz şekilde işlenebildiği ve sıranın önemli olmadığı iş yükleridir. FIFO kuyrukları şu durumlarda gereklidir: banka havalesi işleme (alacaklandırmadan önce borçlandırma), e-ticaret sepeti güncellemeleri (ödeme işleminden önce ürün ekleme) ve 2. adımın 1. adımdan sonra gelmesi gereken iş akışı adımları. Yüksek aktarım hızlı mimarilerin çoğunda varsayılan tercih Standard kuyruklardır; sıralama veya tam olarak bir kez teslimat kesin bir gereksinim olduğunda FIFO'ya geçin.
Aktarım Hızı ve Maliyet İçin Toplu İşlem
SQS, API istekleri başına ücret alır. Maliyetleri 10 kata kadar azaltmak için tek bir API çağrısında en fazla 10 mesaj göndermek, almak ve silmek üzere toplu işlemleri kullanın. FIFO kuyrukları, toplu işlemi etkinleştiren yüksek aktarım hızlı modu destekler; 10'lu toplu işlemlerle sınırı saniyede 3.000 mesaja yükseltir. API çağrısı maliyetlerini en aza indirmek için üretim ortamında her zaman send-message-batch ve delete-message-batch kullanın.
aws sqs send-message-batch \
--queue-url 'https://...' \
--entries '[
{"Id": "msg1", "MessageBody": "Order-001"},
{"Id": "msg2", "MessageBody": "Order-002"},
{"Id": "msg3", "MessageBody": "Order-003"}
]'Kuyruk Erişim İlkeleri
SQS kuyrukları, kuyruğa kimlerin mesaj gönderebileceğini veya kuyruktan kimlerin mesaj alabileceğini denetleyen kaynak tabanlı ilkeler (kuyruk ilkeleri) ile güvence altına alınır. Bu, hesaplar arası erişime izin verilirken veya SNS bir SQS kuyruğuna yayın yaparken kritik öneme sahiptir. Lambda'nın SQS'ye erişimi, Lambda yürütme rolünün IAM ilkesiyle (sqs:ReceiveMessage, sqs:DeleteMessage, sqs:GetQueueAttributes) denetlenir. Her zaman en az ayrıcalık ilkesini uygulayın: Bir tüketiciye alma ve silme izinlerinden fazlasını vermeyin.
Standard ve FIFO Arasında Seçim: Karar Rehberi
Seçim yapmak için şu soruları yanıtlayın: (1) Sıra önemli mi? Evetse → FIFO. (2) Tam olarak bir kez işleme gerekli mi? Evetse → FIFO. (3) Saniyede 3.000 işlemden fazla aktarım hızı gerekiyor mu? Evetse → Standard (FIFO, toplu işlemle saniyede 3.000 işlemle sınırlıdır). (4) Tüketiciler yinelenen mesajları işleyebilir mi? Evetse → Standard daha basit ve daha ucuzdur. SAA-C03 sınavı için FIFO anahtar sözcükleri şunlardır: 'sıralama', 'tam olarak bir kez', 'ardışık', 'yinelenenleri önleme'. Standard anahtar sözcükleri şunlardır: 'yüksek aktarım hızı', 'en iyi çaba', 'en az bir kez'.
Hızlı Kontrol
Bu dersteki AWS Solutions Architect (SAA-C03) kavramlarını anlayıp anlamadığınızı test edin.
Ders Özeti
Bu derste şunları öğrendiniz: Standard kuyruklar, en az bir kez teslimat ve en iyi çaba sıralamasıyla sınırsız aktarım hızı sunar ve yinelenen mesajları tolere edebilen yüksek hacimli iş yükleri için uygundur; FIFO kuyrukları, Mesaj Grubu Kimliklerini ve yinelenenleri önleme kimliklerini kullanarak tam olarak bir kez işlemeyi ve katı mesaj sıralamasını garanti eder, toplu işlemle saniyede 3.000 işlemle sınırlıdır; bu ikisi arasındaki seçim, sıralamanın ve yinelenenleri önlemenin kesin gereksinimler olup olmadığına bağlıdır. Sırada görünürlük zaman aşımı, ölü harf kuyrukları ve uzun yoklama konularını inceleyeceğiz.
Sıkça Sorulan Sorular
“SQS Standard ve FIFO Kuyrukları” dersi ücretsiz mi?
Evet — “SQS Standard ve FIFO Kuyrukları” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve AWS Solutions Architect kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. AWS Solutions Architect kursu toplamda 4 dersten oluşur.
“SQS Standard ve FIFO Kuyrukları” dersinde ne öğreneceğim?
En yüksek aktarım hızı için Standard kuyrukları ile sıralı ve tam bir kez işleme için FIFO kuyruklarını karşılaştıracak ve doğru türü seçeceksiniz. AWS Solutions Architect ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
AWS Solutions Architect öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te AWS Solutions Architect, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.
“SQS Standard ve FIFO Kuyrukları” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu AWS Solutions Architect dersinde kod yazıp çalıştırabilir miyim?
Evet. Her AWS Solutions Architect dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- SQS Standard ve FIFO Kuyrukları
- Görünürlük Zaman Aşımı, DLQ ve Uzun Yoklama
- SNS Konuları ve Fan-Out Mimarisi
- SQS Mesaj Filtreleme ve SNS + SQS Entegrasyonu