डेटाबेस पढ़ने के साथ स्केलिंग जूमला विभाजन लिखना


9

मुझे उत्तरी अमेरिका (Amazon RDS का उपयोग करके) और एक प्रतिकृति प्रतिकृति के साथ एक mysql सर्वर मिला है। मुझे एक नए क्षेत्र के लिए एक प्रतिकृति प्रतिकृति भी मिली है - ऑस्ट्रेलिया।

N.America में मुख्य DB सर्वर से जूमला की गतिशील प्रकृति के कारण ऑस्ट्रेलियाई सर्वर क्रूर रूप से धीमा है। मैंने इसके लिए mysql प्रॉक्सी का उपयोग करने की कोशिश की है ताकि रीड / राइट को विभाजित किया जा सके लेकिन यह दीर्घकालिक समाधान नहीं है। Mysql प्रॉक्सी प्रभावी रूप से मृत लग रहा है।

मेरे पास अन्य विकल्प क्या हैं?

जवाबों:


2

जूमला (और इसी तरह के अन्य सीएमएस) एक LAMP आर्किटेक्चर के लिए विकसित किए गए हैं, जिसमें आम होस्टिंग को ध्यान में रखा गया है। उदाहरण के लिए वेब सर्वर और डेटाबेस के बीच कम विलंबता।

अमेज़ॅन आरडीएस को क्लाउड में एक रिलेशनल डेटाबेस को स्केल करने के लिए डिज़ाइन किया गया है। इसलिए, जैसा कि क्षेत्रीय वितरण और अतिरेक महत्वपूर्ण हैं, उच्चतर ऋणात्मकता की उम्मीद है।

यदि आपकी विशिष्ट आवश्यकताएं अमेज़ॅन आरडीएस के लिए पूछ रही हैं, तो आप कॉन्फ़िगर कर सकते हैं:

  • साइट सामान्य प्रबंधन के लिए एक स्थानीय MySQL के साथ जूमला (स्थिर संपत्ति, नकल करने में आसान)
  • अमेज़ॅन आरडीएस कनेक्शन, आपके विकास के लिए एक एप्लिकेशन-विशिष्ट कनेक्शन

थर्ड-पार्टी एक्सटेंशन, कम-विलंबता को ध्यान में रखते हुए विकसित किए गए, अमेज़ॅन आरडीएस के साथ काम नहीं करने जा रहे हैं।


यकीन नहीं होता कि मैं आपके दो बिंदुओं को समझूं? मैं आरडीएस का उपयोग करना जारी रखूंगा, तो क्या आप ऑस्ट्रेलिया में मास्टर आरडीएस का सुझाव दे रहे हैं? इसके अलावा, मैं निश्चित रूप से अपने कस्टम घटकों के साथ पढ़ें प्रतिकृति के साथ एक RDS कनेक्शन का लाभ उठा सकता हूं लेकिन जूमला कोर के साथ नहीं। इसलिए यह निश्चित नहीं करें कि आप किसी एप्लिकेशन-विशिष्ट कनेक्शन से क्या मतलब रखते हैं। क्या आप कृपया विस्तार से बता सकते हैं?
टॉम

2

यदि आपका PHP के एक हालिया संस्करण का उपयोग कर रहा है तो आप शायद php mysqlnd ड्राइवर का उपयोग कर रहे हैं। http://us3.php.net/manual/en/book.mysqlnd.php

Mysqlnd के पास एक कस्टम प्लगइन API है और उसी तरीके से कार्य कर सकता है जो mysql प्रॉक्सी है - उदाहरण के लिए http://pecl.php.net/package/mysqlnd_ms एक प्लगइन है जो पढ़ता है और लिखता है और हाल ही में जारी किया गया था 9/2013

यह भी ध्यान रखें, जुमला हमेशा सेशन टेबल पर लिखता है। मेमेचे या एपीसी का उपयोग करना सत्र डेटा को कैश में संग्रहीत करता है - सत्र मेटाडेटा नहीं।

आप अपनी #_session टेबल को गिराकर समान प्रदर्शन को बढ़ावा दे सकते हैं और इसे innodb या myisam के बजाय मेमोरी डेटा इंजन का उपयोग करके पुनः बना सकते हैं।


1

जूमला द्वारा उत्पन्न प्रत्येक पृष्ठ को सत्र तालिका में लिखना होगा।

इसलिए मैं सत्र प्रबंधन के लिए मेमेक या एपीसी का उपयोग करने का सुझाव दूंगा। आपको डेटाबेस में शून्य-लेखन प्राप्त करने में मदद करनी चाहिए, इसलिए अधिकांश पृष्ठों के लिए रीड-प्रतिकृति पर्याप्त होगी।


यह एक उत्कृष्ट बिंदु है। यह लिखने में मदद करेगा लेकिन वास्तव में क्या महत्वपूर्ण है कि मैं जूमला के कोर के लिए रीड-रेप्लिका का उपयोग कैसे करूं? अभी मैं केवल mysql प्रॉक्सी या कोर हैकिंग को विकल्प के रूप में देखता हूं। मुझे लगता है कि HAproxy भी एक विकल्प है लेकिन यह उतना स्पष्ट नहीं है।
टॉम

1. एडब्ल्यूएस ही प्रतिकृति का समर्थन करते हैं ( aws.amazon.com/rds/faqs/#replication ) 2. अन्य विकल्प mysql बिल्ट-इन प्रतिकृति है
श्याम

मुझे लगता है कि आप गलत समझ रहे हैं। मैं पहले से ही RDS के साथ प्रतिकृति का उपयोग कर रहा हूं। मेरा सवाल यह है कि मैं जूमला रीड ऑपरेशंस को उस रीड प्रतिकृति में कैसे विभाजित कर सकता हूं।
टॉम

0

एक और गति सुधार विकल्प होगा कि इसके सामने नगनेक्स को रिवर्स प्रॉक्सी के रूप में रखा जाए। यह बहुत सारे डेटाबेस एक्सेस को कम कर देगा क्योंकि आम पेज कभी भी जूमला नहीं जाएंगे और mysql Cant प्रॉक्सी प्रॉक्सी को नहीं खोज पाएंगे लेकिन ये बेस सेटअप हैं

http://docs.joomla.org/Nginx

http://www.nginxtips.com/nginx-joomla-friendly-url/

/programming/23960359/how-to-get-nginx-proxy-caching-to-work-with-dynamic-content

https://stackoverflow.com/a/2655023/6096

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.