Mikro hizmetler için tasarım desenleri

Mikro hizmetler mimarisi, sorumluluğu bağımsız hizmetler arasında dağıtır. Bu bağımsızlık, aşağıdaki yaygın mimari güçlüklerle nasıl başa çıkabileceğinizi değiştirir:

  • Dağıtılmış işlemler olmadan veri tutarlılığı bakımı
  • Hizmetler arası iletişim yönetimi
  • Hataların zincirleme şekilde gerçekleşmemesi için hata yalıtımı
  • Geçiş sırasında eski sistem tümleştirmesi

Bu makaledeki tasarım desenleri bu zorlukları doğrudan ele alır. Her desen, mikro hizmetleri tasarlarken, oluştururken ve çalıştırırken karşılaşabileceğiniz belirli bir sorunu hedefler.

Mikro hizmetlerin tasarım desenlerini ve ilişkilerini gösteren diyagram.

Ortak tasarım desenleri

  • Bozulma Önleme Katmanı , aynı semantiği paylaşmayen alt sistemler arasında bir cephe veya bağdaştırıcı katmanı uygular. Bu düzen, alt sistemler arasındaki istekleri çevirir ve uyumsuz etki alanı modellerine sahip eski sistemlere veya diğer hizmetlere bağımlılıkların yeni bir hizmetin tasarımını sınırlamasını önler.

  • Ön uçlar için arka uçlar , masaüstü ve mobil gibi farklı istemci türleri için ayrı arka uç hizmetleri oluşturur. Bu yaklaşımı benimsediğinizde, tek bir arka uç hizmetinin çeşitli istemci türlerinin çakışan gereksinimlerini işlemesi gerekmez. Bu düzen, istemciye özgü endişeleri ayırarak her mikro hizmetin basit kalmasına yardımcı olur.

  • Bulkhead , her iş yükü veya hizmet için bağlantı havuzları, bellek ve CPU gibi kritik kaynakları yalıtıyor. Bu yalıtım, tek bir iş yükünün veya hizmetin tüm kaynakları tüketmesini engeller. Bu düzen, bir hizmetin art arda hatalara neden olmasını engelleyerek iş yükü dayanıklılığını artırır.

  • Koreografi , merkezi bir düzenleyiciye bağlı olarak değil, her hizmetin bir iş işleminin ne zaman ve nasıl işlendiğine karar vermesine olanak tanır. Bu düzen, hizmetler arasındaki bağlantıyı azaltır ve sık sık hizmet güncelleştirmelerini veya değişikliklerini destekler.

  • Command Query Responsibility Segregation (CQRS), okuma işlemlerini yazma işlemlerinden ayrı veri modellerine ayırır. Bu düzen, okuma ve yazmaların farklı performans veya ölçeklendirme gereksinimlerine sahip olduğu mikro hizmetlerde performansı, ölçeklenebilirliği ve güvenliği artırır.

  • Ağ Geçidi Yönlendirme , istemci isteklerini isteğe göre farklı hizmetlere yönlendirmek için ters ara sunucu olarak bir API ağ geçidi kullanır. Bu yaklaşım, istemcilere çok sayıda uç nokta yerine tek bir uç nokta sağlar.

    Ağ Geçidi Toplama , birden çok istemci isteğini tek bir istekte birleştirmek için ağ geçidini kullanır. Bu yaklaşım, istemciler ve hizmetler arasındaki sohbeti azaltır.

    Ağ Geçidi Boşaltma , güvenli yuva katmanı (SSL) sonlandırma, kimlik doğrulaması ve hız sınırlama gibi çapraz kesme işlevlerini ağ geçidine merkezileştirir, böylece tek tek hizmetlerin bu endişeleri ayrı ayrı uygulaması gerekmez.

    Daha fazla bilgi için bkz. Mikro hizmetler için API ağ geçitleri.

  • Saga , bağımsız veri depoları olan mikro hizmetler genelinde veri tutarlılığını yönetir. Saga, her hizmetin kendi işlemini gerçekleştirdiği ve bir sonraki adımı tetiklediği yerel işlemler dizisidir. Bir adım başarısız olursa, destan önceki değişiklikleri geri almak için telafi işlemleri çalıştırır. Bu düzen, genellikle mikro hizmet mimarisinde pratik olmayan dağıtılmış işlemlerin yerini alır.

  • Sidecar, yalıtım ve kapsülleme sağlamak amacıyla bir uygulamanın yardımcı bileşenlerini ayrı bir kapsayıcı veya işlem olarak dağıtır. Hizmetin koduna eklemeden günlüğe kaydetme, izleme ve ağ yapılandırması gibi ortak işlevleri eklemek için bu düzeni kullanın.

  • Strangler Fig , belirli işlev parçalarını aşamalı olarak yeni hizmetlerle değiştirerek eski bir sistemden artımlı geçişi destekler. Tüketiciler, siz eski sistemi tamamen değiştirene kadar geçişin gerçekleştiğinden habersiz olarak aynı arabirimi kullanmaya devam eder.

Destekleyici desenler

Hizmetler arası iletişim , dayanıklı hizmet-hizmet çağrıları için Yeniden Deneme ve Devre Kesici desenlerini açıklar.

Azure Mimari Merkezi'ndeki bulut tasarım desenlerinin tam kataloğu için bkz. Bulut tasarım desenleri.

Sonraki Adımlar