2011-03-19 15 views
5

के साथ एकाधिक रीड डेटाबेस, मैं एक सीक्यूआरएस स्टाइल पैटर्न (नो इवेंट सोर्सिंग) का उपयोग कर रहा हूं, मैं बस अपने पढ़ने को अलग करता हूं और 2 अलग-अलग एप्लिकेशन सीमाओं में लिखता हूं।स्केलिंग, सीक्यूआरआईश पैटर्न

अभी, एप्लिकेशन एक SQL 2008 डेटाबेस के विरुद्ध काम करता है। वर्कलोड वितरित करने के लिए मैं एकाधिक पढ़ने वाले डेटाबेस जोड़ना चाहता हूं क्योंकि वॉल्यूम उच्च हो रहा है।

मुझे SQL 2008 में एक समाधान की आवश्यकता है जहां मैं एक डेटाबेस को अद्यतन कर सकता हूं, और अन्य नोड्स में रीयल-टाइम में परिवर्तनों को दोहराया/प्रचारित किया जा सकता है। यह केवल एक तरफा प्रचार होना चाहिए क्योंकि एप्लिकेशन केवल एक "मास्टर" डेटाबेस पर लिख रहा होगा।

मैंने पीयर-टू-पीयर लेनदेन प्रतिकृति के बारे में पढ़ा है। कोई भी जिसने इसका उपयोग किया है, बच्चे नोड्स को अपडेट करने में कितनी विलंबता है?

कोई अन्य समाधान?

उत्तर

3

यदि आप डोमेन/कमांड पक्ष पर ईवेंट सोर्सिंग का उपयोग नहीं कर रहे हैं, तो यह ठीक है। लेकिन यह आपको किसी भी तरह की "घटनाओं" तालिका में पढ़ने की तरफ सभी घटनाओं को संग्रहित करने से नहीं रोकना चाहिए। ऐसा करने में, यह आपको अपने व्यू मॉडल टेबल को नष्ट करने और आपके पढ़ने वाले मॉडल डेटाबेस में "ईवेंट" तालिका में संग्रहीत सभी घटनाओं से पुनर्निर्माण करने की अनुमति देता है।

इसका कारण आपके पढ़ने की तरफ स्केल करना है। चूंकि आपका मौजूदा पढ़ा गया डीबी दबाव में आता है और मास्टर "रीड डेटाबेस" से दोहराने की कोशिश करने के बजाय लोड को बनाए रख सकता है - सरल कुछ अन्य हार्डवेयर पर एक और डेटाबेस उदाहरण बनाएं जो खुद को "घटनाओं" तालिका से पॉप्युलेट करता है। फिर अपने डोमेन द्वारा जेनरेट की गई घटनाओं के लिए यह अतिरिक्त पढ़ा गया डेटाबेस सदस्यता लें। (एक बार जब आप समझते हैं कि क्या हो रहा है, तो आप वास्तव में पहले सदस्यता लेना चाहते हैं और फिर तालिका को पॉप्युलेट करना चाहते हैं ताकि आप प्रकाशित होने वाली घटनाओं को याद न करें)

यह आपको भाई बहन वाले दो पढ़ने वाले डेटाबेस रखने की अनुमति देता है लेकिन कौन सा डॉन एक दूसरे से बात मत करो। वे बस डोमेन से घटनाओं को सुनते हैं, पढ़े गए मॉडल टेबल अपडेट करते हैं, और प्राप्त घटनाओं को किसी प्रकार की स्थानीय "घटनाओं" तालिका में जोड़ते हैं।

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^