संतुलन और असफलता लोड करें
संतुलन और असफलता लोड करें
1) उद्देश्य और शर्तें
संतुलन प्रदर्शन और लचीलापन के लिए उदाहरणों/क्षेत्रों/क्षेत्रों में यातायात वितरित करता है।
असफलता - नियंत्रित असफलता।
आरटीओ/आरपीओ - रिकवरी समय उद्देश्य और स्वीकार्य डेटा हानि।
एसएलओ: उपलब्धता/विलंबता का लक्ष्य स्तर; स्वचालित फीलओवर और रोलबैक के लिए "गेट" के रूप में कार्य करता है।
2) परतों को संतुलित करना
2. 1 L4 (TCP/UDP)
पेशेवरों: प्रदर्शन, सादगी, टीएलएस पासथ्रो। विपक्ष: कोई मार्ग समझ/कुकीज़नहीं।
उदाहरण: NLB/GLB, HAProxy/Envoy L4, IPVS।
2. 2 L7 (HTTP/gRPC)
पेशेवरों: पथ मार्ग/हेडर, कैनरी वजन, चिपचिपा। विपक्ष: सीपीयू/विलंबता में अधिक महंगा।
उदाहरण: NGINX/HAProxy/Envoy/Cloud ALB/API गेटवे।
2. 3 वैश्विक
DNS/GSLB: स्वास्थ्य-जांच + भू/भारित प्रतिक्रिया।
Anycast/BGP: दुनिया भर में एक IP, निकटतम घोषणा बिंदु।
सीडीएन/एज: परिधि पर कैश/फीलओवर।
3) वितरण एल्गोरिदम
राउंड-रॉबिन/भारित - मूल।
कम से कम कनेक्शन/विलंबता - "भारी" अनुरोध के लिए।
लगातार हैशिंग - केंद्र सत्र के बिना उपयोगकर्ता/किरायेदार चिपचिपाहट।
हैश-आधारित इलाके - कैश और स्टेटफुल सेवाओं के लिए।
4) सत्र और चिपचिपा
कुकी-चिपचिपा: L7 LB उदाहरण पर लौटने के लिए एक कुकी सेट करता है।
Src-IP चिपचिपा: L4 पर, NAT/CGNAT के साथ बदतर।
सुसंगत हैशिंग: क्षैतिज कैश/चैट के लिए बेहतर।
लक्ष्य: यदि संभव हो, तो स्टेटलेस सेवा करें, अन्यथा - असफलता को सरल बनाने के लिए राज्य (रेडिस/डीबी में सत्र) को बाहर निकालें।
5) विश्वसनीयता: स्वास्थ्य-जांच और रोटेशन से हटाना
सक्रिय जांच: HTTP 200/डीप बिजनेस पाथ प्रोब (उदा। निर्भरता के साथ '/healthz/वापस लेना ')।
निष्क्रिय (बाहरी पहचान): 5xx/टाइमआउट पर बैकएंड इजेक्शन।
वार्म-अप: नए उदाहरणों का चिकना समावेश (धीमी गति से शुरू)।
सुंदर नाली - पूल से निकालें - अनुरोधों को पूरा करने के लिए प्रतीक्षा करें।
NGINX (उदाहरण):nginx upstream api {
zone api 64k;
least_conn;
server app-1:8080 max_fails=2 fail_timeout=10s;
server app-2:8080 max_fails=2 fail_timeout=10s;
keepalive 512;
}
proxy_next_upstream error timeout http_502 http_503 http_504;
proxy_next_upstream_tries 2;
दूत बाहरी पहचान (टुकड़ा):
yaml outlier_detection:
consecutive_5xx: 5 interval: 5s base_ejection_time: 30s max_ejection_percent: 50
6) दोष प्रबंधन: टाइमआउट/रीट्री/सर्किट-ब्रेकिंग
टाइमआउट: क्लाइंट टाइमआउट से कम; प्रति-मार्ग निर्दिष्ट करें।
रेट्रीज़: जिटर और आइडेम्पोटेंसी के साथ 1-2; निष्क्रियता कुंजियों के बिना POST पर निषेध।
सर्किट ब्रेकर: एक साथ अनुरोधों/त्रुटियों को सीमित करना; "अर्ध-खुला" वसूली।
बजट: स्व-डीडीओएस की व्यवस्था नहीं करने के लिए फटने की सीमा/विलय।
7) कुबर्नेट्स-पैटर्न
ClusterIP/NodePort/LoadBalancer/Ingress - मूल आदिम।
तत्परता/जीवन: केवल तैयार बोर्डों पर यातायात।
PodDis बजट एक ही समय में N प्रतिकृतियों को नहीं छोड़ सकता है।
HPA/VPA: CPU/RED मैट्रिक्स द्वारा स्केलिंग, LB से लिंक।
सर्विसटोपोलॉजी/टोपोलॉजी अवेयर संकेत: ज़ोन द्वारा इलाके।
सेवा प्रकार = LoadBalancer (क्षेत्रीय): प्रत्येक AZ में कम से कम 2 प्रतिकृतियाँ।
एक महत्वपूर्ण मार्ग के लिए तत्परता का एक उदाहरण:yaml readinessProbe:
httpGet: { path: /healthz/dependencies, port: 8080 }
periodSeconds: 5 failureThreshold: 2
8) क्रॉस-ज़ोन और क्रॉस-क्षेत्रीय याताया
मल्टी-एजेड (क्षेत्र के भीतर): समान रूप से (जोनल एलबी), भंडारण - तुल्यकालिक प्रतिकृतियां वितरित करें।
बहु-क्षेत्र:- सक्रिय-सक्रिय: दोनों क्षेत्र यातायात की सेवा कर अधिक जटिल - आपको डेटा प्रतिकृति, स्थिरता और भौगोलिक मार्ग की आवश्यकता है।
- सक्रिय-निष्क्रिय: मुख्य क्षेत्र सेवा करता है, आरक्षित - "गर्म/गर्म/ "आसान, तेज स्विचिंग, लेकिन उच्च आरपीओ।
- जियो-डीएनएस (निकटतम क्षेत्र)।
- भारित डीएनएस (कैनरी/पुनर्वितरण)।
- विलंबता-आधारित (आरटीटी माप)।
- विफल = स्वास्थ्य/उपलब्धता संकेतों द्वारा (कई सहूलियत बिंदुओं से जांच)।
9) डेटा और विफलता
कैश/राज्य: यदि संभव हो - क्षेत्रीय रूप से स्थानीय; सक्रिय-सक्रिय के लिए - CRDT/सुसंगत हैश।
DB:- तुल्यकालिक प्रतिकृति = कम आरपीओ, उच्च विलंबता।
- अतुल्यकालिक = कम विलंबता, लेकिन RPO> 0।
- कतारें: मिररिंग/मल्टीक्लस्टर टॉपिकल्स; घटना deduplication।
- संचालन और पुनरावृत्ति यांत्रिकी की डिजाइन पहचान।
10) परिधि: DNS/Anycast/BGP/CDN
DNS: शॉर्ट TTL (30-60 के दशक) + आपके नेटवर्क से स्वास्थ्य-जांच।
Anycast: एक IP के साथ कई POPs - निकटतम एक यातायात प्राप्त करता है, फीलओवर रूटिंग स्तर पर है।
सीडीएन/एज: सुरक्षा के लिए कैश और "गेटवे", स्थिर/मीडिया को तब सेवित किया जाता है जब मूल गिरता है; मूल-ढाल + пер -POP स्वास्थ्य।
11) नमूना विन्यास
HAProxy L7:haproxy defaults timeout connect 2s timeout client 15s timeout server 15s retries 2 option redispatch
backend api balance leastconn option httpchk GET /healthz/dependencies http-check expect status 200 server app1 app-1:8080 check inter 5s fall 2 rise 2 slowstart 3000 server app2 app-2:8080 check inter 5s fall 2 rise 2 slowstart 3000
NGINX चिपचिपा по कुकी:
nginx upstream api {
hash $cookie_session_id consistent;
server app-1:8080;
server app-2:8080;
}
दूत पुन: प्रयास/टाइमआउट (मार्ग):
yaml route:
timeout: 2s retry_policy:
retry_on: 5xx,connect-failure,reset num_retries: 1 per_try_timeout: 500ms
12) स्वचालित विफलता: संकेत और द्वार
टेक-एसएलआई: 5xx-दर, p95/p99, संतृप्ति, टीएलएस हैंडशेक, टीसीपी रीसेट।
व्यवसाय एसएलआई: जमा/संवितरण की सफलता, पीएसपी में कोई भुगतान त्रुटि नहीं।
गेट्स: यदि थ्रेसहोल्ड पार हो जाते हैं, तो ज़ोन/उदाहरण को बंद कर दें, स्थिर पूल का वजन बढ़ाएं, जीएसएलबी स्विच करें।
रनबुक: चरण-दर-चरण रोलबैक निर्देश।
13) टेस्ट और निरीक्षण (अराजकता और खेल-दिन)
अराजकता परीक्षण: AZ/क्षेत्रों को अक्षम करना, DB/cache गिरावट, पैकेट-हानि सिमुलेशन।
गेम-डे: ऑन-कॉल टीमों की विशेषता वाला फेयलोवर प्रशिक्षण।
निदान: परिधि से बैकेंड तक ट्रेसिंग, रिलीज एनोटेशन और मेट्रिक्स से मेल खाता है।
14) सुरक्षा और अनुपालन
परिधि पर LB↔servisy, WAF/दर सीमा के बीच mTLS।
विफलता/विभाजन क्षेत्र: विस्फोट-त्रिज्या अलगाव।
नीतियां: विफलता का एकल बिंदु (SPOF) निषेध, "न्यूनतम N प्रतिकृतियां/AZ" के लिए आवश्यकताएं।
15) एंटी-पैटर्न
सभी यातायात (SPOF) के लिए एक LB/एक क्षेत्र।
कोई गहरी जाँच '/healthz '(हरा - लेकिन DB/कतार अनुपलब्ध)।
बिना पहचान के रिट्रे - डबल लेनदेन/भुगतान।
बड़े पैमाने पर NAT → असंतुलन के साथ प्रति IP स्टिकी।
डीएनएस फीलओवर उच्च टीटीएल के साथ (स्विच करने से पहले घंटे)।
जब कमी - अनुरोध टूटने पर कोई सुंदर नाली नहीं।
16) कार्यान्वयन चेकलिस्ट (0-45 दिन)
0-10 दिन
AZ ≥2 को पोस्ट उदाहरण; तत्परता/जीवनयापन, स्वास्थ्य-जांच सक्षम करें।
कॉन्फ़िगर करें (1 प्रयास), बाहरी पहचान।
सुंदर नाली और धीमी गति से शुरू सक्षम करें।
11-25 दिन
परिधि के लिए GSLB (भू/भारित) या Anycast भरें।
कैनरी वजन/मार्ग नीतियां; कुकी/सुसंगत हैश के माध्यम से चिपचिपा।
ऑटो-फीलओवर (p95/5xx + बिजनेस SLI) के लिए SLO द्वार।
26-45 दिन
क्षेत्रीय डीआर: अनुवाद परीक्षण के साथ सक्रिय-सक्रिय या सक्रिय-निष्क्रिय।
AZ/क्षेत्रों के साथ अराजकता के दिन, RTO/RPO रिपोर्ट।
स्वचालित रनबुक 'और (ठहराव/शिफ्ट/रोलबैक स्क्रिप्ट)।
17) परिपक्वता मैट्रिक्स
मल्टी-एज़कवरेज ≥ 99% महत्वपूर्ण रास्ते।
DNS/GSLB/Anycast को सार्वजनिक समापन बिंदुओं के लिए लागू किया जाता है।
MTTR जब एक AZ गिरता है <5 मिनट (p95)।
महत्वपूर्ण डेटा के लिए RPO ≤ लक्ष्य (उदाहरण के लिए, ≤ 30 सेकंड)।
त्रैमासिक खेल-दिन और सफल अनुसूचित फीलओवर।
18) निष्कर्ष
विश्वसनीय संतुलन और विफलता एक स्तरित वास्तुकला है: स्थानीय L7-policies (टाइमआउट/रेट्रीज ़/सीबी, हेल्थ-चेक), सही चिपचिपाहट और हैशिंग, क्रॉस-ज़ोन स्थिरता और परिधि पर - जीएसएलबी/डीएनएस/एनीकास्ट। एसएलओ गेट, पहचान, सुंदर नाली और नियमित अराजकता परीक्षण जोड़ें - और नोड, ज़ोन या यहां तक कि क्षेत्र का कोई भी नुकसान अनुमानित आरटीओ/आरपीओ के साथ एक प्रबंधनीय घटना बन जाएगा।