Düzenli mikro hizmetler


201

Düzenli mikro hizmetlerin standart modeli nedir?

Bir mikro hizmet yalnızca kendi etki alanını biliyorsa, ancak birden çok hizmetin bir şekilde etkileşime girmesini gerektiren bir veri akışı varsa, bununla ilgili yol nedir?

Diyelim ki böyle bir şeyimiz var:

  • Faturalama
  • gönderi

Ve argüman uğruna, bir sipariş gönderildikten sonra faturanın yaratılması gerektiğini varsayalım.

Bir yerlerde, birisi GUI"Tamamım, hadi yapalım!" Klasik bir yekpare hizmet mimarisinde, bununla ilgili bir ESBişlem olduğunu veya Sevkıyat hizmetinin fatura hizmeti hakkında bilgi sahibi olduğunu ve bunu çağırdığını söyleyebilirim .

Fakat insanların bu cesur yeni mikro hizmet dünyasında bununla başa çıkma yöntemi nedir?

Bunun son derece fikir temelli olabileceğini düşünüyorum. ancak mikro hizmetlerin yukarıdakileri yapması gerekmediği için somut bir tarafı vardır. Bu yüzden, görüş temelli olmayan bir “tanım gereği ne yapmalı” olmalıdır.

Ateş etmek.

Yanıtlar:


316

Kitap Oluşturma Mikro Servisleri , cevabında @ RogerAlsing tarafından belirtilen stilleri ayrıntılı olarak açıklamaktadır.

Orkestrasyon vs Koreografi altında 43. sayfada kitap şöyle diyor:

Daha karmaşık bir mantık modellemeye başladığımızda, bireysel hizmetlerin sınırlarını aşan iş süreçlerini yönetme sorunuyla uğraşmak zorundayız. Ve mikro hizmetlerle, bu sınıra normalden daha erken vuracağız. [...] Bu akışı gerçekte uygulamak söz konusu olduğunda, takip edebileceğimiz iki mimari tarzı vardır. Orkestrasyon ile, bir orkestrada orkestra şefi gibi, süreci yönlendirmek ve yönlendirmek için merkezi bir beyine güveniyoruz. Koreografi ile, sistemin her bir parçasını işinden haberdar edip, dansçıların hepsi kendi yollarını bulan ve bir bale içinde çevrelerindeki diğer kişilere tepki veren gibi detaylar üzerinde çalışmasına izin veriyoruz.

Kitap daha sonra iki stili açıklamaya devam eder. Orkestrasyon stili, SOA'nın orkestrasyon / görev hizmetleri fikrine daha çok karşılık gelirken, koreografi stili Martin Fowler'in makalesinde belirtilen aptal borulara ve akıllı uç noktalara karşılık gelir .

Düzenleme Stili

Bu tarzda, yukarıdaki kitaptan bahsediyor:

Bu akış için bir düzenleme çözümünün nasıl olacağını düşünelim. Burada, muhtemelen yapılacak en basit şey, müşteri hizmetlerimizin merkezi beyin gibi davranması olacaktır. Yaratılışında, bir dizi talep / yanıt çağrısı aracılığıyla sadakat puan bankası, e-posta hizmeti ve posta servisi [...] ile konuşur. Müşteri hizmeti daha sonra müşterinin bu süreçte nerede olduğunu izleyebilir. Müşterinin hesabının kurulmuş olup olmadığını veya gönderilen e-postayı mı, yoksa postayı mı teslim aldığını kontrol edebilir. Akış şemasını alıp [...] doğrudan kod haline getiriyoruz. Belki de uygun bir kural motoru kullanarak bunu bizim için uygulayan takımları bile kullanabiliriz. Bu amaçla iş araçları modelleme yazılımı şeklinde ticari araçlar mevcuttur. Senkronize istek / yanıt kullandığımızı varsayarsak, her aşamanın işe yarayıp yaramadığını bile anlayabiliriz [...] Bu orkestrasyon yaklaşımının dezavantajı, müşteri hizmetlerinin merkezi bir yönetim otoritesinin çok fazla olabileceğidir. Bir ağın ortasındaki merkez ve mantığın yaşamaya başladığı merkezi bir nokta olabilir. Bu yaklaşımın anemik CRUD tabanlı hizmetlere ne yapılacağını söyleyen az sayıda akıllı “tanrı” hizmetiyle sonuçlandığını gördüm.

