Sayfalar

2 Mart 2025 Pazar

Her mikro servisin kendi veritabanı atomik midir, mükerrer kayıtlar içerebilir mi?

 1. Atomiklik ve Mikroservisler:

  • Eğer her mikro servis kendi veritabanında ACID (Atomicity, Consistency, Isolation, Durability) özelliklerini destekleyen bir veritabanı kullanıyorsa, o mikro servisin içindeki işlemler atomik olabilir.
  • Ancak, mikro servisler arası işlemler atomik değildir çünkü her servis kendi veritabanına sahiptir ve dağıtık bir ortamda çalışır.

2. Mükerrer Kayıtlar Oluşabilir mi?
Evet, mükerrer kayıtlar oluşabilir, özellikle aşağıdaki senaryolarda:

  • Dağıtık sistemlerde network hataları: Örneğin, bir sipariş servisi ödeme bilgisini aldıktan sonra ağ kesintisi nedeniyle işlemi tekrar edebilir ve aynı sipariş iki kez kaydedilebilir.
  • Event-Driven (Olay Tabanlı) Mimarilerde: Mikro servisler arasında event sourcing veya mesaj kuyruğu (Kafka, RabbitMQ) gibi sistemler kullanıldığında, mesajlar bazen birden fazla kez işlenebilir.

3. Çözüm Yolları
Mükerrer kayıtları önlemek için şu yöntemler kullanılır:

  • Idempotent İşlemler: Aynı verinin tekrar işlendiğinde farklı bir sonuç üretmemesi sağlanır (örneğin, aynı sipariş numarasına sahip kayıt tekrar işlenmez).
  • Unique Constraints (Benzersiz Kısıtlar): Veritabanında benzersiz indeksler (unique index) kullanılarak aynı verinin tekrar kaydedilmesi engellenir.
  • Distributed Transactions Yönetimi: Saga Pattern gibi desenlerle dağıtık işlemler kontrol altına alınır.

Sonuç:

  • Tek bir mikro servis içinde atomiklik sağlanabilir ama mikro servisler arası atomiklik garanti edilmez.
  • Mükerrer kayıtlar olabilir, ancak idempotency, unique constraints ve saga pattern gibi yöntemlerle önlenebilir.

Hiç yorum yok:

Yorum Gönder