Mikro Hizmetler Hakkında Güzel 4 Şey

İşte takdir etmeye başladığım mikro hizmetlere özgü dört özellik.
Gerçek ayrılık. Tipik bir mikro hizmetin kendi veritabanı vardır ve mikro hizmete yalnızca bir API aracılığıyla erişilebilir. Bu, mikro hizmet iç bileşenlerine onun dışında erişilemediği anlamına gelir. API aynı kaldığı sürece mikro hizmetteki kod, bu hizmetin dışında sisteme herhangi bir etki olmaksızın değiştirilebilir. Mükemmel bir kapsülleme elde edersiniz.

Bir monolitte,

aynı zamanda kapsülleme için de çabalarsınız. Ancak, onu orada uygulamak daha çok iştir. Modüller arasındaki arayüzlerin bulanıklaşmaya başladığı bir sisteme kolayca son verebilirsiniz. Bir modül, başka bir modülden sözde dahili bir işlevi çağırabilir ve yakında modüller arasında amaçlanandan çok daha fazla çapraz bağımlılık oluşur. Kapsüllemeyi kırmanın başka bir yolu da veri tabanıdır. Tüm modüllerin veritabanındaki tüm tablolara erişimi varsa, modüller arasındaki ayrımın bozulma riski vardır çünkü bir modüle yönelik tablolar diğer modüller tarafından da okunur ve yazılır.

Bağımsız ölçeklendirme.

Sistem farklı mikro hizmetlerde ayrıldıktan sonra, daha fazla kapasite gerektiren daha fazla hizmet örneği çalıştırabilirsiniz. Bu, işte kullandığımız bir şey ve oldukça kullanışlıdır. Ters yönde de çalışır - bir hizmeti geçici olarak hiçbir örneğe küçültebilirsiniz. Örneğin bir veritabanı geçişi yaparken sistemin bir bölümünde trafik olmadığından emin olmak istiyorsanız bu iyi olabilir.

Birden çok dil.

Ayrı mikro hizmetler ile, farklı hizmetleri farklı dillerde uygulamakta özgürsünüz. Örneğin, hizmetlerinizi Python'da yazmaya başladıysanız, ancak performans konusunda endişeleriniz varsa, bunları Go'da yeniden yazabilirsiniz. Veya mevcut hizmetleri olduğu gibi bırakabilir, ancak başka bir dil kullanarak yenilerini geliştirebilirsiniz. Aynısı diğer yönler için de geçerlidir - örneğin yeni hizmetler başka tür bir veritabanı kullanabilir. Bu oldukça özgürleştiricidir, çünkü bazı hizmetlerde tüm sistemi etkilemeden değişiklikleri (farklı bir dil gibi) deneyebilirsiniz.

API:

tüm parçalara. Beklemediğim bir avantaj, mikro hizmetlerde tüm farklı parçalar için API'lerinizin olması. Bu, her hizmetle etkileşim kurmanın kolay bir yolu olduğu anlamına gelir. Bu, hizmetleri test ederken kullanışlıdır. Ayrıca sorun giderme için de kullanışlıdır. Çoğu zaman, kodun yaptığı aynı API çağrılarını yaparak sorunları yeniden yarattım. Ayrıca, her hizmetin sakladığı verilere erişimi kolaylaştırır.

Sonuç

Elbette mikro hizmetlerin sevmediğim özellikleri var. Kesinlikle tek bir monolitten daha karmaşıklar. Servisler arasındaki ağ aramaları da onları daha yavaş hale getirir ve ağ hatalarına maruz bırakır, bu da tek parça ile kaçınırsınız. Ancak, mikro hizmetler tamamen kötü değildir. Yukarıdaki dört özellik, mikro hizmetlerin gerçekten sevdiğim yönleridir.

Yorumlar

Bu gönderi için yorum yapılmadı.