Not: Yazarın araçlardan bahsettiği zaman BPM gibi bir şeye atıfta bulunduğunu düşünüyorum (örneğin, Activity , Apache ODE , Camunda ). Aslında, İş Akışı Kalıpları Web Sitesi , bu tür bir düzenlemeyi yapmak için harika bir desen setine sahiptir ve ayrıca bu şekilde uygulamaya yardımcı olan farklı satıcı araçlarının değerlendirme ayrıntılarını sunar. Yazarın, bu entegrasyon stilini uygulamak için bu araçlardan birini kullanması gerektiğini ima ettiğini düşünmüyorum, ancak diğer hafif düzenleme çerçeveleri örneğin Bahar Entegrasyonu , Apache Camel veya Mule ESB kullanılabilir

Ancak, Microservices konusunda okuduğum diğer kitaplar ve genel olarak web'de bulduğum makalelerin çoğu, bu orkestrasyon yaklaşımından hoşlanmıyor ve bunun yerine bir sonrakini kullanmayı öneriyor gibi görünüyor .

Koreografi Stili

Koreografi stilinde yazar diyor ki:

Koreograflı bir yaklaşımla, bunun yerine, müşteri hizmetinin, Müşteri'nin oluşturduğunu söyleyerek, eşzamansız bir şekilde bir etkinlik yayınlamasını sağlayabiliriz. E-posta hizmeti, posta servisi ve bağlılık puanları bankası daha sonra bu olaylara abone olur ve buna göre tepki verir [...] Bu yaklaşım çok daha fazla ayrıştırılır. Bir müşterinin oluşturulmasına ulaşmak için başka bir hizmet gerekiyorsa, yalnızca etkinliklere abone olması ve gerektiğinde işini yapması gerekir. Dezavantajı, [iş akışı] 'nda gördüğümüz iş sürecine ilişkin açık görüşün şimdi sadece sistemimize dolaylı olarak yansıtılmasıdır [...] Bu, doğru şeylerin olmuş. Örneğin, sadakat puan bankasında bir hata olup olmadığını ve bir nedenle doğru hesabı açıp açmadığını biliyor musunuz? Bununla uğraşmaktan hoşlandığım bir yaklaşım, [iş akışı] 'ndaki iş sürecinin görünümüyle açıkça eşleşen bir izleme sistemi oluşturmaktır, ancak daha sonra hizmetlerin her birinin bağımsız varlıklar olarak ne yaptığını izleyerek, daha açık süreç akışı. [Akış şeması] [...] itici güç değil, sistemin nasıl davrandığını görebildiğimiz sadece bir lens. Genel olarak, koreograflanmış yaklaşıma daha fazla eğilimli sistemlerin daha gevşek bir şekilde bağlandığını ve daha esnek ve değişime daha uygun olduğunu keşfettim. Bununla birlikte, sistem sınırları içerisindeki süreçleri izlemek ve izlemek için fazladan iş yapmanız gerekir. En ağır düzenleme uygulamalarının son derece kırılgan ve daha yüksek bir değişim maliyeti olduğunu gördüm. Bunu göz önünde bulundurarak, her hizmetin tüm danstaki rolünü anlayacak kadar akıllı olduğu koreograflı bir sistemi hedeflemeyi şiddetle tercih ediyorum.

Not: Bugüne kadar koreografinin olay güdümlü mimari (EDA) için başka bir isim olup olmadığından hala emin değilim , ancak EDA bunu yapmanın sadece bir yolu ise, diğer yollar nelerdir? (Ayrıca bkz . "Olaya Dayalı" ile ne demek istiyorsun? Ve Olaya Dayalı Mimarinin Anlamları ). Ayrıca, CQRS ve EventSourcing gibi şeylerin bu mimari stille çok fazla yankılandığı görülüyor, değil mi?

Şimdi, bundan sonra eğlence geliyor. Microservices kitabı, mikro hizmetlerin REST ile uygulanacağını varsaymaz. Nitekim kitabın bir sonraki bölümünde, RPC ve SOA tabanlı çözümleri ve son olarak REST'i ele almaya devam ediyorlar. Burada önemli bir nokta Mikro Hizmetlerin REST anlamına gelmediğidir.

Peki, HATEOAS ne olacak? (Uygulama Durumunun Motoru Olarak Hiper Ortam)

