ट्रैफिक के पहुंचने से पहले बोतलनेक नोड पहचाना जाता है
बीचेनेस सेंट्रलिटी
हर जोड़ टू नोड्स के लिए एक ग्राफ में, उनके बीच का सबसे छोटा मार्ग होता है। बीचेनेस सेंट्रलिटी का एक नोड N = सभी सबसे छोटे मार्गों की संख्या जो N के माध्यम से गुजरते हैं।
एक नोड जो उच्च बीचेनेस का हो, वह कई अन्य जोड़ियों के बीच मार्ग पर होता है। अगर वह धीमा होता है, तो कई फ्लो धीमे होते हैं। अगर वह विफल होता है, तो कई फ्लो टूट जाते हैं।
अर्किटेक्चरल पढ़ने: उच्च-बीचेनेस नोड्स वह होते हैं जिन पर हर आर्किटेक्चर रिव्यू को विशेष ध्यान देने की जरूरत होती है। वे बोतलनेक, एसपीओएफ, और एक में कैपेसिटी-क्रिटिकल कंपोनेंट होते हैं। वे आमतौर पर:
- DNS प्रोवाइडर (प्रत्येक क्लाइंट और प्रत्येक सेवा के बीच)
- इंग्रेस प्रॉक्सी (प्रत्येक क्लाइंट और प्रत्य每 बैकएंड के बीच)
- डेटाबेस प्राइमरी (प्रत्येक बैकएंड और प्रत्येक रीड के बीच)
- ऑथेंटिकेशन सेवा (प्रत्येक यूजर और प्रत्येक अनुमत कार्रवाई के बीच)
डिटेक्शन बिना माप के: ग्राफ टॉपोलॉजी ही उच्च-बीचेनेस नोड्स को पहचानती है। आपको ट्रैफिक डेटा की जरूरत नहीं है, आपको आर्किटेक्चर डाइग्राम की जरूरत है। एक नोड जो कई अन्य जोड़ियों के बीच में बैठा हो, वह संरचनात्मक रूप से महत्वपूर्ण है।
परिचालन परिणाम: उच्च-बीचेनेस नोड्स को (1) कैपेसिटी हैडरूम, (2) रिडंडेंसी, (3) अवसंरचना, और (4) इवेंट रिस्पांस प्लेबुक्स में असामान्य निवेश का हकदार होते हैं।
(बीचेनेस सेंट्रलिटी: हाइलाइट किया गया नोड सबसे छोटे मार्गों के अधिकांश पर बैठा है)
दो नोड्स के बीच का सबसे छोटा कट छोटे स्लाइस को अलग करता है
मिन-कट थियरम प्लेन टर्म्स में
दो नोड्स के बीच का मिन-कट एक ग्राफ में = आपको उन्हें अलग करने के लिए सबसे कम संख्या में एज (या नोड) हटाना होगी।
प्रचालनीय पढ़ने: min-cut सबसे खराब संभव विस्फोटक क्षेत्र को बाधित करता है। यदि 'क्लाइंट्स' और 'डेटाबेस' के बीच min-cut 1 एज (एक सिंगल प्रॉक्सी) है, तो उस एज को खोने पर सभी क्लाइंट डेटाबेस से विभक्त हो जाते हैं। यदि min-cut 5 है, तो आपको पूरी तरह से विभक्त होने के लिए 5 घटक एक साथ खोने की आवश्यकता होती है; बुरी किस्मत, लेकिन सीमित।
डिज़ाइन करने के लिए विस्फोटक क्षेत्र: हर महत्वपूर्ण सीमा पर min-cut को बढ़ाएं। कई प्रॉक्सीज़; कई क्यू-नोड्स; DCs के बीच कई नेटवर्क पथ। प्रत्येक जोड़ता है कि min-cut को 1 से बढ़ा देता है।
ग्राफ़ पैटर्न में बुल्कहेड पैटर्न: संसाधनों को अलग-अलग उप-ग्राफ में विभाजित करें जो एक-दूसरे के साथ साझा नहीं करते हैं। एक उप-ग्राफ में विफलता दूसरों में प्रसार नहीं कर सकती क्योंकि किन्ताएँ नहीं हैं।
डायामीटर सेट्स विफलता प्रसार दूरी निर्धारित करता है।
ग्राफ़ डायामीटर = किसी भी दो नोड्स के बीच सबसे लंबी सबसे छोटी रास्ता।
विफलता प्रसार: जब एक नोड फेल होता है और प्रवाह वापस आता है, तो वे टच करते हैं अपस्ट्रीम नोड्स लंबाई की दूरी तक जो कि विस्फोटक क्षेत्र को बाधित करता है। एक डायामीटर-3 प्रणाली (क्लाइंट -> प्रॉक्सी -> बैकेंड -> डीबी) का अर्थ है कि एक डीबी विफलता 3 अपस्ट्रीम परतों में विस्फोटक क्षेत्र का प्रसार करती है।
निहितार्थ: छोटा डायामीटर = तेज विफलता निरस्तीकरण लेकिन अधिक नोड कंसंट्रेशन। प्रत्येक डिज़ाइन के लिए अपना व्यापार होता है।
कंप्यूटर मिन-कट के लिए एक वास्तविक आर्किटेक्चर
एक आर्किटेक्चर: 1 DNS, 1 CDN, 3 रिवर्स प्रॉक्सीज़, 12 बैकेंड रिप्लिका, 1 डीबी प्राइमरी।
ग्राफ़ मेट्रिक्स के माध्यम से विफलता मोड ऑडिट
सिंथेसिस
अब आप उच्च-बीचनेस नोड्स को पहचान सकते हैं, प्रत्येक सीमा पर min-cut को कंप्यूट कर सकते हैं, और डायामीटर के माध्यम से विफलता प्रसार दूरी का अनुमान लगा सकते हैं।
सभी तीन का उपयोग करें।
एक प्रणाली: 50 ग्राहक अंतपॉइंट्स -> 1 DNS -> 2 CDN POPs -> 4 विपरीत प्रॉक्सी -> 16 पीछे के प्रतिलिपियों -> { डीबी क्लस्टर (1 प्राथमिक + 2 स्थायी), रेडिस क्लस्टर (5 नोड्स), 3 बाह्य एपीआई }.
साथी टिप्पणियाँ
साथी टिप्पणियाँ
यह ज्यामिति-of पाठ फेलियर मोड्स एंड ब्लास्ट रेडियस मुख्य पाठ को ग्राफ़ मेट्रिक्स (बीचनेस, min-cut, डायामीटर) के माध्यम से पुनर्संगठित करता है।
अंतिम साथी, geometry_of_observability_and_capacity, CDN PoP कैचमेंट के लिए Voronoi कोशिकाएँ, लेटेंस ट्रायंगल की लाइट-स्पीड फ्लोर, और प्रॉक्सी टियर पर क्यू-इन कर्व को फिर से देखता है।
अच्छा काम।