2017-09-12 15 views
10

मैं ऐसे एप्लिकेशन पर काम कर रहा हूं जो प्रायः बहुत बड़ी संख्या में अभिनेताओं से पूछताछ करता है और इसलिए बहुत बड़ी संख्या में संदेश भेजता/प्राप्त करता है। जब एक मशीन पर एप्लिकेशन चलाया जाता है तो यह कोई मुद्दा नहीं है क्योंकि संदेशों को एक एकल जेवीएम की सीमाओं के भीतर भेजा जाता है जो काफी तेज़ है। हालांकि, जब मैं एकाधिक नोड्स (अक्का-क्लस्टर का उपयोग करके) पर एप्लिकेशन चलाता हूं तो प्रत्येक नोड इन कलाकारों का हिस्सा होस्ट करता है और संदेश नेटवर्क पर जाते हैं जो बेहद धीमी हो जाती है।अक्का क्लस्टरिंग - एक प्रबंधक अभिनेता प्रति नोड

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

+0

आपको ओपनएमपी का उपयोग करने की आवश्यकता हो सकती है, आप Google "openmpi जावा उदाहरण" – caot

उत्तर

2

आप इसे प्राप्त करने के लिए अक्का के Distributed Publish-Subscribe का उपयोग कर सकते हैं। इस तरह आप बस प्रत्येक नोड पर एक प्रबंधक अभिनेता को सामान्य तरीके से शुरू करते हैं, उन्हें किसी विषय की सदस्यता लेते हैं, और फिर उस विषय विषय का उपयोग करके उन्हें संदेश प्रकाशित करते हैं। ऊपर लिंक किए गए दस्तावेज़ों में इसका एक सरल उदाहरण है।

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