पृष्ठभूमि:प्रकाशित/SQL में पैटर्न सदस्यता लें
हम आइटम जो दिन (औसत 300K दैनिक परिवर्तन) भर में अपडेट किया जाता है की एक बड़ी (15+ मिलियन) तालिका है। लंबित परिवर्तन एक स्टेजिंग टेबल में संग्रहीत होते हैं, और इस तालिका से परिवर्तन पढ़ने, अपडेट करने और संसाधित होने वाले परिवर्तनों को चिह्नित करने के लिए पूरे दिन नौकरी चलती है।
कई अन्य एप्लिकेशन विभिन्न कार्यों को करने के लिए आइटम तालिका में डेटा का उपयोग करते हैं। अक्सर, ये कार्य निर्धारित और गहन होते हैं, क्योंकि उनमें पुराने स्नैपशॉट्स के साथ लाइव डेटा की तुलना करना और तदनुसार अन्य सिस्टम अपडेट करना शामिल है। उदाहरण के लिए, हम ईबे पर आइटम सूचीबद्ध करते हैं, और हमारी मौजूदा लिस्टिंग के साथ लाइव आइटम डेटा की तुलना करने के लिए यह देखने के लिए कि क्या हमें कोई नई ईबे लिस्टिंग डालने की ज़रूरत है, हमने जो आइटम बेचे हैं, वो मात्रा अपडेट करें, आदि को हटाएं। क्योंकि डेटा इतना बड़ा है, अधिकतर इन अनुप्रयोगों में से कई बार समय से बाहर चीजें छोड़कर, बार-बार चलते हैं।
मेरे प्रश्न:
हम सेवा ब्रोकर का उपयोग कर एक प्रकाशक/ग्राहक पैटर्न को लागू करने पर विचार कर रहे हैं। लक्ष्य तब होता है जब कोई आइटम बदलता है, जो कई अन्य सिस्टम (जैसे हमारे ईबे एप्लिकेशन) की सदस्यता ले सकते हैं। यह हमें बड़े और कम अपडेट के बजाय वास्तविक समय के करीब और अधिक बारीक अद्यतन करने में सक्षम बनाता है, जिसमें सभी डेटा पूछताछ शामिल है, न कि जो कुछ भी बदल गया है। हालांकि, Google का उपयोग करने के बाद ऐसा लगता है कि यह एक सामान्य डेटाबेस पैटर्न नहीं है, और यह लाल झंडे उठाता है। क्या यह सेवा ब्रोकर का वैध उपयोग नहीं है (हालांकि मुझे पब/सब करने पर प्रो एसक्यूएल सर्वर 2008 सेवा ब्रोकर में एक छोटा सा अनुभाग मिला है? यह समस्या सामान्य रूप से हल कैसे होती है? यह एक आम पर्याप्त समस्या की तरह लगता है।
टी एल; डॉ:
लक्ष्य: अद्यतन एक गतिशील, शिथिल युग्मित तरह से जब एक आइटम बदलने में विभिन्न प्रणालियों।
प्रश्न: क्या सेवा ब्रोकर के साथ एक पब/सब स्टाइल समाधान एक उच्च मात्रा सेटिंग में व्यवहार्य समाधान है?
दो प्रश्न: स्टेजिंग तालिका में लंबित परिवर्तनों को संसाधित करने के बजाय उन अनुप्रयोगों का मुख्य आइटम तालिका में डेटा का उपयोग क्यों किया जाता है? दूसरा: क्या आपको वस्तुओं को पकड़ने और प्रकाशित करने के लिए बिल्कुल SQL सर्वर की आवश्यकता है? –
अंतर्निहित एसक्यूएल प्रतिकृति पर एक नज़र डालें, यह परिदृश्यों की एक विस्तृत श्रृंखला को समायोजित करने के लिए पर्याप्त लचीला है। – alexm
@ क्यूबावायरोस्टेक जो हमारा पहला विचार था, और हमें संदेश-आधारित दृष्टिकोण पर विचार करने के लिए प्रेरित किया। उस तालिका से हर बार पढ़ने के बजाय, इसे 'आइटम बदले' संदेशों के स्रोत के रूप में क्यों न उपयोग करें। शायद अमूर्तता की एक अनावश्यक परत, लेकिन स्टेजिंग तालिका समय-समय पर संसाधित अद्यतनों से मिटा दी जाती है, सोशल एसक्यूएल से वस्तुओं को स्थानांतरित करने के लिए सबसे सुरक्षित और सबसे लचीला सेवा ब्रोकर – Bort