मैं एक बहु-किरायेदार प्रणाली तैयार कर रहा हूं और डेटाबेस के बजाए आवेदन स्तर स्तर पर किरायेदार द्वारा शेडिंग पर विचार कर रहा हूं।आवेदन स्तर पर शेरिंग
हाइपोटेटिक रूप से, जिस तरह से यह काम करना चाहिए, यह है कि आने वाले अनुरोध के लिए राउटर प्रक्रिया में इस अनुरोध के लिए किरायेदार को निर्धारित करने के लिए प्राथमिक गुण वाले किरायेदारों का वैश्विक संग्रह होता है और वर्चुअल शर्ड आईडी भी होता है। यह आभासी शर्ड आईडी आगे एक वास्तविक शार्ड में मैप किया गया है।
वास्तविक शार्ड में इस किरायेदार के लिए आवेदन के साथ-साथ संपूर्ण डेटा दोनों कोड शामिल हैं। ये shards एलएनएमपी (लिनक्स, Nginx, MySQL/MongoDB, PHP) सर्वर होगा।
राउटर प्रक्रिया प्रॉक्सी के रूप में कार्य करनी चाहिए। यह कुछ स्थानीय डीबी या फ़ाइलों में संग्रहीत संग्रह के आधार पर इनकमिंग अनुरोध के लिए लक्षित शार्ड निर्धारित करने के लिए कुछ कोड चलाने में सक्षम होना चाहिए। इसे बेहतर तरीके से स्केल करने में सक्षम होने के लिए, मैं शर्ड्स को स्वयं राउटर के रूप में कार्य करने पर विचार कर रहा हूं ताकि वे एक रिवर्स प्रॉक्सी चला सकें जो उचित शेड के अनुरोध को अग्रेषित करेगी। शायद shard पर चल रहे nginx उदाहरण भी रिवर्स प्रॉक्सी के रूप में कार्य कर सकते हैं। लेकिन उपयुक्त शार्ड के साथ अनुरोध को पूरा करने के लिए आवश्यक एप्लिकेशन तर्क को कैसे निष्पादित किया जाएगा।
मैं इस राउटर कार्यान्वयन के लिए किसी भी विचार और सुझाव की सराहना करता हूं।
धन्यवाद
एप्लिकेशन स्तर का शेड संभावित रूप से एक सर्वर फार्म हो सकता है जिसमें सिंगल शेड मोंगोडीबी है। मैं अभी भी किरायेदारों को नियंत्रित रोलआउट के लिए किरायेदारों को अलग करने की क्षमता बनाना चाहता हूं। यद्यपि जटिल टूलिंग की आवश्यकता के बारे में आपसे सहमत होने के लिए मैं सहमत हूं। – msingla