2009-02-21 16 views
15

मैंने विभिन्न स्रोतों से सुना है कि जावा ईई अत्यधिक स्केलेबल है, लेकिन मेरे लिए ऐसा लगता है कि आप जावा ईई एप्लिकेशन को Google सर्च इंजन या किसी अन्य बड़ी वेबसाइट के स्तर पर कभी भी स्केल नहीं कर सकते।जावा ईई स्केलेबल क्यों है?

मैं तकनीकी कारणों को सुनना चाहता हूं कि यह इतना स्केलेबल क्यों है।

+0

मुझे उन "विभिन्न स्रोतों" को देखना अच्छा लगेगा जो दावा करते हैं कि यह स्केलेबल है। :) – cletus

+0

सूर्य की वेबसाइट: "सादगी, पोर्टेबिलिटी, स्केलेबिलिटी और विरासत एकीकरण के साथ, जे 2 ईई मंच उद्यम समाधान के लिए मंच है।" http://java.sun.com/j2ee/overview.html – Uri

+0

ठीक है, सूर्य शायद ही एक निष्पक्ष वकील है। :) – cletus

उत्तर

23

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

यदि आप सादे पुराने जावा में मैन्युअल रूप से चीजों में कामयाब रहे, तुम बाहर आदि बंदरगाहों खोलने, राज्यों को सिंक्रनाइज़,

द्वारा उदाहरण के लिए, इस खुद के सभी लगाने की मुझे यकीन है कि आप गूगल निर्धारित कर सकते हैं नहीं कर रहा हूँ के लिए होता है एक "बड़ी वेबसाइट" के रूप में। यह आपके कार्यालय लैन में इंटरनेट की तरह होगा। जावा ईई वैश्विक स्तर पर स्केल करने के लिए नहीं था, यही कारण है कि अमेज़ॅन और Google जैसी साइटें अपनी तकनीक का उपयोग करती हैं (उदाहरण के लिए, मैपरेडस के उपयोग के साथ)।

जावा ईई स्केलेबिलिटी की दक्षता पर चर्चा करने वाले कई कागजात हैं। उदाहरण this

+0

उद्धृत पेपर http://www.cin.ufpe.br/~redis/middleware/brebner-j2se03 से भी निःशुल्क उपलब्ध है।पीडीएफ – asmaier

+2

पेपर के सार से: हमने पाया है कि जे 2 ईई तकनीक बहुत स्केलेबल है ... ** डेटाबेस में बाधा बनने से रोकने के लिए पर्याप्त संसाधन हैं **। – asmaier

3

एक क्या आधार ढांचा (जावा EE) की तरह प्रदान करता है की दृष्टि से एक स्केलेबल वास्तुकला पर दिखाई दे सकता है के लिए। लेकिन यह सिर्फ शुरुआत है।

स्केलेबल इंफ्रास्ट्रक्चर के लिए डिज़ाइनिंग एक वास्तुशिल्प कला है। यह प्रक्षेपण की कला की तरह है ... जब यह वास्तविक बड़ा उड़ाया जाता है तो यह कैसे व्यवहार करेगा। आधार प्रश्न हैं:

  • मैं आमतौर पर कहां से सामान प्राप्त करता हूं ताकि जब बहुत से लोग इसके लिए पूछ रहे हों, मुझे इसके लिए इतना समय नहीं जाना है (कैश)?
  • मैं प्रत्येक व्यक्ति की सामग्री कहां रखूं ताकि जब बहुत से व्यक्तियों को सामान की आवश्यकता हो, तो मुझे उन सभी को प्रबंधित करने में परेशानी नहीं होगी।
  • मुझे याद है कि आखिरी बार यहां एक व्यक्ति ने क्या किया था, क्योंकि वे पिछली बार उसी विशेष नोड पर वापस नहीं आ रहे हैं।
  • यदि बहुत से लोग इसका अनुरोध कर रहे हैं तो मुझे कब तक चलने की प्रक्रिया (ब्लॉक) की प्रतीक्षा करनी होगी?

... इस तरह की चीज एक ढांचा लपेट सकती है उससे परे है। दूसरे शब्दों में, ढांचा स्केलेबल हो सकता है लेकिन उत्पाद को स्केल करने के लिए बहुत तंग किया जाता है।

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

संदर्भ की अधिकता के लिए,

1

"अनुमापकता के लिए डिजाइनिंग" "तुम क्या जब आपके आवेदन अब एक ही कंप्यूटर में फिट नहीं करता है जाएगा?" के बारे में "scalability" बात वार्ता के लिए गूगल खोज करें।

