2011-12-19 7 views
9

हमारे पास एक बड़ी समाचार-उन्मुख साइट है जिसमें उच्च वेब ट्रैफ़िक है। आर्किटेक्चर आपकी अक्सर देखी गई डीबी - रेपो लेयर - सर्विसेज लेयर - एएसपी.नेट एमवीसी है। जो समस्या हम देख रहे हैं वह पढ़ने के प्रदर्शन के आसपास है। यह पता चला है कि यह सभी डीडीडी डोमेन ऑब्जेक्ट सामान व्यवसाय सिद्धांतों के लिए, सिद्धांत रूप में महान है, लेकिन जब पढ़ने के प्रदर्शन को अनुकूलित करने की बात आती है तो जीवन को कठिन बना दिया गया है।क्या SQL सर्वर और मोंगो एक साथ उपयोग किया जा सकता है?

एक समाधान के रूप में, मैं कुछ पूरी तरह से नया (हमारे लिए) पर विचार कर रहा हूं: noSQL का उपयोग करना। मैं हमारी वेबसाइट पर प्रस्तुत किए जाने वाले डेटा के लिए नोएसQL डेटाबेस का उपयोग करना चाहता हूं। हम अपने एसक्यूएल सर्वर से छुटकारा नहीं पा सकते हैं (कम से कम कभी भी जल्द ही नहीं), लेकिन ऐसा लगता है कि मोंगो को सभी नए विकास के लिए एक क्वेरी डेटाबेस के रूप में उपयोग करने का एक व्यावहारिक कदम होगा।

मेरा सवाल यह है कि क्या SQL सर्वर का रिकॉर्ड आपके डेटाबेस के रिकॉर्ड के रूप में और मोंगो को आपके क्वेरी डेटाबेस के रूप में उपयोग करना संभव है और यदि हां, तो अपडेट अपडेट करने के लिए आप किस तकनीक/तकनीक का उपयोग करेंगे? मैं मोंगो को 15 मिनट तक ताज़ा करना चाहता हूं।

+1

यह माइट प्रोग्रामर.स्टैकएक्सएन्चेंज.com के लिए एक प्रश्न हो सकता है, लेकिन मुझे जवाब में दिलचस्पी होगी क्योंकि हम वही काम कर रहे हैं। –

+0

ठीक है, मुझे लगता है * स्पष्ट रूप से * यह संभव है - असली सवाल यह है कि क्या उपकरण या ढांचे हैं जो SQL सर्वर के लिए पढ़ने-कैश के रूप में मोंगोडीबी का उपयोग करना आसान बना सकते हैं। –

+0

http://programmers.stackexchange.com/questions/125980/can-sql-server-and-mongo-be-used-together – John

उत्तर

8

मैं cqrs में एक देखो (कमान क्वेरी जिम्मेदारी पृथक्करण) पैटर्न है कि शुरू में Greg Young द्वारा पेश किया गया था लेने के लिए सुझाव देते हैं। इसके अलावा आप here पढ़ सकते हैं।

इस दृष्टिकोण में दो डेटाबेस हैं: पढ़ें और लिखें। डेटाबेस लिखना प्राथमिक लेखन स्टोर के रूप में उपयोग किया जाता है और क्वेरीिंग के लिए डेटाबेस - पढ़ा जाता है। डेटाबेस पढ़ें denormalized डेटा हो सकता है। उदाहरण के लिए यदि आपके पास आलेख है तो आप इसमें लेखक की जानकारी को एम्बेड कर सकते हैं साथ ही यूई पर त्वरित प्रदर्शन के लिए भी। और सामान्य nosql डेटाबेस में पढ़ने के भंडारण के लिए अच्छा फिट।

आपके मामले में प्राथमिक सामान्यीकृत डेटाबेस एसक्यूएल में हो सकता है और डेटाबेस पढ़ना mongodb में हो सकता है।

सामान्य रूप से यह दृष्टिकोण उच्च ट्रैफिक सिस्टम के लिए उपयुक्त है। इसका खुला स्रोत कार्यान्वयन - ncqrs है।

2012 के लिए माइक्रोसॉफ्ट के roadmap में यह दृष्टिकोण भी।

मुझसे: मैं इस दृष्टिकोण का एक वर्ष से अधिक का उपयोग कर रहा हूं और इसे अपना व्यक्तिगत वोट दे रहा हूं।

+0

सीक्यूआरएस वह है जो मैं करने की कोशिश कर रहा हूं, लेकिन मुझे यह समझने में कठिनाई हो रही है कि आप मौजूदा विरासत प्रणाली के साथ काम करते हुए उस दिशा में कैसे आगे बढ़ेंगे। एनसीक्यूआरएस ऐसा लगता है कि इसे एक विशाल पुनर्लेख की आवश्यकता होगी। मैं कुछ सरल से शुरू करने की कोशिश कर रहा हूं: केवल पढ़ने के लिए मोंगोडीबी बनाएं और इसे नए क्लाइंट साइड पेजों के लिए उपयोग करें। जैसा कि उडी कहते हैं "... सीक्यूआरएस एक दृष्टिकोण है, एक दिमागी सेट - एक कुकी कटर समाधान नहीं।" – John

+0

@ जॉन: हाँ, उडी दहन सामान्य रूप से अधिकार। सीकर्स लागू करें एक विशाल पुनर्लेखन का मतलब है, लेकिन भविष्य में बहुत से लाभों का कारण बनता है। न केवल प्रदर्शन सुधार, स्केलेबिलिटी बल्कि आवेदन कोड के सरलीकरण और लॉजिकल अलगाव के लिए भी। –

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