2009-07-12 12 views
8

मैं वेबसाइट स्केलेबिलिटी दायरे में नया हूं। क्या आप मुझे बड़ी संख्या में उपयोगकर्ताओं को वेबसाइट स्केलेबल बनाने के लिए कुछ तकनीकों का सुझाव दे सकते हैं?एक स्केलेबल वेबसाइट लिखने के लिए तकनीक

उत्तर

10

यदि आप उम्मीद करते हैं कि आपकी साइट एक सर्वर की क्षमताओं से परे स्केल करेगी तो आपको सावधानीपूर्वक योजना बनाने की आवश्यकता होगी। डिज़ाइन ताकि निम्नलिखित संभव हो: -

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

इसके अलावा, आप जो भी कर सकते हैं, वह आपकी साइट पर तनाव का परीक्षण कर रहा है, पता लगाएं कि बाधाएं कहां हैं और उन्हें दूर करने की कोशिश करें।

+1

सहमत हैं, मैं बस जोड़ता हूं कि बड़ी साइट बनाने के दौरान आपको कैशिंग संभवतः पहली चीज करना चाहिए। – usoban

+0

हां। सुनिश्चित करें कि MySQL की कैश सुविधाओं को अच्छी तरह से स्थापित किया गया है, और अपने कोड के लिए एक मजबूत कैश का उपयोग करें। अन्य उत्तरों में कई उल्लेख किए गए हैं जो उत्कृष्ट हैं। –

17
  1. भारी लोड के तहत अपनी वेबसाइट का परीक्षण करें।
  2. मॉनिटर सभी आँकड़े
  3. ढूँढें टोंटी
  4. फिक्स टोंटी

सौभाग्य

3

पर वापस जाएं आप इस संसाधन highscalability.com को देखने के लिए चाहते हो सकता है।

0

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

विशेष पेज 8 और उससे आगे से

जीएल

1

बहुत समान: How Is PHP Done the Right Way?

अनुमापकता कोई छोटी विषय और से यथोचित एक भी प्रश्न में कवर किया जा सकता निश्चित रूप से अधिक सामग्री है।

उदाहरण के लिए, कुछ प्रकार के अनुप्रयोगों के साथ, एसक्यूएल में स्केल नहीं होता है, जो कैशिंग और शेर्डिंग रणनीतियों के सभी प्रकार लाता है।

बीनस्टॉक उच्च प्रदर्शन PHP साइटों में एक और स्केलेबिलिटी और प्रदर्शन उपकरण है। जैसा कि memcache (विभिन्न प्रकार) है।

1

महत्व के क्रम में:

  1. आप PHP चलाते हैं, APC की तरह एक opcode कैश का उपयोग करें।

  2. उपयोग YSlow या Google Page Speed बाधाओं की पहचान के लिए (यह काफी महत्वपूर्ण हो निर्मित पीएचपी की अगली पीढ़ी में। है)। (यह आपकी वेबसाइट के साथ संरचनात्मक समस्याओं को प्रकट करेगा जो क्लाइंट और सर्वर दोनों प्रदर्शनों को प्रभावित करते हैं।)

  3. सुनिश्चित करें कि आपका वेब सर्वर स्थैतिक सामग्री (छवियों, जावास्क्रिप्ट, सीएसएस) के लिए उचित समाप्ति शीर्षलेख भेजता है, जैसे ब्राउज़र कैश कर सकता है यह ठीक से है। (YSlow आपको इसके बारे में भी चेतावनी देगा।)

  4. Varnish जैसे HTTP त्वरक का उपयोग करें। (This picture यह सब कहते हैं - और वे पहले से ही जगह में एक HTTP त्वरक था ।)

2

लोगों ने बाधाओं की पहचान करने के लिए उपकरणों का उल्लेख किया है, और कहा कि आवश्यक निश्चित रूप से है। आप बिना किसी धीमे कहने के उत्पादक समय को कुछ तेज़ नहीं कर सकते हैं। लेकिन आपको जिस चीज को जानने की जरूरत है वह यह है कि आपका लक्ष्य स्केलेबिलिटी कहां है। क्या यह पैसे के लिए मूल्य है कि आपकी साइट स्केल को उपयोगकर्ताओं के समान संख्या में उपयोगकर्ताओं के रूप में बनाने के लिए ट्विटर के रूप में उपयोग किया जाए, यदि यह एचआर में तीन लोगों द्वारा उपयोग किया जा रहा है? क्या आपके पास उत्पाद की आवश्यकताओं में लेनदेन की एक ज्ञात दर, या प्रतिक्रिया विलंबता, या उपयोगकर्ताओं की संख्या है? यदि ऐसा है, तो उन नंबरों को अपनी अनुकूलन रणनीति के साथ लक्षित करें। यदि नहीं, छेद के नीचे प्रदर्शन चूहे का पीछा करने से पहले उन को ढूंढें।

1

स्केलेबिलिटी के लिए सबसे बड़ी समस्या आमतौर पर डीबीएमएस की तरह संसाधन साझा की जाती है। समस्या उत्पन्न होती है क्योंकि डीबीएमएस के पास आमतौर पर स्थिरता गारंटी को आराम करने का कोई तरीका नहीं होता है।

यदि आप माईएसक्यूएल जैसे कुछ का उपयोग करते हैं तो स्केलेबिलिटी बढ़ाना चाहते हैं तो आपको स्थिरता को आराम करने के लिए अपना स्कीमा डिज़ाइन बदलना होगा।

उदाहरण के लिए, आप लेखन के लिए अपने सामान्यीकृत डेटा मॉडल, और पढ़ने के आपरेशन के 90% के लिए एक दोहराया केवल पढ़ने के लिए denormalized हिस्सा है करने के लिए अपने डेटाबेस स्कीमा अलग कर सकते हैं। केवल पढ़ने के लिए डेटा कई सर्वरों पर फैल सकता है।

डेटाबेस की स्केलेबिलिटी बढ़ाने का एक और तरीका डेटा को विभाजित करना है, उदा। डेटा को प्रत्येक विभाग के लिए डेटाबेस में अलग करें और उन्हें या तो ओआरएम या डीबीएमएस में एकत्र करें।

+0

ओआरएम परत पर डेटा एकत्र करने से अनुप्रयोग स्तर की जटिलता शुरू होती है जो रूबी और PHP जैसी भाषाओं के लिए धीमी हो सकती है। इसके अलावा, इसे प्रबंधित करना कठिन है। –

0

अन्य सुझावों के अलावा,, स्तरों में अपनी साइटों बंटवारे multitier architecture के रूप में देखो। यदि सही हो, तो आप प्रति सर्वर एक सर्वर का उपयोग कर सकते हैं।

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