2016-11-25 10 views
10

हम इन सूक्ष्मदर्शी दर्जनों (ज्यादातर अक्का आधारित हैं) के साथ खत्म होने जा रहे हैं, और मुझे यकीन है कि उनकी तैनाती का सर्वोत्तम प्रबंधन कैसे किया जाए। विशेष रूप से, वे एक-दूसरे से स्वतंत्र और यथासंभव विशिष्ट और वितरित होने के लिए बनाए जाते हैं।स्कैला/अक्का माइक्रोस्कोप को तैनात करने का कैननिक तरीका क्या है?

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

वर्तमान में, मैं उन्हें "कंटेनर" अनुप्रयोगों में कुछ हद तक यादृच्छिक रूप से समूहित करता हूं, और फिर इन कंटेनर अनुप्रयोगों को बड़े JVMs पर चलाता हूं।

हालांकि, एक बेहतर तरीका होना चाहिए। मुझे अक्का के लिए किसी भी एप्लिकेशन सर्वर से अवगत नहीं है, जहां आप केवल "अभिनेताओं को तैनात कर सकते हैं", इसलिए मैं कुछ अंतर्दृष्टि प्राप्त करना चाहता था कि अन्य लोग उत्पादन में अक्का माइक्रोसाइसेस कैसे चलाते हैं (और विशेष रूप से तैनाती का प्रबंधन कैसे करें)।

यह शायद स्कैला और अक्का तक सीमित नहीं है, लेकिन अधिकांश अन्य प्लेटफॉर्मों ने ऐप सर्वर समर्पित किए हैं जहां आप इन चीजों को तैनात करते हैं।

+0

अक्का क्लस्टरिंग पर एक नज़र डालें और रूटिंग। रूटर कॉन्फ़िगरेशन के आधार पर कई रूट्स को तैनात कर सकते हैं और क्लस्टर आपके राउटर को चलाने के लिए नोड्स का एक गुच्छा प्रदान करेगा। यहां वर्णित कई विकल्प: http://doc.akka.io/docs/akka/current/scala/cluster-usage.html –

उत्तर

2

आईएमएचओ, कैननिकल तरीका एक सेवा ऑर्केस्ट्रेशन टूल का उपयोग करना है, और यह वास्तव में उन्हें व्यक्तिगत प्रक्रियाओं में चलाएगा, प्रत्येक अपने स्वयं के JVM के साथ। यही एकमात्र तरीका है जिसे आप माइक्रोसर्विसेज के साथ डिकूप्लिंग, अलगाव, लचीलापन प्राप्त करते हैं, केवल इस तरह से आप उन्हें तैनात, अपडेट, स्टॉप, व्यक्तिगत रूप से शुरू करने में सक्षम होंगे।

आप कह रहे हैं:

मेरा प्रश्न यह है कि उन सभी को अपने व्यक्तिगत JVMs के लिए बहुत छोटे हैं की वजह से उपजी; हम उदाहरणों

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

मैं सुझाव है कि आप सेवा आर्केस्ट्रा उपकरण जैसे Lightbend Production Suite/Service Orchestration या Kubernetes

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

+0

धन्यवाद, लुत्ज़, आपके बहुत मूल्यवान इनपुट के लिए। मैं आपके द्वारा उल्लेखित टूल को देखने जा रहा हूं (मैंने पहले कुबेरनेट्स के बारे में सुना है लेकिन किसी कारण से सोचा था कि यह डॉकर कंटेनर के प्रबंधन के लिए अधिक था)। एक मशीन पर एकाधिक जेवीएम चलाने के बारे में - हां, मुझे अच्छी तरह से पता है कि यह संभव है, लेकिन मैंने हमेशा इसे माइक्रोस्कोस के चारों ओर एक पूर्ण जेवीएम चलाने के ऊपरी हिस्से के कारण अनावश्यक रूप से देखा क्योंकि जब वे सभी एक के अंदर दौड़ सकते थे। शायद यह कुछ हद तक पुरानी सोच है, क्योंकि आधुनिक जेवीएम आम तौर पर हल्के होने के लिए सहमत होते हैं। – Ruslan

+0

* "केवल इस तरह से आप तैनात, अद्यतन, रोक सकते हैं, उन्हें अलग-अलग शुरू कर सकेंगे" * यह वास्तव में सच नहीं है। आप एक एकल JVM के भीतर घटकों के अलग जीवन चक्र हो सकते हैं।लचीलापन एक और मामला है, लेकिन फिर मशीन पर एकाधिक जेवीएम के बीच बातचीत गैर-तुच्छ हो सकती है यदि आप सिस्टम संसाधनों की अधिक सदस्यता लेते हैं। – the8472

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

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