Örnek sorular
Aws Messaging EventingZorluk 1
Amazon SQS öncelikle ne için kullanılır?
- aStatik web sitelerini doğrudan son kullanıcılara sunmak için
- bMesajları kuyruklayarak producer ve consumer'ları birbirinden ayırmak için✓
- cSunucu yönetmeden container iş yüklerini çalıştırmak için
- dGörsel/video gibi büyük binary objeleri saklamak için
Açıklama:SQS (Simple Queue Service) yönetilen bir mesaj kuyruğudur: producer'lar kuyruğa mesaj gönderir, consumer'lar bunları bağımsız olarak poll edip işler, böylece iki taraf birbirinden bağımsız ölçeklenip hata verebilir. a, c ve d başka AWS servislerini (S3 statik hosting, Fargate/serverless compute, S3 obje depolama) anlatıyor, kuyruklama değil.
Aws Messaging EventingZorluk 1
Bir consumer SQS kuyruğundan bir mesaj aldıktan ama henüz silmediğinde, başka consumer'ların aynı mesajı hemen almasını ne engeller?
- aSQS, mesaj silinene kadar tüm kuyruğu kilitler
- bSQS, mesaj alınır alınmaz onu otomatik olarak siler
- cVisibility timeout mesajı geçici olarak diğer consumer'lardan gizler✓
- dSQS her mesajı kalıcı olarak tam bir consumer'a atar
Açıklama:Bir mesaj alındığında SQS bir visibility timeout başlatır; bu süre boyunca mesaj diğer consumer'lara görünmez olur, mevcut consumer'a işleyip silmesi için zaman tanır. Timeout dolmadan silinmezse mesaj tekrar görünür hale gelir ve yeniden teslim edilebilir. SQS tüm kuyruğu kilitlemez (a), alındığında otomatik silmez (b) ve bir mesajı kalıcı olarak tek bir consumer'a sabitlemez (d).
Aws Messaging EventingZorluk 1
Standart bir SQS kuyruğunun (FIFO kuyruğunun aksine) temel sıralama/tekrar garantisi nedir?
- aEn-iyi-çaba sıralama ve en-az-bir-kez teslim✓
- bVarsayılan olarak kesin FIFO sıralaması ve tam-olarak-bir-kez teslim garantisi
- cMesajlar her zaman gönderildiği sırayla teslim edilir, ama tekrar mümkündür
- dHiçbir sıralama garantisi yoktur ve mesajlar sessizce kaybolabilir
Açıklama:Standart bir SQS kuyruğu en-az-bir-kez teslim ve en-iyi-çaba sıralaması sunar — mesajlar genellikle sırayla teslim edilir ama bu garanti değildir, bir mesaj ara sıra birden fazla kez teslim edilebilir. FIFO kuyrukları (ayrı bir kuyruk tipi) bir mesaj grubu içinde kesin sıralama ve tam-olarak-bir-kez işleme ekler. Standart kuyruklar mesajları asla sessizce kaybetmez (d) — mesajlar silinene ya da retention süresi dolana kadar kalıcıdır.
Aws Messaging EventingZorluk 1
Bir mesaj işlenirken sürekli başarısız oluyor ve hiç silinmeden defalarca yeniden teslim ediliyor. Bunu yakalayıp mesajı sonradan incelenmek üzere ayırmak için tasarlanmış SQS özelliği hangisidir?
- aMessage retention period
- bLong polling
- cMessage deduplication ID
- dRedrive policy ile yapılandırılmış bir DLQ✓
Açıklama:Bir redrive policy, bir mesaj maxReceiveCount kadar alınıp (ve silinmeden kaldıktan) sonra onu bir dead-letter queue'ya gönderir; böylece 'zehirli' mesajlar izole edilip consumer döngülerini tüketmeyi durdurur ve ayrıca incelenebilir. Retention period (a) yalnızca tüketilmemiş mesajların kuyrukta ne kadar kalacağını kontrol eder; long polling (b) boş receive'leri azaltır; deduplication ID (c) tekrarlanan gönderimleri önlemek için bir FIFO-kuyruğu kavramıdır, tekrarlanan işleme hatalarıyla ilgisizdir.
Aws Messaging EventingZorluk 2
Amazon SNS ile Amazon SQS arasındaki temel mimari fark nedir?
- aSNS depolama için, SQS ise compute içindir
- bSNS yayınları subscriber'lara iter; consumer'lar SQS kuyruklarını poll eder✓
- cSNS ve SQS, aynı alttaki servisin iki farklı adıdır
- dSNS yalnızca tek bir AWS bölgesinde çalışırken SQS globaldir
Açıklama:SNS (Simple Notification Service) publish/subscribe modelidir: tek bir yayınlanan mesaj aynı anda birçok subscriber'a (SQS kuyrukları, Lambda, HTTP endpoint'leri, e-posta vb.) itilebilir. SQS ise pull-tabanlı bir kuyruktur: bir consumer mesajları aktif olarak poll etmelidir. İkisi birbirinin yerine geçmez, tamamlayıcıdır (c yanlış), ve ikisi de a ve d'de anlatılan şekilde bir depolama ya da bölge-kısıtlaması ayrımı değildir.
Aws Messaging EventingZorluk 2
Bir takımın, üç bağımsız downstream sürecini (billing, shipping, analytics) tetikleyecek bir order event'ine ihtiyacı var; her biri event'in kendi kopyasını almalı ve kendi hızında işlemeli. Bu ihtiyaca en uygun kombinasyon hangisidir?
- aHer mesaj için yarışan üç consumer'lı tek bir SQS kuyruğu
- bÜç downstream sistemi senkron olarak çağıran tek bir Lambda fonksiyonu
- cÜzerine üç ayrı SQS kuyruğunun abone olduğu bir SNS topic'i (fan-out pattern)✓
- dAynı DynamoDB tablosunu poll eden üç ayrı EC2 instance'ı
Açıklama:Bu klasik SNS fan-out pattern'idir: bir SNS topic'ine yayınlamak, her abone kuyruğa mesajın bir kopyasını iletir, böylece billing, shipping ve analytics kendi kuyruğuna sahip olur ve kendi mesajlarını bağımsız, kendi hızlarında tüketir. Tek bir SQS kuyruğunda (a) yarışan consumer'lar AYNI mesaj için yarışır (her mesajı yalnızca biri alır, üçü değil) — istenenin tam tersi.