माइक्रोस्कोस-आधारित सिस्टम में डीबी स्थिरता प्राप्त करने का सबसे अच्छा तरीका क्या है?माइक्रोस्कोप के साथ डीबी स्थिरता
GOTO in Berlin में मार्टिन Fowler microservices और एक "नियम" उन्होंने कहा "प्रति-सेवा" डेटाबेस जिसका अर्थ है कि सेवाओं सीधे एक डीबी "स्वामित्व" कनेक्ट नहीं कर सकता किसी अन्य सेवा द्वारा रखने के लिए किया गया था, के बारे में बात कर रहा था।
यह बहुत अच्छा और सुरुचिपूर्ण है लेकिन व्यवहार में यह थोड़ा मुश्किल हो जाता है। मान लीजिए आप एक कुछ सेवाओं है कि:
- एक दृश्यपटल
- एक आदेश प्रबंधन सेवा
- एक वफादारी कार्यक्रम सेवा
अब, एक ग्राहक को खरीदारी अपने दृश्यपटल पर आपके द्वारा जो आदेश प्रबंधन सेवा को कॉल करेगा, जो डीबी में सब कुछ बचाएगा - कोई समस्या नहीं। इस बिंदु पर, वफादारी-कार्यक्रम सेवा के लिए भी एक कॉल होगा ताकि यह आपके खाते से क्रेडिट/डेबिट अंक हो।
अब, जब सबकुछ एक ही डीबी/डीबी सर्वर पर होता है तो यह सब आसान हो जाता है क्योंकि आप एक लेनदेन में सब कुछ चला सकते हैं: यदि वफादारी कार्यक्रम सेवा डीबी को लिखने में विफल रहता है तो हम पूरी चीज को वापस रोल कर सकते हैं।
जब हम कई सेवाओं में डीबी संचालन करते हैं तो यह संभव नहीं है, क्योंकि हम एक कनेक्शन पर भरोसा नहीं करते हैं/एक लेनदेन चलाने का लाभ उठाते हैं। चीजों को सुसंगत रखने और खुशहाल जीवन जीने के लिए सबसे अच्छे पैटर्न क्या हैं?
मैं आपके सुझाव सुनने के लिए उत्सुक हूं! .. और अग्रिम धन्यवाद!
समस्या को फिर से करने के लिए, प्रणाली तीन स्वतंत्र बल्कि संवाद स्थापित हिस्से होते हैं:
बीपीईएल इंजन या वितरित लेनदेन प्रबंधकों जैसी चीजें व्यापार लेनदेन के भीतर ऑर्केस्ट्रेट किए जाने वाले सभी प्रणालियों में अंतिम स्थिरता सुनिश्चित करने के लिए उपयोग की जा सकती हैं। मैंने यहां एक ब्लॉग आलेख लिखा है: http://blog.maxant.co.uk/pebble/2015/08/04/1438716480000.html और यदि आप जावा वातावरण में चल रहे हैं, तो एक जेसीए एडाप्टर है जिसे आप कर सकते हैं यहां उपयोग करें: https://github.com/maxant/genericconnector –