स्केलेबल एप्लिकेशन एक से अधिक कंप्यूटरों पर बढ़ सकते हैं।

नोट बड़े सर्वर और स्मृति के बहुत सारे CPU के बहुत से बहुत बड़ी अनुप्रयोगों है कि कर सकते हैं - http://www.sun.com/servers/highend/m9000/ या http://www-03.ibm.com/systems/i/hardware/595/index.html देखते हैं - लेकिन यह आमतौर पर आवेदन उन पर प्रसार के साथ छोटे सर्वर के बहुत सारे होने से ज्यादा महंगा है।

+0

वास्तव में मुख्य रूप से मेनफ्रेम पीसी सर्वर क्लस्टर से अधिक सस्ता प्रसंस्करण-अधिक लागत गणना करते समय सस्ता हैं। –

+0

निर्भर करता है। आपके मन में क्या परिदृश्य है? –

6

जावा ईई स्केलेबल बनाता है जो कुछ भी स्केलेबल बनाता है: चिंताओं को अलग करना। चूंकि आपके प्रसंस्करण या आईओ को बढ़ने की जरूरत है, आप नए हार्डवेयर को जोड़ सकते हैं और लोड को अर्ध-पारदर्शी रूप से पुन: वितरित कर सकते हैं (ज्यादातर ऐप के लिए पारदर्शी, कॉन्फ़िगरेशन बंदरों के लिए स्पष्ट रूप से कम) क्योंकि पृथक, पृथक चिंताओं को पता नहीं है या उनकी परवाह है कि वे ' एक ही भौतिक हार्डवेयर या क्लस्टर में विभिन्न प्रोसेसर पर फिर से करें।

आप किसी भी भाषा या निष्पादन मंच में स्केलेबल अनुप्रयोगों बना सकते हैं। (हां, यहां तक ​​कि प्राचीन सिस्टम 370 मेनफ्रेम पर भी COBOL।) जावा ईई (और अन्य, स्वाभाविक रूप से - जावा ईई इस संबंध में शायद ही अद्वितीय है!) आपको आसानी से (अपेक्षाकृत बोलने) की क्षमता देता है आपके लिए भारी भारोत्तोलन करके।

जब मेरा वेब ऐप कुछ व्यावसायिक तर्क करने के लिए एक ईजेबी का उपयोग करता है, तो कहें कि ईजेबी एक ही सीपीयू में एक अलग कोर पर, एक ही सीपीयू में, एक अलग सीपीयू पर, या चरम मामलों में, एक ही सीपीयू कोर पर हो सकता है, शायद ग्रह भर में भी। मुझे नहीं पता और, अधिकांश भाग के लिए, बशर्ते प्रदर्शन वहां है, मुझे परवाह नहीं है। इसी तरह जब मैं संदेश प्राप्त करने के लिए संदेश बस पर एक संदेश भेजता हूं, तो मुझे नहीं पता और न ही मुझे यह पता चलता है कि वह संदेश कहां जाता है, कौन सा घटक प्रसंस्करण करता है और जहां यह प्रसंस्करण होता है, तब तक जब तक प्रदर्शन मेरे भीतर आता है की जरूरत है। विन्यास बंदरों के लिए काम करने के लिए यह सब कुछ है। तकनीक इस परमिट करती है और उपकरण यह निर्धारित करने के लिए होते हैं कि सिस्टम को आकार में स्केल करने के रूप में स्वीकार्य प्रदर्शन कहां प्राप्त करना है।

अब जब मैं कोशिश करता हूं और इसे रोल करता हूं, तो मैं तुरंत समस्याओं से शुरू करता हूं। अगर मैं सभी प्रॉक्सीइंग और शेड्यूलिंग और वितरण और अग्रिम में नहीं सोचता, तो जब मेरा ऐप एक मशीन की हैंडलिंग की सीमाओं से परे फैलता है तो अब मेरे पास कुछ बड़े स्थान पर स्थानांतरित होता है क्योंकि मैं कुछ एप्लिकेशन को दूसरे बॉक्स में स्थानांतरित करता हूं। और फिर हर बार मेरी क्षमताओं में वृद्धि होती है मुझे इसे बार-बार करना पड़ता है।

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

तो जावा ईई (और अन्य ढांचे) तालिका में क्या लाते हैं स्केलेबल अनुप्रयोग बनाने की सामान्य आवश्यकताओं के लिए प्री-लिखित बॉयलरप्लेट है। इन पर मेरे ऐप्स लिखने से यह गारंटी नहीं मिलती है कि वे स्केलेबल होंगे, बेशक, लेकिन ढांचे में लेखन करने के लिए स्केलेबल ऐप्स बहुत आसान हैं।

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