Erlang 21 - 7. How to Implement an Alternative Service Discovery for Erlang Distribution

7 एरलांग डिस्ट्रीब्यूशन के लिए एक वैकल्पिक सेवा डिस्कवरी कैसे लागू करें




erlang

7 एरलांग डिस्ट्रीब्यूशन के लिए एक वैकल्पिक सेवा डिस्कवरी कैसे लागू करें

यह खंड बताता है कि एरलांग वितरण के लिए एक वैकल्पिक खोज तंत्र को कैसे लागू किया जाए। डिस्कवरी और डिस्क की खोज के लिए आम तौर पर DNS और Erlang Port Mapper Daemon (EPMD) का उपयोग किया जाता है।

ध्यान दें

Erlang / OTP 21 में वैकल्पिक सेवा खोज तंत्र के लिए समर्थन जोड़ा गया था।

Introduction.१ परिचय

अपने स्वयं के सेवा खोज मॉड्यूल को लागू करने के लिए आपको अपना ईपीएमडी मॉड्यूल लिखना होगा। EPMD module दूसरे नोड का स्थान प्रदान करने के लिए जिम्मेदार है। वितरण मॉड्यूल ( inet_tcp_dist / inet_tls_dist ) IP नोड और अन्य नोड का पोर्ट प्राप्त करने के लिए EPMD मॉड्यूल को कॉल करते हैं। ईपीएमडी मॉड्यूल जो एर्लांग / ओटीपी का हिस्सा है, DNS का उपयोग करके होस्टनाम को हल करेगा और दूसरे नोड का पोर्ट प्राप्त करने के लिए ईपीएमडी यूनिक्स प्रक्रिया का उपयोग करता है। EPMD यूनिक्स प्रक्रिया एक प्रसिद्ध बंदरगाह, पोर्ट 4369 पर अन्य नोड से कनेक्ट करके ऐसा करती है।

7.2 डिस्कवरी मॉड्यूल

खोज मॉड्यूल को नियमित EPMD module के समान एपीआई को लागू करने की आवश्यकता है। हालांकि, ईपीएमडी के साथ संचार करने के बजाय आप अन्य नोड्स के कनेक्शन विवरण जानने के लिए किसी भी सेवा से जुड़ सकते हैं। -epmd_module शुरू करने पर एक खोज मॉड्यूल को -epmd_module सेट करके सक्षम किया जाता है। खोज मॉड्यूल को निम्नलिखित कॉलबैक को लागू करना चाहिए:

start_link/0
डिस्कवरी मॉड्यूल द्वारा आवश्यक किसी भी प्रक्रिया को शुरू करें।
names/1
दिए गए होस्ट के लिए कुलसचिव द्वारा दिए गए रिटर्न नोड नाम।
register_node/2
दिए गए नोड नाम को रजिस्ट्रार के साथ पंजीकृत करें।
port_please/3
दिए गए नोड द्वारा उपयोग किए गए वितरण पोर्ट को वापस करें।

खोज मॉड्यूल निम्नलिखित कॉलबैक को लागू कर सकता है:

address_please/3

दिए गए नोड का पता वापस करें। यदि लागू नहीं किया गया है, तो inet:gethostbyname/1 का उपयोग इसके बजाय किया जाएगा

यह कॉलबैक दिए गए नोड का पोर्ट भी लौटा सकता है। उस स्थिति में port_please/3 छोड़ा जा सकता है।