SİBERSALDİRİ.COM · KONU ODAKLI DERS
Bu derste kazanacaklarınız
- Paylaşılan durum ile Atomik işlem arasındaki ilişkiyi açıklamak.
- “Tek isteği engellemek tüm yarışları çözer mi?” sorusuna gerekçeli yanıt vermek.
- Örneği değiştirip beklenen ve gözlenen davranışı karşılaştırmak.
Çalışma mantığı ve güven sınırı
Stok veya tek kullanımlık kupon gibi alanlarda kontrolü ve değişikliği atomik tasarlayın. Yalnızca uygulama belleğindeki kilit birden fazla sunucuda yeterli olmayabilir. Veritabanı transaction, satır kilidi veya koşullu güncelleme ihtiyaca göre seçilir. Aynı işlemin tekrarını engelleme ile farklı işlemler arasındaki yarışı ayırın.
Açıklamalı örnek
Aşağıdaki parça kavramı görünür kılar. Komut veya kod içeren örnekleri üretim sisteminde değil, size ait ayrı deneme ortamında değerlendirin. Mimari şema ve politika örnekleri çalıştırılabilir program değildir.
UPDATE stock SET quantity = quantity - 1
WHERE product_id = :id AND quantity >= 1;
-- Etkilenen satır sayısı 1 değilse satış kabul edilmez.Beklenen sonuç ve yorumu
Koşul ve değişiklik tek güncellemede değerlendirilir; tam satış akışı transaction tasarımı gerektirir.
Karşılaştırmalı durumlar
| Durum | Beklenen yaklaşım | Neden? |
|---|---|---|
| Son stokta iki istek | Atomik koşullu işlem | Ortak durum korunur |
| Tek sunucuda kilit | Dağıtımı değerlendir | Diğer sunucu kilidi bilmez |
| İşlem tekrarlandı | Idempotency ihtiyacını incele | Aynı işlem ayrı risk yaratır |
Uygulama görevi
Son bir ürüne iki eşzamanlı istek gelmesinin zaman çizelgesini çizin.
- İşlemden önce beklenen sonucu ve kabul koşulunu yazın.
- Tek bir değişkeni değiştirin; gözlemi ve kullandığınız ortamı kaydedin.
- Sonucu yukarıdaki karşılaştırma tablosuyla değerlendirin. Uymayan durumda hangi varsayımın yanlış olabileceğini açıklayın.
Sık yapılan hata ve düzeltme yönü
Önce SELECT sonra korumasız UPDATE yaparak aradaki durumu sabit varsaymayın.
Kendinizi sınayın
Tek isteği engellemek tüm yarışları çözer mi?
Açıklamalı yanıt: Hayır. Farklı istemciler ve sunucular aynı paylaşılan durumu eşzamanlı değiştirebilir.
İlgili derslerle ilerleyin
- Go concurrency: İş paylaşımı, iptal ve yaşam süresi
- SQL temelleri: Seçim, ilişki ve güvenli parametre
- Veritabanı migration: Şema değişimini güvenli taşıma
- Güvenli kodlama: Güven sınırına göre kontrol
Teknik başvuru
Bu dersin anlatımı ve örnekleri akademi için yeniden hazırlanmıştır. Aşağıdaki bağlantı, kullanılan teknoloji veya güvenlik yaklaşımının ayrıntılarını doğrulamak için teknik başvurudur.