Şimdi, RESTful yaklaşımını takip etmek istiyorsak, HATEOAS'ı görmezden gelemeyiz, ya da Roy Fielding, blogumuzda çözümümüzün gerçekten REST olmadığını söylemekten çok memnun olacaktır. REST API'sındaki blog yayınına bakın Hipermetin Tahrikli Olmalıdır :

Herhangi bir HTTP tabanlı arayüzü bir REST API çağıran kişi sayısı ile sinirli alıyorum. Hipermetin bir kısıtlama olduğu fikrinde REST mimari stilini netleştirmek için ne yapılması gerekir? Başka bir deyişle, uygulama durumunun motoru (ve dolayısıyla API) köprü metni tarafından yönlendirilmiyorsa, RESTful olamaz ve REST API olamaz. Dönemi. Bir yerde düzeltilmesi gereken bazı kırık kılavuzlar var mı?

Gördüğünüz gibi, Fielding, HATEOAS olmadan gerçekten RESTful uygulamalar oluşturmadığınızı düşünüyor. Fielding için, HATEOAS, düzenleme hizmetleri söz konusu olduğunda gitmenin yoludur. Sadece tüm bunları öğreniyorum, ama bana göre, HATEOAS aslında bağlantıları takip eden arkasındaki itici gücün kim veya ne olduğunu açıkça tanımlamıyor. Kullanıcı olabilecek bir kullanıcı arayüzünde, ancak bilgisayar-bilgisayar etkileşimlerinde, bunun daha üst düzey bir hizmet tarafından yapılması gerektiğini düşünüyorum.

HATEOAS'a göre, API tüketicisinin gerçekten bilmesi gereken tek bağlantı, sunucu ile iletişimi başlatan bağlantıdır (örneğin POST / sipariş). Bu noktadan itibaren, REST akışı gerçekleştirecektir, çünkü bu son noktanın cevabında, geri dönen kaynak bir sonraki olası durumlara bağlantılar içerecektir. API tüketicisi daha sonra uygulamayı takip etmek ve uygulamayı bir sonraki duruma taşımak için hangi bağlantıya karar verir.

Kulağa ne kadar havalı gelse de, müşterinin hala bağlantının POST, POUT, GET, PATCHed vb. Olup olmadığını bilmesi gerekir. İstemcinin bu başarısız olması durumunda ne yapacağının farkında olması gerekir (yeniden deneyin, telafi edin, iptal edin, vb.).

Tüm bunlar için oldukça yeniyim, ancak benim için, HATEOA'ların bakış açısından, bu müşteri veya API tüketicisi yüksek dereceli bir hizmettir. Bir insanın bakış açısından düşünürsek, bir web sayfasında bir son kullanıcının hangi bağlantıları izleyeceğine karar vererek hayal edebilirsiniz, ancak yine de web sayfasının programcısı, bağlantıları çağırmak için hangi yöntemi kullanacağına karar vermek zorunda kaldı, ve hangi yükü geçecek. Benim açımdan, bilgisayardan bilgisayara etkileşimde bilgisayar son kullanıcının rolünü üstlenir. Bir kez daha buna düzenleme hizmeti diyoruz.

HATEOAS'ı orkestrasyon veya koreografi ile kullanabileceğimizi düşünüyorum.

API Ağ Geçidi Düzeni

Bir başka ilginç model de API Ağ Geçidi Deseni olarak adlandırdığı şeyi öneren Chris Richardson tarafından önerildi .

Monolitik bir mimaride, uygulamanın web tarayıcıları ve yerel uygulamalar gibi istemcileri, uygulamanın N özdeş örneğinden birine yük dengeleyici aracılığıyla HTTP istekleri yapar. Ancak bir mikro hizmet mimarisinde, yekpare bir hizmet koleksiyonu ile değiştirildi. Sonuç olarak, cevaplamamız gereken kilit bir soru, müşterilerle ne etkileşime giriyor?

Yerel bir mobil uygulama gibi bir uygulama istemcisi, bireysel hizmetlere RESTful HTTP istekleri yapabilir [...] Yüzeyde bu çekici görünebilir. Bununla birlikte, bireysel hizmetlerin API'leri ile müşterilerin ihtiyaç duyduğu veriler arasında ayrıntı düzeyinde önemli bir uyumsuzluk olması muhtemeldir. Örneğin, bir web sayfasının görüntülenmesi büyük olasılıkla çok sayıda hizmete çağrı yapılmasını gerektirebilir. Örneğin Amazon.com, bazı sayfaların 100'den fazla hizmete nasıl çağrı gerektirdiğini açıklar . Yüksek hızlı bir internet bağlantısı üzerinden bile olsa, daha düşük bant genişliğine, daha yüksek gecikme süresine sahip bir mobil ağ olsa bile, birçok isteğin çok verimsiz olmasını ve kötü bir kullanıcı deneyimiyle sonuçlanmasını sağlar.

