आखिरकार, जो मैंने अंतिम स्थिरता के बारे में समझा है, इन सभी सेवाओं (उपभोक्ताओं) को एक ही समय में घटना प्राप्त होगी और उन्हें अलग से संसाधित करेगी, जो एक अच्छे परिदृश्य में, डेटा के सुसंगत होने का कारण बनेगा।
नहीं, जरूरी नहीं। जैसा कि मैंने टिप्पणी की, हम भेजे गए ईमेल को पूर्ववत नहीं कर सकते, इसलिए हमें अभी भी "अनुक्रम" की आवश्यकता है। इवेंट-संचालित डेटा प्रबंधन पर IPC ऑर्केस्ट्रेशन 1 की छूट नहीं है ।
उदाहरण के लिए, ईमेल तब तक नहीं भेजा जाना चाहिए जब तक कि पिछला लेनदेन सफलतापूर्वक समाप्त न हो जाए और ईमेल सेवा को इसका एक प्रमाण मिल जाए। 3
हालांकि, अगर कोई सेवा घटना को संसाधित करने में विफल रहती है तो क्या होगा? जैसे अचानक डिस्कनेक्ट, डेटाबेस त्रुटि, आदि ... इन लेनदेन विफलताओं को संभालने के लिए एक अच्छा पैटर्न / अभ्यास क्या है?
वितरित कंप्यूटिंग की गिरावट के लिए नमस्ते कहो । वे वही हैं जो चीजों को जटिल बनाते हैं और हमेशा की तरह, उनसे निपटने के लिए चांदी की गोलियां नहीं हैं।
लॉस्ट आर्क की खोज में अपनी यात्रा शुरू करने से पहले, हमें संगठन से पूछने पर विचार करना होगा। अक्सर, समाधान यह है कि संगठन वास्तविक दुनिया में इन समस्याओं का सामना कैसे करता है ।
हर कोई (विभाग) कुछ डेटा गुम या अपूर्ण होने पर क्या करता है?
हमें पता चलेगा कि विभिन्न विभागों के अलग-अलग समाधान हैं, जिन्हें पूरी तरह से लागू करने के लिए समाधान शामिल है।
वैसे भी, यहां कुछ प्रथाएं हैं जो हमें पालन करने की रणनीति के साथ मदद कर सकती हैं।
यह सुनिश्चित करने के बजाय कि सिस्टम हर समय एक सुसंगत स्थिति में है, इसके बजाय हम स्वीकार कर सकते हैं कि सिस्टम भविष्य में किसी बिंदु पर इसे प्राप्त करेगा। यह दृष्टिकोण विशेष रूप से लंबे समय तक रहने वाले व्यावसायिक कार्यों के लिए उपयोगी है।
सिस्टम के लिए स्थिरता तक पहुंचने का तरीका सिस्टम से सिस्टम में भिन्न होता है। इसमें स्वचालित प्रक्रियाओं से लेकर कुछ प्रकार के मानवीय हस्तक्षेप शामिल हो सकते हैं। उदाहरण के लिए, विशिष्ट कोशिश यह बाद में फिर से या ग्राहक सेवा के साथ संपर्क ।
सभी ऑपरेशन को निरस्त करें
लेन-देन की भरपाई के माध्यम से सिस्टम को एक सुसंगत स्थिति में वापस रखें । हालाँकि, हमें यह ध्यान रखना होगा कि, ये लेन-देन विफल भी हो सकते हैं, जो हमें उस बिंदु तक ले जा सकता है जहाँ असंगति को हल करना और भी कठिन है। और, फिर से, हम एक भेजे गए ईमेल को पूर्ववत नहीं कर सकते।
लेनदेन की कम संख्या के लिए, यह दृष्टिकोण संभव है, क्योंकि लेनदेन की क्षतिपूर्ति की संख्या भी कम है। अगर आईपीसी में कई व्यापारिक लेनदेन शामिल थे, तो उनमें से प्रत्येक के लिए एक क्षतिपूर्ति लेनदेन को संभालना चुनौतीपूर्ण होगा।
यदि हम लेन-देन की क्षतिपूर्ति के लिए जाते हैं , तो हम सर्किट ब्रेकर डिज़ाइन पैटर्न को बहुत उपयोगी पाएंगे - और अनिवार्य रूप से मैं कहने की हिम्मत करूंगा -
वितरण वितरित किया गया
लेन-देन प्रबंधक के रूप में ज्ञात एक समग्र शासी प्रक्रिया के माध्यम से एक ही लेनदेन के भीतर कई लेनदेन करने का विचार है । वितरित लेनदेन को संभालने के लिए एक सामान्य एल्गोरिथ्म दो-चरण प्रतिबद्ध है ।
वितरित लेनदेन की मुख्य चिंता यह है कि वे अपने जीवन-काल के दौरान संसाधनों को लॉक करने पर भरोसा करते हैं, और जैसा कि हम जानते हैं, लेन-देन प्रबंधक के लिए भी चीजें गलत हो सकती हैं ।
यदि लेन-देन प्रबंधकों से समझौता हो जाता है, तो हम सभी अलग-अलग बंधे हुए संदर्भों के कई तालों के साथ समाप्त हो सकते हैं, जिसके परिणामस्वरूप संदेशों के कारण अप्रत्याशित व्यवहार होते हैं।2
Decomposing संचालन। क्यूं कर?
यदि आप एक मौजूदा प्रणाली को विघटित कर रहे हैं, और उन अवधारणाओं का एक संग्रह ढूंढते हैं जो वास्तव में एकल लेनदेन सीमा के भीतर होना चाहते हैं, तो शायद उन्हें पिछले पर छोड़ दें।
सैम न्यूमैन
उपर्युक्त तर्कों के साथ, सैम-उनकी पुस्तक बिल्डिंग माइक्रोसर्विसेज - में कहा गया है कि अगर हम वास्तव में, वास्तव में वास्तव में निरंतरता को बर्दाश्त नहीं कर सकते हैं, तो हमें अब ऑपरेशन को विभाजित करने से बचना चाहिए।
यदि हम कुछ परिचालन को दो या अधिक लेन-देन में विभाजित नहीं कर सकते हैं, तो यह कहना पड़ सकता है कि-ठीक-ठीक-ये लेन-देन एक ही बाउंडेड संदर्भ से संबंधित है, या-कम से कम-एक क्रॉस-कटिंग संदर्भ के लिए जो मॉडल होना बाकी है।
उदाहरण के लिए, हमारे मामले में, हमें पता चलता है कि लेनदेन # 1 और # 2 कसकर एक दूसरे से संबंधित हैं और शायद दोनों एक ही बंधे हुए संदर्भ खातों , उपयोगकर्ताओं , रजिस्टर से संबंधित हो सकते हैं , जो भी हो ...
एक ही लेनदेन की सीमाओं के भीतर दोनों संचालन रखने पर विचार करें। यह पूरे ऑपरेशन को संभालना आसान बनाता है। प्रत्येक लेनदेन की आलोचनात्मकता के स्तर को भी मापता है। संभवतः, यदि लेनदेन # 2 विफल रहता है, तो उसे पूरे ऑपरेशन से समझौता नहीं करना चाहिए। संदेह के मामले में संगठन से पूछें ।
1: ऐसा नहीं है कि आप किस तरह का ऑर्केस्ट्रेशन सोचते हैं। मैं ESB के ऑर्केस्टेशन के बारे में बात नहीं कर रहा हूँ। मैं सेवाओं को उचित घटना पर प्रतिक्रिया देने के बारे में बात कर रहा हूं।
2: आपको वितरित लेनदेन के बारे में दिलचस्प सैम न्यूमैन की राय मिल सकती है ।
3: इस विषय के बारे में डेविड पार्कर का उत्तर देखें।