मेरे पास एक WAR (app.war) और एक कंटेनर (टोमकैट, जेट्टी, ग्लासफ़िश, जो कुछ भी है)। मेरा लक्ष्य कंटेनर पर उसी वेब एप्लिकेशन के सैकड़ों उदाहरणों पर, मांग पर तैनात करना है। इस को प्राप्त करने काकुशलता से एक ही युद्ध (विभिन्न संदर्भ, एक ही कंटेनर) के कई उदाहरणों को कुशलतापूर्वक तैनात करें
http://foo/app1 --> app.war
http://foo/app2 --> app.war
http://foo/app3 --> app.war
...
http://foo/appN --> app.war
कुछ स्पष्ट तरीके:
- बिलाव में, प्रत्येक एप्लिकेशन (appN.xml नाम) के लिए एक context.xml फ़ाइल बनाने, सभी एक ही युद्ध की ओर इशारा करते। अन्य कंटेनरों समान तरीकों इस दृष्टिकोण के साथ
- समस्या है: यह युद्ध N बार विस्फोट हो जाएगा,
- उपयोग सांकेतिक लिंक डिस्क स्थान का एक बहुत ऊपर ले जा रहा webapp/{APP1, APP2, appN} फ़ोल्डर बनाने के लिए app.war के एक विस्फोटित संस्करण की ओर इशारा करते हुए। यह डिस्क स्पेस विस्फोट को रोकता है, लेकिन JVM अब भी कई डुप्लिकेट JARs को स्मृति
- कुछ साझा किए गए lib फ़ोल्डर का उपयोग करें जिसमें अधिकांश जार (और पिछले दो विकल्पों का संयोजन) शामिल है।
मुझे आश्चर्य है कि ऐसा करने के लिए एक बेहतर तरीका है या नहीं। आदर्श रूप से, एक नया उदाहरण बनाना किसी और डिस्क स्थान (सीमांत कॉन्फ़िगरेशन फ़ाइलों के अलावा) नहीं लेना चाहिए और केवल थ्रेड निष्पादन स्टैक और अन्य रनटाइम आवंटन से संबंधित मेमोरी लेना चाहिए।
कोई विचार?
क्या आप एक बहुआयामी ऐप के रूप में एप्लिकेशन के पुनर्लेखन पर विचार करेंगे? यदि बिल्कुल वही युद्ध और कोड के 100 उदाहरण हैं, तो मैं केवल 1 WAR को डिज़ाइन करने पर विचार करूंगा जो मूल संदर्भ में तैनात किया जाएगा? – beny23
@ beny23 एक विस्तृत स्पष्टीकरण मुझे उन चीज़ों के साथ भी मदद कर सकता है जिन पर मैं काम कर रहा हूं। कोई मौका आप एक प्रदान कर सकते हैं? –
मैंने नीचे एक उत्तर पोस्ट किया है, लेकिन यदि आप हमें बताते हैं कि आप ऐसा क्यों करना चाहते हैं, तो मैं बेहतर पोस्ट कर सकता हूं। – ccleve