Nihai tutarlılık hakkında anladığım şeye dayanarak, tüm bu hizmetler (tüketiciler) aynı anda olayı alacak ve iyi bir senaryoda verilerin tutarlı olmasına yol açacak şekilde ayrı ayrı işleyecek.
Hayır, mutlaka değil. Yorum yaptığım gibi, gönderilen bir e-postayı geri alamayız, bu nedenle bir tür "sıralamaya" ihtiyacımız var. IPC üzerinde olaya dayalı veri yönetimi orchestation ait muaf değildir 1 .
Örneğin, önceki işlemler başarıyla tamamlanmadıkça ve e-posta hizmeti bunun bir kanıtını almadıkça e-posta gönderilmemelidir. 3
Ancak, bir hizmet etkinliği işleyemezse ne olur? örneğin ani bağlantı kesme, veritabanı hatası, vb ... Bu işlem hatalarını ele almak için iyi bir kalıp / uygulama nedir?
Dağıtılmış hesaplamanın yanlışlarına merhaba deyin . Her şeyi karmaşık yapan şeylerdir ve her zamanki gibi onlarla başa çıkacak gümüş mermiler yoktur.
Kayıp Gemiyi arama yolculuğumuza başlamadan önce, önce organizasyona sormayı düşünmeliyiz. Çoğunlukla çözüm, kuruluşun gerçek dünyada bu sorunlarla nasıl karşılaştığı ile ilgilidir .
Bazı veriler eksik veya eksik olduğunda ne yapar?
Farklı departmanların, tamamen uygulanacak çözümü oluşturan farklı çözümleri olduğunu fark edeceğiz.
Her neyse, burada izlenecek stratejimizde bize yardımcı olabilecek bazı uygulamalar.
Sistemin her zaman tutarlı bir durumda olmasını sağlamak yerine, bunun gelecekte sistemin bir noktada alacağını kabul edebiliriz. Bu yaklaşım özellikle uzun ömürlü ticari operasyonlar için kullanışlıdır.
Sistemin tutarlılığa ulaşması, sistemden sisteme değişir. Otomatik işlemlerden bir tür insan müdahalesine kadar içerebilir. Örneğin, tipik olarak daha sonra tekrar deniyor veya Müşteri Hizmetleri ile iletişim kuruyor .
Tüm işlemleri iptal et
Dengeleme işlemleri yoluyla sistemi tekrar tutarlı bir duruma getirin . Ancak, bu işlemlerin de başarısız olabileceğini, tutarsızlığın çözülmesinin daha zor olduğu bir noktaya neden olabileceklerini hesaba katmamız gerekir. Ve yine, gönderilen bir e-postayı geri alamayız.
Düşük sayıda işlem için, bu yaklaşım uygulanabilir, çünkü telafi edici işlemlerin sayısı da düşüktür. IPC'de yer alan birkaç ticari işlem olsaydı, her biri için bir telafi edici işlem yapılması zor olurdu.
Biz gidersek işlemleri telafi biz bulacaksınız devre kesici tasarımı deseni çok yararlı olduğu - ve zorunlu söylemeye cesaret edemez -
Dağıtılmış işlemler
Buradaki fikir, İşlem Yöneticisi olarak bilinen genel bir yönetim süreci boyunca, tek bir işlem içinde birden fazla işlemi yaymaktır . Dağıtılmış işlemlerin işlenmesi için ortak bir algoritma İki aşamalı işlemdir .
Dağıtılmış işlemlerin temel kaygısı, kullanım ömrü boyunca kaynakları kilitlemeye güvenmeleridir ve bildiğimiz gibi, İşlem Yöneticisi için de işler ters gidebilir .
İşlem Yöneticileri tehlikeye girerse, farklı sınırlanmış bağlamların her yerinde birkaç kilitle sonuçlanabilir, bu da mesajların sıralanması nedeniyle beklenmeyen davranışlarla sonuçlanabilir. 2
Ayrıştırma işlemleri Niye ya?
Mevcut bir sistemi parçalara ayırıyorsanız ve gerçekten tek bir işlem sınırı içinde olmak isteyen bir kavramlar topluluğu buluyorsanız, belki de onları sonuna kadar bırakın.
Sam Newman
Yukarıdaki argümanlara uygun olarak, Sam - Yapı Mikro Şebekeleri kitabında - eğer gerçekten, gerçekten tutarlı bir sonuç elde edemezsek , işlemi şimdi bölmekten kaçınmamız gerektiğini belirtir.
Bazı işlemleri iki veya daha fazla işleme ayırmayı göze alamazsak, bu işlemlerin muhtemelen sınırlandırılmış içeriğe ya da en azından modellenmeye devam eden enine kesitli bir içeriğe ait olduğu söylenebilir.
Örneğin, bizim durumumuzda, biz bu işlem gerçekleştirebilmeyi 1. malumunuzdur ve 2. sıkıca birbirlerine ilişkilidir ve muhtemelen ikisi de aynı sınırlı bağlam ait olabilir Hesaplar , Kullanıcılar , Register , her neyse ...
Her iki işlemi de aynı işlemin sınırları içerisinde tutmayı düşünün. Tüm işlemi idare etmeyi kolaylaştıracak. Ayrıca, her bir işlemin kritiklik seviyesi de ağırlıktadır. Muhtemelen, işlem # 2 başarısız olursa, tüm işlemden ödün vermemelidir. Şüphe durumunda kuruluşa sorunuz .
1: Düşündüğünüz tür bir düzenleme değil. ESB’nin ortasyonundan bahsetmiyorum. Hizmetlerin doğru olaya tepki göstermesini sağlamaktan bahsediyorum.
2: Dağıtılmış işlemlerle ilgili ilginç Sam Newman'ın düşüncelerini bulabilirsiniz .
3: David Parker'ın bu konuyla ilgili cevabını kontrol edin.