Çok daha iyi bir yaklaşım, istemcilerin İnternet üzerinden bir API ağ geçidi olarak bilinen bir ön uç sunucuya sayfa başına az sayıda, belki de en az sayıda istek yapmasıdır.

API ağ geçidi, uygulamanın istemcileri ve mikro hizmetler arasında bulunur. İstemciye göre uyarlanmış API'lar sağlar. API ağ geçidi, mobil istemcilere kaba taneli bir API ve yüksek performanslı bir ağ kullanan masaüstü istemcilerine daha ince taneli bir API sağlar. Bu örnekte, masaüstü istemciler bir ürün hakkında bilgi almak için birden fazla istekte bulunurken, mobil istemci tek bir istekte bulunur.

API ağ geçidi, yüksek performanslı LAN üzerinden bir dizi mikro hizmete istekte bulunarak gelen istekleri işler. Örneğin Netflix, her bir talebin hayranlarının ortalama altı arka uç hizmetine nasıl ulaştığını açıklar . Bu örnekte, bir masaüstü istemciden gelen ayrıntılı istekler, karşılık gelen hizmete basitçe yakınlaştırılırken, mobil istemciden gelen her kaba taneli istek, birden çok hizmeti çağırmanın sonuçları toplanarak işlenir.

API ağ geçidi yalnızca istemciler ve uygulama arasındaki iletişimi optimize etmekle kalmaz, aynı zamanda mikro hizmetlerin ayrıntılarını da kapsar. Bu, mikro hizmetlerin istemcileri etkilemeden gelişmesini sağlar. Örneğin, iki mikro hizmet birleştirilebilir. Başka bir mikro hizmet iki veya daha fazla hizmete bölünebilir. Bu değişiklikleri yansıtacak şekilde yalnızca API ağ geçidinin güncellenmesi gerekir. Müşteriler etkilenmez.

API ağ geçidinin uygulama ve istemcileri arasında nasıl aracılık ettiğine baktığımıza göre, şimdi mikro hizmetler arasındaki iletişimin nasıl uygulanacağına bakalım.

Bu, yukarıda bahsedilen düzenleme tarzına oldukça benziyor, sadece biraz farklı bir niyetle, bu durumda, etkileşimlerin performansı ve basitleştirilmesi ile ilgili görünüyor.


15
İyi cevap! Bir soru: Koreografi tarzı Microservices ile bir API-Gateway'i birleştirirsem, API-Gateway, Orkestrasyon tarzı Microservices'in dezavantajı olarak tanımladığınız merkezi yönetim otoritesine dönüşmez mi? Veya başka bir deyişle, "Orkestrasyon Stili" ile API-Ağ Geçidi Deseni arasındaki fark tam olarak nerede?
Fritz Duchardt

4
@FritzDuchardt tam olarak değil. Api-geçidi tek bir başarısızlık noktası haline gelmekle birlikte, mutlaka herhangi bir tür yönetim otoritesi değildir. Çok basit bir api-ağ geçidi, isteklerin kimliğini doğrulayabilir ve bunları hedef hizmetlerine proxy yapabilir. Api-ağ geçidi deseni çoğunlukla tek bir hizmet aracılığıyla istemci arka uç etkileşimlerini basitleştirmek içindir, API-ağ geçidi proxy'lerinin (kendisi bir hizmettir) hizmetlerin orkestrasyonu veya koreografisi sorununu doğrudan çözmez.
Porlune

Mükemmel cevap! API ağ geçitleriyle ilgili tek bir soru: GraphQL yeni nesil API ağ geçidi midir ve API ağ geçitlerinin yerini alabilir mi?
kenneho

Bunu pratik bir bakış açısıyla anlamaya çalışıyorum. Koreografi daha gevşek bağlanır -> bu durumda api yöntemine dinamik olarak bir eventListener eklenmelidir? Aksi takdirde, her api yöntemi her zaman alınan bir etkinliğe tepki göstermezse (-> ve bu nedenle gevşek bir şekilde eşleşmez)
Vincent

