2016-02-07 8 views
5

मैं हॉट कोड परिनियोजन के लिए ग्रहण सर्वर क्षमता का उपयोग कर रहा हूं। वेब सर्वर के रूप में tomcat का उपयोग करना। लेकिन मुझे यकीन नहीं है कि यह कैसे काम करता है। मेरी अपनी समझ है कि इसे आंतरिक रूप से कैसे काम करना चाहिए।कितनी गर्म तैनाती आंतरिक रूप से काम करती है?

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

क्या मेरी समझ सही है?

this जैसे कुछ लिंक कहते हैं कि ग्रहण गर्म परिनियोजन केवल पुनर्वितरण का स्वचालन है। मेरा मानना ​​है कि इसका मतलब यह है कि ग्रहण स्वचालित रूप से सर्वर को रोकता है, पुन: प्रकाशित करता है और डेवलपर हस्तक्षेप के बिना इसे पुनरारंभ करता है। बुटी मुझे लगता है कि यह सच नहीं है क्योंकि यह प्रक्रिया प्रारंभ/प्रकाशित/पुनरारंभ करने की तुलना में वास्तव में त्वरित है। अगर यह सच भी होता, तो कैसे सत्र और अन्य लाइव ऑब्जेक्ट पुनरारंभ करने के बाद लाइव रहेंगे? यह लिंक अतीत में सच था लेकिन अब मुझे जार में कक्षाओं के लिए गर्म तैनाती के काम नहीं मिलते हैं,

+2

संभावित डुप्लिकेट [क्या हॉट तैनाती को "हार्ड समस्या" बनाता है?] (Http://stackoverflow.com/questions/660437/what-makes-hot-deployment-a-hard-problem) –

+0

@ivan इसकी नहीं डुप्लिकेट आपके द्वारा उल्लिखित लिंक गर्म तैनाती के आंतरिक के बारे में नहीं है, लेकिन इसके बारे में वह – emilly

+0

चुनौती देता है इसका स्वीकार्य उत्तर आंतरिक रूप से क्या हो रहा है, यह समझाता है। शायद आपको और भी विवरण की आवश्यकता है लेकिन यह एक और मामला है। –

उत्तर

2

हॉट कोड परिनियोजन रनटाइम क्षमताओं पर निर्भर करता है। इसका जवाब यह है कि linked का मतलब यह नहीं है कि स्वचालन सर्वर को नए कोड को तैनात करता है और सर्वर को फिर से शुरू करता है। यह अपमानजनक होगा।

इसके बजाए, अधिकांश जावा एप्लिकेशन सर्वर एप्लिकेशन को पुन: नियोजित एप्लिकेशन में सक्षम हैं। इसका मतलब है कि सर्वर एक नया वेब एप्लिकेशन क्लास लोडर बनाएगा, इस नए क्लास लोडर द्वारा एप्लिकेशन का नया संस्करण लोड करेगा, कुछ मामलों में यह राज्य माइग्रेट करेगा (HTTP सत्र को क्रमबद्ध/deserialize), और एप्लिकेशन के पुराने संस्करण को छोड़ दें ।

अब पुनर्वितरण की गति एप्लिकेशन पर बहुत निर्भर करती है - एप्लिकेशन को कैसे प्रारंभ किया जाता है। क्या इसे कैश गर्म करना है? क्या इसे निर्भरताओं को पूरा करना है (ए-लास स्प्रिंग, सीडीआई)? क्या इसे हाइबरनेट सत्र कारखाना शुरू करना है? कई कारक शामिल हैं।

स्वाभाविक रूप से ग्रहण WTP क्या करता है यह है कि यह एप्लिकेशन कंटेनर के लिए पुनर्वितरण प्रक्रिया को ट्रिगर कर सकता है - यही वह है। एक छोटे से आवेदन को निश्चित रूप से पुन: नियोजित करने में लंबा समय नहीं लगेगा।

जब तक कोई विशेष रनटाइम तकनीक/कंटेनर/फ्रेमवर्क नहीं होता है और वहां एक विशिष्ट कनेक्टर होता है जो एक्लिप्स के लिए एक हुक का लाभ उठाने के लिए विकसित होता है जो उस विशिष्ट तकनीक के लिए हॉट कोड को ट्रिगर करेगा। OSGi रनटाइम के लिए bndtools का एक अच्छा उदाहरण है।

और बस कुछ भ्रम की स्थिति को दूर करने के:

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

तो मेरा जवाब गर्म तैनाती के बारे में है, और HotSwap के बारे में नहीं है। इसलिए मैं मंच की मौलिक तंत्र की बजाय गर्म तैनाती को "स्वचालन" के रूप में संदर्भित करता हूं।

+0

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

+0

आपने कहा कि दूसरा बिंदु यह है कि 'कुछ मामलों में यह राज्य माइग्रेट करेगा (HTTP सत्र को क्रमबद्ध/deserialize),', मेरा सवाल यह सत्र वस्तुओं से अलग डोमेन/सेवा वस्तुओं जैसे अन्य वस्तुओं की स्थिति माइग्रेट करता है? – emilly

+0

@emily ग्रहण पूर्ण आवेदन पुनर्वितरण ट्रिगर करता है। राज्य प्रवासन के संबंध में - यह पूरी तरह कार्यान्वयन विशिष्ट होना चाहिए। मैंने HTTP सत्र के अलावा माइग्रेट किए जाने वाले किसी भी अन्य राज्य को नहीं देखा है। –

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