2008-10-15 19 views
7

बहुत से ऊपर/नीचे वोटों के साथ reddit जैसी वेबसाइट और प्रति विषय बहुत सारी टिप्पणियों के साथ मुझे क्या जाना चाहिए?आप एक उच्च यातायात AJAX गहन वेबसाइट के लिए क्या सिफारिश करेंगे?

लाइटटैड/पीएचपी या लाइटटैड/चेरीपी/जेन्शी/स्क्लाक्लेमी?

और डेटाबेस के लिए जो बेहतर स्केल करेगा/सबसे तेज़ MySQL (4.1 या 5?) या PostgreSQL?

उत्तर

8

मैं MySQL/PostgreSQL प्रश्न से बात नहीं कर सकता क्योंकि मेरे पास पोस्टग्रेज़ के साथ सीमित अनुभव है, लेकिन मेरी मास्टर्स रिसर्च प्रोजेक्ट चेरीपी के साथ उच्च प्रदर्शन वाली वेबसाइटों के बारे में थी, और मुझे नहीं लगता कि आप निराश होंगे अपनी साइट के लिए चेरीपी का प्रयोग करें। यह कमोडिटी हार्डवेयर पर हजारों एक साथ उपयोगकर्ताओं को आसानी से स्केल कर सकता है।

बेशक, PHP के लिए भी यही कहा जा सकता है, और मुझे PHP और चेरीपी प्रदर्शन की तुलना में किसी भी उचित मानक के बारे में पता नहीं है। लेकिन अगर आप सोच रहे थे कि चेरीपी प्रति सेकंड बड़ी संख्या में अनुरोधों के साथ उच्च ट्रैफिक साइट को संभाल सकता है, तो जवाब निश्चित रूप से हां है।

2

अधिक डेटा की आवश्यकता के लिए जा रहे हैं। जेफ के पास एक ही समस्या पर कुछ लेख थे और जवाब तब तक इंतजार करना था जब तक आप एक प्रदर्शन समस्या नहीं दबाते।

से शुरू करने के लिए - कौन होस्टिंग कर रहा है और वे क्या उपलब्ध हैं? घर प्रतिभा कौशल सेट में आपका क्या है? क्या आप एक बाहरी फर्म को भर्ती करने जा रहे हैं? वे क्या सलाह देते हैं? एक नया ढांचा सीखने के लिए तैयार एक नई ब्रांड डब्ल्यू/एक टीम?

दूसरी बात कुछ मॉकअप करना है - इंटरफ़ेस कैसे काम करने जा रहा है। लोड करने और जारी रखने के लिए उसे किस डेटा की आवश्यकता है? विचार है कि वेब या डीबी पक्ष के बीच अपना ट्रैफिक रखना है। जैसे बहुत सारे प्रश्नों के साथ कोई चैट पेज नहीं। आदि

एक बार जब आप डेटा आवश्यकताओं और प्रवाह का बेहतर विचार रखते हैं - तो डेटाबेस डिज़ाइन पर काम करें। पालन ​​करने के लिए बहुत से नियम हैं लेकिन बेहतर में से एक सामान्यीकरण नियमों का पालन करना है (हाँ मैं एक डीबी लड़का क्यों हूं?)

अब आपके पास कुछ परीक्षण हैं - अपने परीक्षण चलाएं। क्या आपको कोई समस्या है? हाँ, अब देखो कि यह क्या है। पेज सेवारत या डीबी खींचता है? उपाय फिर कार्रवाई का एक कोर्स चुनें।

8

आदर्श सेटअप this के करीब होगा:

caching

संक्षेप में, nginx एक अद्वितीय मॉड्यूल कि चलो यह memcached के से सीधे डेटा लाने के साथ एक तेज और प्रकाश वेबसर्वर/सामने प्रॉक्सी है डिस्क स्टोर, या किसी गतिशील वेबपैप को मारने के बिना रैम स्टोर। बेशक, अगर अनुरोध का यूआरएल पहले ही कैश नहीं किया गया था (या यदि यह समाप्त हो गया है), अनुरोध सामान्य रूप से वेबएप पर आता है। प्रतिभा हिस्सा यह है कि जब वेबपैड ने प्रतिक्रिया उत्पन्न की है, तो इसकी एक प्रति याद आती है, जिसे पुन: उपयोग करने के लिए तैयार किया जाता है।

यह सब न केवल वेबपृष्ठों पर लागू है, बल्कि AJAX क्वेरी/प्रतिक्रियाओं पर लागू है।

लेख में 'बैक' सर्वर http हैं, और विशेष रूप से मोंगल के बारे में बात करते हैं। यदि फास्टसीजीआई और अन्य (तेज़?) ढांचे थे तो यह बेहतर होगा; लेकिन यह बहुत कम महत्वपूर्ण है, क्योंकि nginx/memcached टीम लोड के सबसे बड़े हिस्से को अवशोषित करती है।

ध्यान दें कि यदि AJAX ट्रैफ़िक के लिए आपकी यूआरएल योजना अच्छी तरह से डिज़ाइन की गई है (REST सबसे अच्छा है, IMHO), तो आप अधिकांश डीबी को मेमकैच में सही रख सकते हैं, और कोई भी पोस्ट (जो ऐप को पास करेगा) प्रीपेप्टिव अपडेट कर सकता है कैश

3

डीबी प्रश्न पर, मैं कहूंगा कि PostgreSQL स्केल बेहतर है और MySQL की तुलना में बेहतर डेटा अखंडता है। एक छोटी सी साइट के लिए MySQL तेज हो सकता है, लेकिन जो मैंने सुना है उससे यह महत्वपूर्ण रूप से धीमा हो जाता है क्योंकि डेटाबेस का आकार बढ़ता है। (नोट: मैंने कभी भी बड़े डेटाबेस के लिए MySQL का उपयोग नहीं किया है, इसलिए आपको इसकी स्केलेबिलिटी के बारे में दूसरी राय मिलनी चाहिए।) लेकिन PostgreSQL निश्चित रूप से अच्छी तरह से स्केल करता है, और उच्च ट्रैफ़िक साइट के लिए एक अच्छा विकल्प होगा।

+0

को वोट किया, धन्यवाद, मुझे लगता है कि मैं अजगर के साथ जाना होगा, PostgreSQL के साथ जाना होगा – daniels