yoklateknik mülakat

Backend Mesajlaşma / Kuyruklar Mülakat Soruları

75 doğrulanmış Backend Mesajlaşma / Kuyruklar mülakat sorusu — cevaplarıyla çöz, açıklamalarıyla öğren, gerçek simülasyonda kendini test et.

Gerçek simülasyonu dene →

Örnek sorular

Mesajlaşma / KuyruklarZorluk 1
İki servis arasına message queue koymanın temel mimari faydası nedir?
  • aHer mesaj, doğrudan HTTP çağrısına göre daha hızlı işlenir
  • bConsumer yavaşken ya da geçici olarak kapalıyken bile producer çalışmaya devam eder
  • cQueue onun yerine retry yaptığı için consumer'da hata yönetimine gerek kalmaz
  • dİki servis aynı veritabanı tablolarını güvenle okuyup yazabilir
Açıklama:Queue, producer'ı consumer'ın erişilebilirliğinden ve hızından ayrıştırır: producer mesajı kuyruğa bırakıp yoluna devam eder, biriken işler consumer yetiştikçe işlenir. Mesaj başına gecikme genelde azalmaz, artar (a); retry geçici hatalara yardım eder ama hata yönetimi ihtiyacını ortadan kaldırmaz (c).
Mesajlaşma / KuyruklarZorluk 2
Bir endpoint video yüklemeye izin veriyor; önizleme üretimi yaklaşık 60 saniye sürüyor. Bu iş senkron yapıldığında istekler timeout'a düşüyor. Standart çözüm nedir?
  • aSunucuda ve load balancer'da HTTP timeout'u birkaç dakikaya çıkarmak
  • bClient'ın aynı yüklemeyi başarana kadar tekrar tekrar denemesini sağlamak
  • cYüklemeyi kabul edip background job'ı kuyruğa atmak ve yanıtı hemen dönmek
  • dÖnizleme üretimini birden çok senkron isteğe bölmek
Açıklama:Uzun süren iş request/response döngüsüne ait değildir: girdiyi kabul et, job'ı kuyruğa at, yanıtı hemen dön (genellikle bir job referansıyla). Timeout'u artırmak (a) bağlantıları ve worker'ları meşgul tutar, sınırı sadece öteler; client retry'ı (b) kök nedeni çözmeden yükü katlar.
Mesajlaşma / KuyruklarZorluk 1
Producer/consumer deseninde producer'ın rolü nedir?
  • aMesajları, işlenmelerini beklemeden queue'ya yayınlar
  • bMesajları queue'dan alır ve tarif ettikleri işi çalıştırır
  • cConsumer process'lerini izler ve çökenleri yeniden başlatır
  • dİşlenen mesajların sonuçlarını saklar ve client'lara sunar
Açıklama:Producer yalnızca yayınlar; işlenmeyi ne bekler ne de bilir — iki tarafı ayrıştıran da tam olarak budur. (b) şıkkı consumer'ı tarif eder.
Mesajlaşma / KuyruklarZorluk 2
Bir consumer şöyle yazılmış:
msg = queue.receive()
queue.ack(msg)
process(msg)

Bu sıralamanın riski nedir?
  • aAck çok erken geldiği için broker mesajı yeniden teslim eder
  • bAlınan her mesaj için process(msg) iki kez çalışır
  • cConsumer, bir sonraki mesajı beklerken deadlock'a girer
  • dprocess(msg) başarısız olursa mesaj çoktan silinmiştir, iş kaybolur
Açıklama:Ack mesajı 'tamamlandı' olarak işaretler ve broker onu siler; sonrasında process(msg) içinde çökülürse yeniden teslim edilecek bir şey kalmaz — fiilen at-most-once davranışıdır. Başarısızlıkta redelivery istiyorsan ack'i işlem başarıyla bitince gönder. (a) tersinden yanlıştır: erken ack redelivery'ye yol açmaz, onu engeller.
Mesajlaşma / KuyruklarZorluk 2
Bir consumer mesajı queue'dan aldı ve ack'lemeden çöktü. Tipik bir message broker ne yapar?
  • aTeslimat denemesi yapıldığı için mesajı siler
  • bMesajı eninde sonunda yeniden teslim edilebilir hale getirir
  • cNe olduğu bir operatör tarafından doğrulanana kadar tüm queue'yu durdurur
  • dMesajı anında dead letter queue'ya taşır
Açıklama:Ack'lenmemiş mesajlar bir timeout sonrası ya da consumer'ın düştüğü anlaşılınca yeniden teslim edilebilir hale gelir; başka bir consumer (ya da yeniden başlayan aynı consumer) ikinci bir şans elde eder — at-least-once semantiğinin temeli bu redelivery'dir. DLQ'ya (d) taşıma genellikle ilk değil, tekrarlanan başarısız denemelerden sonra olur.
Mesajlaşma / KuyruklarZorluk 1
"At-least-once delivery" ne anlama gelir?
  • aHer mesaj bir ya da daha fazla kez teslim edilir; duplicate mümkündür
  • bHer mesaj tam olarak bir kez teslim edilir, duplicate imkânsızdır
  • cBazı mesajlar düşebilir ama hiçbiri iki kez teslim edilmez
  • dHer mesaj, bağlı her consumer'a en az bir kez teslim edilir
Açıklama:At-least-once, hiçbir mesajın sessizce kaybolmayacağını garanti eder; bedeli ise ara sıra duplicate görülmesidir (örneğin işleme ile ack arasında çökülürse). (c) at-most-once'ı, (b) exactly-once'ı tarif eder.

3300 soruluk Backend bankasında kendini sına.

Mülakata başla