Koreografinin daha gevşek olduğunu ve bu nedenle mikro hizmetlerle orkestrasyondan kaçınılması gerektiğini kabul etmiyorum. Bunu berndruecker.io/complex-event-flows-in-distributed-systems'de konuştum . Mimarinizde daha dengeli bir yaklaşıma ihtiyacınız var.
Bernd Ruecker

35

Burada farklı yaklaşımları birleştirmeye çalışıyorum.

Alan Adı Etkinlikleri

Bunun baskın yaklaşımı, her hizmetin neler olduğuna ilişkin etkinlikler yayınladığı ve diğer hizmetlerin bu etkinliklere abone olabileceği etki alanı olaylarını kullanıyor gibi görünüyor. Bu , Martin Fowler tarafından burada açıklanan akıllı uç noktalar, aptal borular konseptiyle el ele gidiyor gibi görünüyor : http://martinfowler.com/articles/microservices.html#SmartEndpointsAndDumbPipes

Alan adı etkinlikleri

vekil

Yaygın görünen başka bir yaklaşım, iş akışını kendi hizmetine sarmaktır. Proxy, aşağıdaki resimde gösterildiği gibi mikro hizmetler arasındaki etkileşimi düzenler:

Proxy.

Kompozisyonun diğer desenleri

Bu sayfa çeşitli kompozisyon desenleri içermektedir.


İşte diğer desenler ne güzel video ve bunları birleştirmek nasıl youtu.be/tSN1gOVQfPs?t=35m35s Yanıtınıza ekleyerek Gösteriyor
Grygoriy Gonchar

Nic images @Roger, hangi aracı kullanıyordunuz?
Selvakumar Esra

1
Esra draw.io
Roger Johansson

7

Peki, mikro hizmetlerin düzenlenmesi, “mikro” olmayan eski SOA hizmetlerinin düzenlenmesinden nasıl farklıdır? Çok fazla değil.

Mikro hizmetler genellikle http (REST) ​​veya mesajlaşma / etkinlikler kullanarak iletişim kurar. Düzenleme genellikle iş akışlarını otomatikleştirmek için hizmetler arasında komut dosyası etkileşimi oluşturmanıza olanak tanıyan düzenleme platformlarıyla ilişkilendirilir. Eski SOA günlerinde, bu platformlar WS-BPEL kullanıyordu. Bugünün araçları BPEL kullanmıyor. Modern düzenleme ürünlerine örnekler: Netflix İletken, Camunda, Zeebe, Azure Logic Apps, Baker.

Düzenlemenin, karmaşık hizmet kompozisyonları oluşturmak için çeşitli yetenekler sunan bileşik bir desen olduğunu unutmayın. Mikro hizmetler daha çok karmaşık kompozisyonlara katılmaması ve daha özerk olması gereken hizmetler olarak görülür.

Bazı basit işlemler yapmak için bir orkestre iş akışında çağrılan bir mikro hizmet görüyorum, ancak bir mikro hizmetin genellikle telafi işlemleri ve durum deposu (dehidrasyon) gibi mekanizmaları kullanan bir orkestratör hizmeti olduğunu görmüyorum.


yayınınızdaki "bugünün araçları" nın, yine de bir akışı "modellemek" için olayları, verileri ve etkinlikleri bir şekilde kullandığına dikkat edilmelidir - camunda, BPEL'e yakın olan BPMN'yi kullanır ve diğerleri basitçe benzer bir konsepti temsil etmek için kendi DSL modellerini tanımladı.
Hightower

5

Yani iki hizmetiniz var:

  1. Fatura mikro hizmeti
  2. Sevkiyat mikro servisi

Gerçek hayatta, düzen durumunu tuttuğunuz bir şey olurdu. Buna sipariş servisi diyelim. Daha sonra, sipariş bir durumdan diğerine geçtiğinde ne yapılacağını bilen sipariş işleme kullanım durumlarına sahipsiniz. Tüm bu hizmetler belirli bir veri kümesi içerir ve şimdi tüm koordinasyonu yapan başka bir şeye ihtiyacınız vardır. Bu olabilir:

  • Tüm hizmetlerinizi tanıyan ve kullanım örneklerini uygulayan basit bir GUI ("Bitirdim" gönderi servisini çağırır)
  • "Tamamlandım" etkinliğini bekleyen bir iş süreci motoru. Bu motor, kullanım durumlarını ve akışı uygular.
  • Bir düzenleme mikro hizmeti, diyelim ki alan adınızın akış / kullanım durumlarını bilen sipariş işleme hizmetinin kendisi
  • Henüz düşünmediğim başka bir şey

