2012-11-30 34 views
6

मैं CodeIgniter, mysql है, जो इसे में स्थापना arrowchat है के साथ एक साइट है। साइट (xyz.com कहें) अमेज़ॅन पर्यावरण में होस्ट की गई है। यह चित्र अपलोड के लिए S3 कार्यान्वयन, स्थैतिक की सेवा फ़ाइल के लिए CDN कार्यान्वयन, डाटाबेस के लिए आरडीएस कार्यान्वयन, मेल भेजने के लिए एसईएस है। साइट के लिए ऑटो स्केलिंग एकीकृत करने की एक योजना है। मैंने शोध किया है कि इस परिदृश्य में तीरचैट कैसे कार्यान्वित किया जाएगा, क्योंकि तीरचैट में टेम्पलेट और कॉन्फ़िगरेशन फ़ाइल कैश की जा रही है, उदाहरणों के बीच इस कैश साझाकरण के लिए इस पर कुछ शोध करना पड़ा। मैंनेArrowchat और अमेज़न उदाहरणों

ए) की कोशिश की। एक एस 3 बाल्टी बनाया और इसे तीरचैट कैश फ़ोल्डर में मैप किया - लेकिन यह अच्छी तरह से नहीं चला क्योंकि तीरचैट लाइब्रेरी कोड में कैश निर्देशिका में फ़ाइल शामिल थी, इसलिए एस 3 में होने के कारण हम सीधे हमारे तीरचैट कोड में फ़ाइलों को शामिल नहीं कर सके।

बी)। एक सबडोमेन chat.xyz.com बनाया और उस उप डोमेन में तीरचैट स्थापित किया और इसे उदाहरणों में उपयोग किया। - यह कुछ क्रॉस डोमेन कोड मुद्दों को छोड़कर अच्छी तरह से काम करता है जिसे कुछ कोड फिक्स द्वारा हल किया गया था। समस्या थी, हमें एक डोमेन और सबडोमेन में एक ही कोड का प्रबंधन करना पड़ा।

कृपया मुझे बताएं कि मेरे द्वारा सूचीबद्ध विधियां उचित तरीके हैं या नहीं। यदि नहीं, तो कृपया मुझे बताएं कि क्या कोई अन्य सुझाव है।

+0

क्षमा करें, लेकिन आपको थोड़ा और विस्तार करना होगा, आपको कैश साझा करने की आवश्यकता क्यों होगी? मेरा मतलब है, कल्पना करें कि आप अपने डीएनएस को अपने ईएलबी पर रूट करने के लिए सेट करते हैं जहां आपके ऑटो स्केलिंग मशीनें हैं। कैश साझा किए बिना, क्या सबसे बुरा हो सकता है? प्रत्येक उदाहरण पर कैश की प्रतियां बनाएं? क्या यह एक असली समस्या है? कृपया बताएं कि भगवान के नाम पर आपको उन कैश फ़ाइलों को साझा करने की आवश्यकता क्यों होगी। –

उत्तर

1

आपको ElasticCache का उपयोग करने और ऑटोस्केल समूह के सभी उदाहरणों के बीच नोड पूल साझा करने की आवश्यकता है। यदि टेम्पलेट्स को प्रोसेसिंग की आवश्यकता है तो आप सीधे amazon S3 का उपयोग नहीं कर सकते हैं। (एक विशिष्ट उदाहरण पर PHP कोड टेम्पलेट को पढ़ने, इसे संसाधित करने और इसे वापस भेजने के लिए है)। छद्म कोड: प्रत्येक टेम्पलेट (यानी डेटा/टेम्पलेट_नाम) के लिए एक अद्वितीय कुंजी संबद्ध करें। जब कोई टेम्पलेट अनुरोध किया जाता है, तो ऐसी कुंजी होने पर मेमकैच पर जांचें। अन्यथा इसे S3 से पढ़ें और इसे कैश में लोड करें। एक बार कैश में होने पर सभी उदाहरण उस एकल मान का उपयोग करने में सक्षम होंगे।