2012-03-26 7 views
6

मेरे पास सहकर्मियों का एक छोटा समूह है (उदाहरण के लिए 10 नोड्स) पहले ही प्रकाशन और संदेशों के लिए सदस्यता ले रहे हैं। यह ठीक काम कर रहा है। क्लस्टर स्थिर है और प्रत्येक नोड अन्य नोड्स का पता जानता है।ØMQ के साथ साथियों के बीच एसिंक नो-उत्तर संदेश भेजने का सबसे अच्छा तरीका क्या है?

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

इसे लागू करने के लिए किस प्रकार के पैटर्न और सॉकेट प्रकार का उपयोग किया जा सकता है?

मैं ØMQ के लिए काफी नया हूं, और गाइड से Freelance Pattern देखा है, अधिक विशेष रूप से Model Three - Complex and nasty। मेरे मामले में उपयुक्त वर्णित राउटर-रूटर दृष्टिकोण का उपयोग कर रहा है?

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

क्या मुझे ऐसा करने का कुछ आसान तरीका याद आया है? ऊपर दिए गए दृष्टिकोण का उपयोग शायद थोड़ा जटिल लगता है क्योंकि मुझे वास्तव में उत्तर भेजने की क्षमता प्राप्त करने की क्षमता देने के लिए हैंडशेक प्रक्रिया की आवश्यकता नहीं है।

उत्तर

2

एक उत्तर की जरूरत के बिना एक सहकर्मी के लिए काम भेजने के लिए, मैं शायद सिर्फ एक फैनआउट पैटर्न है, जो आपको और अधिक प्रभावी ढंग "आग और भूल जाओ" करने देगा का उपयोग करेंगे।/उत्तर पैटर्न

रूटर और डीलर वास्तव में वहाँ एक "विस्तारित" अनुरोध में "डिवाइस" श्रेणी के लिए कर रहे हैं।

+0

शायद मुझे यहां कुछ याद आ रहा है, लेकिन प्रशंसक ने मुझे केवल एक विशिष्ट नोड को संदेश भेजने दिया है? – tle

+2

आप नोड्स की एक श्रृंखला के बजाय केवल एक नोड पुल कर रहे होंगे। दूसरे शब्दों में, जब आपको "विशिष्ट नोड" उपयोग केस को नियोजित करने की आवश्यकता होती है, तो आपके पास एक एकल पुश और एकल पुल जोड़ी होती है। पुश करने पर कोई उम्मीद नहीं है कि आपको बदले में कुछ भी मिलता है, इसलिए मेरे दिमाग में यह आरईक्यू/आरईपी की तुलना में बेहतर एसिंक रूपक है। आप सिंगल नोड्स के बीच एक PUB/SUB भी कर सकते हैं यदि आप अभी भी जो कुछ भी प्राप्त कर चुके हैं उसका पुन: उपयोग करना चाहते हैं, आर्किटेक्चररी। – Shaun

+1

दस्तावेज़ के नीचे प्राप्तकर्ता कम होने पर पुश-पुल संदेश नहीं छोड़ेंगे, जिसका अर्थ है कि आपका रिमोट नोड नीचे जाता है (जो सहकर्मी आप भेज रहे हैं) और वापस आ जाता है, इसे पुराने संदेशों का समूह मिल जाएगा। आप निश्चित रूप से प्राप्तकर्ता की अप-डाउन स्थिति (दिल की धड़कन या समकक्ष के माध्यम से) का ट्रैक रखकर, और नोड के नीचे जाने के साथ ही पुश सॉकेट को बंद करके (इस समस्या से = 0 संभवतः) बंद करके इस समस्या को कम कर सकते हैं। –

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