2017-04-02 5 views
5

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

क्या यह एक व्यवहार्य मॉडल है? क्या मैं इस तरह 1000 टर्मिनल चला सकता हूं? 100 000? मैं किस प्रकार की सीमाओं में कूदना शुरू कर सकता हूं? क्या एरलांग संदेश रूटिंग स्केल करने योग्य है, इस तरह के नेटवर्क को अभी भी निष्पादित करने के लिए पर्याप्त है यदि हमारे पास सॉफ्ट-रीयल टाइम वित्तीय बाजार डेटा बहने वाले डेटा स्ट्रीमिंग कर रहे थे? (ज्यादातर केंद्रीय सर्वर से टर्मिनलों तक, लेकिन टर्मिनल से टर्मिनल तक सीधे चलने वाला एक अच्छा अनुपात संभव है)। हमारे पास एक प्रणाली हो सकती है जहां 100k या उससे अधिक भिन्न "सदस्यता" डेटा चैनल प्रक्रियाएं उपलब्ध थीं, उनमें से कई इनपुट और उत्पादन प्रति सेकंड उत्पादन करते थे।

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

ध्यान दें कि मैं उच्च-गणना प्रक्रियाओं के लिए बंदरगाहों/एनआईएफ का भारी उपयोग करना चाहता हूं।

उत्तर

5

मैं विभिन्न कारणों के लिए इस अवसर का पीछा नहीं करेंगे, जो सभी के वापस सिस्टम की तरह है कि Erlang के वितरण तंत्र के लिए विकसित किया गया था सुनना - एक निष्क्रिय बैकप्लेन पर बोर्डों का एक सेट: "मुफ़्त" स्थानीय बैंडविड्थ और पूरी मशीन एक ही सुरक्षा डोमेन में बैठती है। Erlang वितरण प्रोटोकॉल व्यापक रूप से व्यापक प्रसार और बड़े नेटवर्क पर अच्छी तरह से काम करने के लिए बहुत चिपचिपा है, और यह निश्चित रूप से बहुत असुरक्षित है। जब तक आप नोड्स को एक-दूसरे पर :os.cmd("rm -rf /") निष्पादित करने में सक्षम होना चाहते हैं।

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

2

मैं this ध्यान से पढ़ने की अनुशंसा करता हूं और मैं आपकी सेवा को छोटी माइक्रो-सेवाओं को भी विभाजित करने की अनुशंसा करता हूं।
एक और बेंचमार्क Investigating the Scalability Limits of Distributed Erlang है।
जो Armstorng की किताब प्रोग्रामिंग Erlang में उन्होंने कहा:।
"कुछ साल पहले, जब मैं, मैं PlanetLab साथ काम कर रहा था मैं PlanetLab के लिए उपयोग नेटवर्क था अपना शोध टोपी था, तो मैं खाली स्थापित सभी PlanetLab मशीनों (उनमें से 450 के बारे में) पर Erlang सर्वर।
मुझे वास्तव में पता नहीं था कि मैं मशीनों के साथ क्या करूँगा, इसलिए मैंने बाद में कुछ करने के लिए सर्वर बुनियादी ढांचा स्थापित किया। "
बाहरी बंदरगाहों का उपयोग न करें, आंतरिक ड्राइवरों का उपयोग करें जो सी या सी ++ में लिखे गए हैं।

+0

ठीक है मुझे लगता है कि आप मानते हैं कि प्रत्येक नोड में एन-1 कनेक्शन है जिसका अर्थ है पूरे सिस्टम के लिए n * (n-1)? ऐसा लगता है कि यह तथ्य मेरे प्रस्तावित वास्तुकला को अक्षम बनाता है क्योंकि यह अनिवार्य रूप से जाल है। वास्तव में कोई रूटिंग नहीं है? हां मैं एरलांग मेलिंग सूची से पूछूंगा। –

+1

हां, एन -1 सही है। मैंने कुछ बेंचमार्क की खोज की और मेरे आखिरी संपादन में, मैंने उन्हें पोस्ट में जोड़ा। – Pouriya

+0

आप बाहरी बंदरगाहों का उपयोग क्यों नहीं करेंगे? इसके अलावा, @Pouriya - कृपया बाहरी संदर्भ देकर जवाब न दें। – cdegroot

1

आप erlang आर्किटेक्चर के बारे में जानकारी का एक बहुत कुछ मिल जाएगा इस जवाब है: How scalable is distributed Erlang?

कम जवाब है, वहाँ एक क्लस्टर में नोड्स के एक व्यावहारिक सीमा है, लेकिन इस सीमा काफी आसानी से महासंघों के साथ भंग हो सकता है।

संपादित करें 1/इसके अलावा अधिक मैं इस पुस्तक को पढ़ने के लिए सिफारिश करेंगे: Designing for scalability with Erlang/OTP