2012-12-13 5 views
5

मैंने Django MultiDB दस्तावेज़ https://docs.djangoproject.com/en/1.4/topics/db/multi-db/ पढ़ा है और थोड़ी देर के लिए googled और अभी भी एक समाधान के साथ नहीं आ सकता है।प्राथमिक डाउन होने पर मैं Django में बैकअप डेटाबेस पर कैसे स्विच करूं?

स्थिति: इसके लिए एक Django एप्लिकेशन और एक MySQL डेटाबेस है। डेटाबेस मास्टर-मास्टर प्रतिकृति के साथ दो सर्वरों पर स्थापित है। Django अनुप्रयोग Django दस्तावेज़ों से एक संशोधित दास-मास्टर उदाहरण का उपयोग कर दोनों से पढ़ने के लिए कॉन्फ़िगर किया गया है। दोनों पढ़ते हैं और लिखते हैं ठीक काम करते हैं और यादृच्छिक रूप से दोनों डेटाबेस पर जाते हैं।

समस्या: सर्वर 1 नीचे चला गया। अब डेटाबेस अनुरोध का आधा असफल हो जाता है।

मैं Django और/या MySQL को इस तरह से कैसे कॉन्फ़िगर कर सकता हूं कि Django एक MySQL सर्वर की विफलता के मामले में पूरी तरह से काम करना जारी रखेगा?

+0

इस कोड को देखें https://github.com/isagalaev/django_replicated/blob/master/django_replicated/router.py – sneawo

उत्तर

0

mysql-proxy जैसे एक MySQL प्रॉक्सी का उपयोग करें। आप इसका उपयोग कर लोड-बैलेंसिंग और स्वचालित फेलओवर कर सकते हैं।

0

जबकि mysql-प्रॉक्सी अच्छा उपयोग हो सकता है, यह सब आपकी साइट पर निर्भर करता है।

क्या यह एक उत्पादन गुणवत्ता, राजस्व उत्पन्न करने वाली साइट है? यदि ऐसा है तो मैं एक वास्तविक लोड बैलेंसर का सुझाव दूंगा जो भार को उचित रूप से संतुलित करता है। फिर यदि एक सर्वर नीचे चला जाता है, तो सभी कनेक्शन एक लाइव डीबी सर्वर पर भेजे जाएंगे।

कारण मैं कहता हूं कि MySQL-प्रॉक्सी का उपयोग नहीं किया जाना चाहिए, यह है कि यह अल्फा उत्पाद है और इसे राजस्व उत्पन्न करने, उत्पादन की भूमिका में उपयोग नहीं किया जाना चाहिए।

0

हैप्रोक्सी एक उत्पादन ग्रेड समाधान है जिसका उपयोग इस के लिए किया जा सकता है। माईएसक्यूएल जोड़े के संतुलन या स्वचालित विफलता गेटचास से भरा हुआ है, जांच करें कि आप अपने ऑटो वेतन वृद्धि आदि को विभाजित कर रहे हैं!

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