Kompozisyon Kalıpları
Yazılım bileşimi, yazılım ürününüzü oluşturmanın yolu anlamına gelir. Temel olarak, yazılımınızın farklı modüllerinin belirli iş hedefleri için iletişim kuracağı üst düzey yazılım mimarisi diyagramıyla ilgilenir. Bu bölümde, organizasyonlarda yaygın olarak kullanılan farklı yazılım kompozisyon modellerini öğreneceğiz. Mikro hizmette, her işlevi tek bir sürece ayırıyoruz. Bu hizmetlerin her biri bağımsız ve doğası gereği dolu olacaktır.
İşlevsel ayrıştırma, mikro hizmetlerinizi oluşturmada önemli bir rol oynar. Uygulamanıza çeviklik, esneklik ve ölçeklenebilirlik sağlar.
Toplayıcı Modeli
Toplayıcı modeli, bir mikro hizmet geliştirilirken uygulanabilecek en basit web modelidir. Bu kompozisyon modelinde, basit bir web modülü bir yük dengeleyici görevi görecek, bu da gereksinimlere göre farklı hizmetleri arayacağı anlamına geliyor. Aşağıda, toplayıcı tasarıma sahip basit bir mikro hizmet web uygulamasını gösteren bir diyagram bulunmaktadır. Aşağıdaki görüntüde görüldüğü gibi, "Toplayıcı" farklı hizmetleri tek tek çağırmaktan sorumludur. A, B ve C hizmetlerinin sonuçlarına herhangi bir iş mantığı uygulamamız gerekirse, iş mantığını toplayıcının kendisinde uygulayabiliriz.
Bir toplayıcı, gerektiğinde başkaları tarafından tüketilebilen dış dünyaya başka bir hizmet olarak tekrar maruz kalabilir. Toplayıcı modeli web hizmeti geliştirirken, A, B ve C hizmetlerimizin her birinin kendi önbelleğe alma katmanlarına sahip olması ve doğası gereği tam yığın olması gerektiğini unutmamalıyız.
Proxy Kalıbı
Proxy mikro hizmet modeli, toplayıcı modelinin bir varyasyonudur. Bu modelde toplama modülü yerine vekil modül kullanacağız. Proxy servisi farklı servisleri ayrı ayrı arayabilir.
Proxy modelinde, bir döküm proxy katmanı sağlayarak bir seviye ekstra güvenlik oluşturabiliriz. Bu katman arayüze benzer şekilde davranır.
Zincirli Desen
Adından da anlaşılacağı gibi, bu tür bir kompozisyon modeli zincir yapısını takip edecektir. Burada, müşteri ve hizmet katmanı arasında hiçbir şey kullanmayacağız. Bunun yerine, müşterinin hizmetlerle doğrudan iletişim kurmasına izin vereceğiz ve tüm hizmetler, bir hizmetin çıktısının bir sonraki hizmetin girdisi olacağı şekilde zincirlenecektir. Aşağıdaki görüntü, tipik bir zincirleme model mikro hizmetini göstermektedir.
Bu mimarinin önemli bir dezavantajı, tüm süreç tamamlanana kadar istemcinin engellenmesidir. Bu nedenle, zincirin uzunluğunun olabildiğince kısa tutulması şiddetle tavsiye edilir.
Dal Mikro Hizmet Kalıbı
Dal mikro hizmeti, toplayıcı modelinin ve zincir modelinin genişletilmiş sürümüdür. Bu tasarım modelinde, müşteri hizmetle doğrudan iletişim kurabilir. Ayrıca, bir hizmet aynı anda birden fazla hizmetle iletişim kurabilir. Branch Microservice'in şematik temsili aşağıdadır.
Dal mikro hizmet modeli, geliştiricinin hizmet çağrılarını dinamik olarak yapılandırmasına olanak tanır. Tüm servis çağrıları eşzamanlı olarak gerçekleşecektir, bu da A servisinin B ve C servislerini aynı anda arayabileceği anlamına gelir.
Paylaşılan Kaynak Kalıbı
Paylaşılan kaynak modeli, aslında daha önce bahsedilen tüm model türlerinin bir kümesidir. Bu modelde, istemci veya yük dengeleyici, gerektiğinde her hizmetle doğrudan iletişim kuracaktır. Bu, çoğu kuruluşta yaygın olarak izlenen en etkili tasarım modelidir. Aşağıda, Paylaşılan Kaynak tasarım modelinin şematik bir temsilidir.