प्रसंस्करण अनुरोध ऑफ़लाइन इस तरह से जब आप अनुरोधों का एक उच्च मात्रा के साथ काम कर रहे हैं के लिए एक आम पैटर्न है।
चाहे आपको यह करना चाहिए या यहां तक कि यह भी कई कारकों पर आधारित है।
मुख्य कारक यह है: क्या आपके कॉलर्स को उनके अनुरोधों को समकालिक रूप से प्रतिक्रिया देखने की आवश्यकता है?
मेरा मतलब क्या है कि कॉलर को तत्काल और पूर्ण निश्चितता के साथ पता होना चाहिए, अगर डेटाबेस ने कॉल प्रतिक्रिया के हिस्से के रूप में सफलतापूर्वक अपना डेटा किया है? यदि ऐसा है, तो ऑफ़लाइन प्रसंस्करण अनुरोध लेना वास्तव में एक विकल्प नहीं है।
हालांकि, अगर यह स्वीकार्य है कि कॉलर्स को एक प्रतिक्रिया भेजी जा सकती है जिसमें कहा गया है कि उनके अनुरोध को ऑफ़लाइन संसाधित किया जाएगा (और किसी भी आवश्यक प्रतिक्रिया को ऑफ़लाइन भेजा जाएगा) तो एक कतार का उपयोग करके निश्चित रूप से आपके समग्र आर्किटेक्चर को लाभ होगा।
पहली चीज जो लाभान्वित होगी, वह फ्रंट-एंड उपलब्धता मुद्दों है।
यदि आप एक छोटी अवधि में हजारों अनुरोधों को संसाधित कर रहे हैं, और प्रत्येक अनुरोध को थ्रेड द्वारा सर्विस किया जाता है जो तब चला जाता है और डेटाबेस में डेटा डालता है, तो शायद आप उस समस्या में भाग लेंगे जहां कोई डिस्पैचर थ्रेड मौजूद नहीं है सेवा आने वाले अनुरोध।
हालांकि, बैक-एंड काम की मात्रा को कम करके आईआईएस कर रहा है (स्थानीय कतार में लिखना वास्तव में डेटाबेस कॉल से संबंधित सस्ता है) आप उपलब्धता-आधारित विफलता की संभावना को भी कम कर रहे हैं।
दूसरा कतार का उपयोग करके आपके पास बैक-एंड ट्रैफिक थ्रॉटलिंग का साधन होगा, क्योंकि आपके पास बैक-एंड प्रोसेसिंग पर थ्रूपुट पर नियंत्रण है।
उदाहरण के लिए, आपके पास एक सिंगल-थ्रेडेड कतार रीडर प्रक्रिया हो सकती है जो एक अनुरोध को डी-कतार देता है और इसे डेटाबेस में संसाधित करता है। यदि आपको लगता है कि आपके पास कतार में संदेश हैं, तो आप इसके अधिक उदाहरण होस्ट करके कतार रीडर सेवा को स्केल कर सकते हैं।
इसका मतलब यह है कि आप डेटाबेस विवाद के मुद्दों को प्राप्त करने की संभावना को कम कर रहे हैं क्योंकि आपके पास किसी भी समय डेटाबेस पर थ्रेड्स तक पहुंचने की संख्या पर अधिक नियंत्रण है।
तो, कतार का उपयोग करके आप कम विफलताओं का सामना कर रहे हैं और कम प्रबंधन ओवरहेड है, जो अच्छी तरह से लिखित अनुप्रयोगों के लक्षण हैं। यह विशेष रूप से जब आप अपने वेब सर्वर पर अपने डेटाबेस को होस्ट करने पर विचार कर रहे हैं!
इसके अलावा, आपको CQRS नामक एक आर्किटेक्चरल पैटर्न को पढ़ना चाहिए, जिसमें से केंद्रीय प्रिंसिपल में से एक है जो आपके डेटाबेस को ऑफ़लाइन लिखता है।
क्रैकिंग उत्तर ह्यूग, इसके लिए बहुत बहुत धन्यवाद। पुष्टि की कि मुझे क्या संदेह है और एक बहुत कुछ और! विकल्पों की महान तुलना और स्पष्टीकरण के लिए –
+ 1। आपका बहुत बहुत धन्यवाद। –