2010-07-02 27 views
10

से शुरू करना मैं एरलांग में मास्टर-गुलाम एप्लिकेशन लिखना चाहता हूं। मैं निम्नलिखित बातें मैं वास्तुकला से की जरूरत पर सोच रहा हूँ:रिमोट एरलांग नोड्स

  • दास मर नहीं जाना चाहिए जब गुरु मर जाता है, बल्कि, जबकि मास्टर नीचे

  • मालिक है इसे करने के लिए फिर से कनेक्ट करने की कोशिश स्वचालित रूप से दूरस्थ नोड्स अगर वे स्वचालित रूप से कनेक्ट नहीं है शुरू कर देना चाहिए या वे नीचे (शायद OTP में पर्यवेक्षक व्यवहार)

वहाँ यह करने के लिए एक OTP उन्मुख व्यवहार है कर रहे हैं? मुझे पता है कि मैं slave:start_link() के साथ रिमोट नोड्स शुरू कर सकता हूं और मैं erlang:monitor() के साथ नोड्स की निगरानी कर सकता हूं, लेकिन मुझे नहीं पता कि इसे gen_server व्यवहार में कैसे शामिल किया जा सकता है।

+0

फ़ंक्शंस erlang: monitor_node/2 और erlang: monitor_node/3 भी उपलब्ध हैं। –

+2

क्या आपने वितरित अनुप्रयोग अनुभाग देखा था? http://www.erlang.org/doc/design_principles/distributed_applications.html – Zed

+0

हमें यहां कुछ स्पष्ट शब्दावली की आवश्यकता है। क्या आप अपने एप्लिकेशन को एकाधिक एर्लैंग वीएम पर वितरित करना चाहते हैं (जो एकाधिक नोड() है) या आप प्रक्रियाओं का गलती सहनशील पेड़ बनाना चाहते हैं? यह आपके प्रश्न से पूरी तरह स्पष्ट नहीं है। –

उत्तर

1

मैं erlang का उपयोग करने के बारे में टिप्पणियों से सहमत हूं: monitor_node और वितरित अनुप्रयोगों का उपयोग।

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

वर्तमान में ऐसा करने के लिए कोई ओटीपी व्यवहार नहीं है। पर्यवेक्षण पेड़ पदानुक्रमित हैं; ऐसा लगता है कि आप कुछ ऐसे चीज की तलाश में हैं जहां आवेदन तर्क के मामले में पदानुक्रम है, लेकिन स्पॉन्गिंग एक पीयर-टू-पीयर आधार (या एक व्यक्तिगत आधार, आपके दृष्टिकोण के आधार पर) किया जाता है।

यदि आप एकाधिक एर्लांग वीएम का उपयोग करना चाहते हैं तो आपको ध्यान से विचार करना चाहिए कि आप कितने भागते हैं, क्योंकि बड़ी संख्या में ओएस स्वैपिंग ओएस प्रक्रियाओं में और बाहर होने के कारण प्रदर्शन समस्याएं हो सकती हैं। सर्वश्रेष्ठ प्रदर्शन के लिए अंगूठे का एक नियम है कि प्रति सीपीयू कोर में एक से अधिक ओएस प्रक्रिया (यानी एक एरलांग वीएम) न हो।

1

यदि आप अन्य कार्यान्वयनों का अध्ययन करने में रुचि रखते हैं, तो बाशो riak_core ढांचे में विकेन्द्रीकृत वितरित अनुप्रयोगों पर एक बहुत अच्छा कदम है।

riak_core_node_watcher.erl इसमें दिलचस्प रोचक नोड अवलोकन कोड है।

खोजें और आप पाएंगे कि talks and presentations about the framework बहुत कुछ हैं।