मैं एक प्रोजेक्ट शुरू कर रहा हूं जो मुझे लगता है कि यह गति और स्केलेबिलिटी के कारण विशेष रूप से मोंगोडीबी के लिए उपयुक्त होगा।मोंगोडीबी स्कीमा डिज़ाइन - रीयल-टाइम चैट
जिस मॉड्यूल में मैं वर्तमान में रूचि रखता हूं वह रीयल-टाइम चैट के साथ करना है। अगर मैं एक पारंपरिक RDBMS में यह करने के लिए था कि मैं इसे बाहर विभाजित था में:
- चैनल (एक चैनल कई उपयोगकर्ताओं है)
- उपयोगकर्ता (एक उपयोगकर्ता एक चैनल है, लेकिन कई संदेश हैं)
- संदेश (एक संदेश में उपयोगकर्ता है)
इस उपयोग के मामले का उद्देश्य, मैं यह मानना चाहता हूं कि आम तौर पर 5 चैनल सक्रिय होंगे, प्रत्येक सेकेंड में अधिकतम 5 संदेश होंगे।
विशिष्ट प्रश्नों तेजी से होने की जरूरत है कि:
- नया संदेश प्राप्त करें
- एक चैनल के लिए एक संदेश
- सत्यापित करें पोस्ट (, एक बुकमार्क के आधार पर समय स्टाम्प शायद, या एक incrementing काउंटर?) एक उपयोगकर्ता एक चैनल ध्यान रखें कि MongoDB साथ दस्तावेज़ सीमा 4MB है में
असर, तुम कैसे स्कीमा को डिजाइन करने के बारे में जाना होगा में पोस्ट कर सकते हैं कि? तुम्हारा क्या दिखता है? क्या कोई गठिया है जिसके लिए मुझे देखना चाहिए?
मैं यह सुझाव नहीं दूंगा कि वहां के एमक्यू समाधान वास्तव में वहां कुछ नोएसक्यूएल समाधानों की तुलना में काफी बेहतर हैं। बहुत सी एमक्यू तकनीक जटिल और अधिक इंजीनियर लगती है, साथ ही प्रदर्शन हमेशा महान नहीं होता है, स्थिरता और पोर्टेबिलिटी का भी त्याग किया जा सकता है। देखें: http://bhavin.directi.com/rabbitmq-vs-apache-activemq-vs-apache-qpid/ – Klinky
वहाँ सभ्य एमक्यू समाधान हैं, मुझे लगता है कि वे सुविधाओं के रास्ते में बहुत अधिक हैं , ज़ीरोएमक्यू और केस्ट्रल दोनों अपने उद्देश्यों के लिए अच्छे हैं। दूसरी तरफ ActiveMQ भयानक है। – Michael
@ क्लिंकी मैं शर्त लगाता हूं कि लगभग किसी भी विशिष्ट एमक्यू समाधान (विशेष रूप से एक्टिवएमक्यू) एक अनिर्दिष्ट प्रकार के नोएसक्यूएल के आधार पर कस्टम समाधान की तुलना में मैसेजिंग (ईडीए) समस्या के समय से बेहतर होगा (क्या आपका मतलब दस्तावेज़-उन्मुख डीबी या कुंजी है -वैल स्टोर या क्या?), क्योंकि एमक्यू समाधान उस समस्या के लिए डिज़ाइन किए गए हैं, और, एफटीएन एक्टिवएमक्यू कतार दृढ़ता के लिए अपने स्वयं के अनुकूलित उच्च-प्रदर्शन डेटा स्टोरेज का उपयोग करता है। –