Buradaki ana nokta, kontrolün harici olmasıdır. Bunun nedeni, tüm uygulama bileşenlerinizin gevşek bir şekilde bağlı tek tek yapı taşları olmasıdır. Kullanım durumlarınız değişirse, bir bileşeni tek bir yerde, yani düzenleme bileşeni olarak değiştirmeniz gerekir. Farklı bir sipariş akışı eklerseniz, birincisine müdahale etmeyen başka bir orkestratörü kolayca ekleyebilirsiniz. Mikro hizmet düşüncesi sadece ölçeklenebilirlik ve süslü REST API'leri yapmak değil, aynı zamanda açık bir yapı, bileşenler arasındaki bağımlılıkların azaltılması ve işiniz boyunca paylaşılan ortak verilerin ve işlevlerin yeniden kullanılmasıyla da ilgilidir.

HTH, Mark


1

Eğer Devlet yönetilmesi gereken o CQRS ile Olay Kaynak iletişimin ideal yoludur. Ayrıca, servisler arası iletişim için bir Asenkron mesajlaşma sistemi (AMQP) kullanılabilir.

Sorunuzdan, CQRS'li ES'nin doğru karışım olması gerektiği açıktır. Java kullanıyorsanız, Axon çerçevesine bakın. Veya Kafka veya RabbitMQ kullanarak özel bir çözüm oluşturun.


-2

Bu konuda birkaç yazı yazdım:

Belki bu yayınlar da yardımcı olabilir:

API Ağ Geçidi deseni - Kurs taneli API'ler ve ince taneli API'ler

https://www.linkedin.com/pulse/api-gateway-pattern-ronen-hamias/ https://www.linkedin.com/pulse/successfulapi-ronen-hamias/

Kaba taneli ve İnce taneli hizmet API'sı

Tanımı gereği, kaba taneli bir servis işlemi, terimler göreceli olmasına rağmen, ince taneli bir servisten daha geniş bir kapsama sahiptir. kaba taneli tasarım karmaşıklığını arttırır, ancak bir görevi tamamlamak için gereken çağrı sayısını azaltabilir. mikro hizmetler mimarisinde, kaba taneli API Ağ Geçidi katmanında bulunabilir ve belirli bir iş işlemini tamamlamak için çeşitli mikro hizmetleri düzenleyebilir. Kaba taneli API'lerin, farklı uzmanlık alanlarını yönetmenin, tek bir API'deki endişeleri karıştırma ve yukarıda açıklanan kuralları ihlal etme riski taşıyan birkaç mikro hizmeti içerecek şekilde dikkatle tasarlanması gerekir. iri taneli API'ler, aksi takdirde mevcut olmayan işletme işlevleri için yeni bir ayrıntı düzeyi önerebilir. örneğin işe alınan çalışan, çalışan kimliği oluşturmak için İK sistemine iki mikro hizmet çağrısı ve bir kullanıcı hesabı oluşturmak için LDAP sistemine başka bir çağrı içerebilir. alternatif olarak, müşteri aynı görevi gerçekleştirmek için iki ince ayrıntılandırılmış API çağrısı yapmış olabilir. kaba taneli iş kullanımı-vaka oluşturma kullanıcı hesabı temsil ederken, ince taneli API bu tür görevlerde yer alan yetenekleri temsil eder. ayrıca daha ince taneli API farklı teknolojiler ve iletişim protokolleri içerebilirken, kaba taneli birleştirilmiş akışa soyutlar. Bir sistemi tasarlarken her ikisini de tekrar düşünün, her şeyi çözen altın bir yaklaşım yoktur ve her biri için bir alıştırma vardır. Kaba taneli, diğer uygulamalar gibi diğer İş bağlamlarında tüketilecek hizmetler olarak özellikle uygundur,


-2

orijinal sorunun cevabı SAGA modelidir.


4
Cevabınızı genişletmek ister misiniz?
Patrick Mevzek

Saga, geri alma işlemi sağladığınız her işlem için işlemleri taklit etmeye çalışır. Bir işlem zinciri başarısız olursa, geri alma işlemleri başlangıç ​​noktasına kadar geri çağrılır.
18'de sschrass

Rastgele bir cevap gibi görünüyor. Gerekli detaylar.
bharatesh
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.