स्केलिंग नेटवर्क नोड्स
(खंड: पारिस्थितिकी तंत्र और नेटवर्क)
1) नोड भूमिकाएँ और ट्रैफिक लूप
सत्यापन/उत्पादन (सर्वसम्मति/ब्लॉक/रोलअप-सीक्वेंसर): अंतिम रूप का एक महत्वपूर्ण मार्ग।
रीडर/इंडेक्सर (रीड-ओनली/एपीआई/आर्काइव): एप्लिकेशन और एनालिटिक्स अनुरोध परोसता है।
रिले/ब्रिज (क्रॉस-डोमेन): डोमेन के बीच संदेश/संपत्ति स्थानांतरित करना।
गेटवे/एज (इंग्रेस/जीआरपीसी/वेबसॉकेट/क्विक): क्लाइंट अनुरोध, दर-सीमा, कैश प्राप्त करना।
टेली मीट्रिक/अवलोकन: मैट्रिक्स/लॉग/निशान, सिंथेटिक नमूनों का संग्रह।
प्रत्येक भूमिका की अपनी एसएलओ, त्रुटि बजट और स्केलिंग नीति है।
2) स्केलिंग मॉडल
2. 1 स्केल-अप
सीपीयू/रैम/एसएसडी/एनआईसी बढ़ाएँ। चोटियों के लिए उपवास, लेकिन लोहे द्वारा सीमित और यातायात की प्रति इकाई लागत में वृद्धि कर सक
2. 2 स्केल-आउट
संतुलनकर्ताओं/कतारों के पीछे प्रतिकृतियों को जोड़ ना। पहचान, चिपचिपा नीतियों, कोरम और सुसंगत कैश (या उनकी विकलांगता) की आवश्यकता होती है।
2. 3 कार्यात्मक विविधता
कर्तव्यों का पृथक्करण: आम सहमति नोड्स अलग-थलग हैं; आरपीसी/एपीआई - अलग से; इंडेक्सर/संग्रह - अलग से; पुल/रिलेयर - अलग से।
2. 4 जियो-स्केल
क्षेत्रीय समूह (ईयू/यूएस/एपी) + एनीकास्ट/जियोडीएनएस/लेटेंसी अवेयर एलबी; अंतिम रूप/विलंबता और स्थानीय कैश के साथ प्रतिकृति
2. 5 शार्डिंग/पार्टिशनिंग
कतारों/सूचकांकों और स्तंभों के भंडारण के लिए कुंजियों (चेनआईडी, शार्ड, विषय) द्वारा पृथक्करण।
3) अनुरोध पथ: संतुलन, कैशिंग, QoS
L4/L7 संतुलन: स्वास्थ्य-जांच, टोकन/ट्रेस-आईडी, सर्किट-ब्रेकर, बाहरी-इजेक्शन द्वारा चिपचिपा।
कैश:- किनारे पर (अक्सर पढ़ ने के लिए शॉर्ट-टीटीएल);
- प्रोसेसर के अंदर (इंडेक्स के लिए रीड-थ्रू, राइट-अराउंड);
- नकारात्मक कैश (नहीं मिला)।
- QoS कक्षाएं: P0 (अंतिम रूप/पुल/भुगतान), P1 (उत्पाद), P2 (थोक/संग्रह)।
- Backpressure: टोकन/क्रेडिट, concur अनुरोधों पर प्रतिबंध, DLQ के साथ कतारें।
- प्रवेश: प्री-फ़िल्टर (ऑथ, लिमिट, जियो/प्रतिबंध), "महंगे" अनुरोधों की प्रारंभिक अस्वीकृति।
4) स्थिति प्रबंधन: स्नैपशॉट, pruning, संग्रह
पूर्ण/pruned: RPC के लिए pruned नोड्स; पुरालेख - एक अलग पूल में पूर्वव्यापी प्रश्नों के लिए।
स्नैपशॉट/फास्ट-सिंक: नियमित स्नैपशॉट, नई प्रतिकृतियों के तेज बूटस्ट्रैप।
हॉट/वार्म/कोल्ड स्टोरेज: एनवीएमई पर गर्म स्थिति, ऐतिहासिक ब्लॉक - सूचकांकों के साथ।
गारबैज-कलेक्ट/कॉम्पैक्शन: अनुसूचित खिड़कियां, चोटियों के दौरान नहीं।
डीए/बैच बफ़र्स (L2/पुलों के लिए): प्रमाण प्राप्तियों के साथ वितरण गारंटी और सफाई अवधि।
5) कतारें और स्ट्रीमिंग
Ingress: Kafka/Pulsar/NATS - विभाजन-कुंजी = 'channeIdshard' topic '।
उपभोक्ता समूह: पार्टियों द्वारा स्केलिंग, आइडेम्पोटेंट हैंडलर (आउटबॉक्स/इनबॉक्स)।
डीएलक्यू और रेट्राई: घातीय बैकऑफ, जहर-संदेश संगरोध।
सहमत आदेश: नियतावाद के लिए पार्टी के भीतर।
6) परिवहन और नेटवर्क अनुकूलन
QUIC/HTTP/2: मल्टीप्लेक्सिंग, हेड-ऑफ-लाइन सुधार।
TCP ट्यूनिंग: BBR/CUBIC, बफर्स में वृद्धि, 'SO _ REUSEPORT'।
कर्नेल/ईबीपीएफ: त्वरित नेटवर्क स्टैक, संतुलन के लिए लगातार हैश।
NIC ऑफलोड и पिनिंग IRQ к NUMA।
gRPC: कीपलाइव/पिंग पैरामीटर, अधिकतम-इनफ्लाइट बाधाएं।
WebSocket: कनेक्शन पूल, पिंग/पोंग, प्रति क्लाइंट सदस्यता सीमित करें।
7) विश्वसनीयता: कोरम, गिरावट, अराजकता परीक्षण
पढ़ें/लिखें कोरम (यदि लागू हो), नेता बाड़ लगाना।
गिरावट मोड: रीडली, "केवल अंतिम रूप दिया", भारी तरीकों को बंद कर दिया।
अराजकता इंजीनियरिंग: देरी/नुकसान, पुनरारंभ, डिस्क/नेटवर्क विफलता, "हाई-स्पीड रिऑर्ग" परिदृश्य।
8) SLI/SLO और लक्ष्य
SLI (उदाहरण):- विधि वर्ग द्वारा p95 आरपीसी विलंबता;
- सफलता-दर; कतार-अंतराल p95;
- टाइम-टू-फाइनलिटी p95 (रेल/पुलों के लिए);
- स्नैपशॉट बूटस्ट्रैप समय;
- राज्य विकास/दिन; सीपीयू/आईओ संतृप्ति।
- P0 RPC p95 ≤ 400 ms; उपलब्धता ≥ 99। 95%;
- अंतिम रिले p95 ≤ 3 मिनट;
- कतार-अंतराल P0 p95 ≤ 2 с;
- बूटस्ट्रैप नया रीडर ≤ 30 мин (फास्ट-सिंक + स्नैपशॉट);
- 2 घंटे की विंडो ≤ 2 × पर त्रुटि बजट बर्न।
9) अवलोकन और सतर्कता
मेट्रिक्स: विलंबता (हिस्टोग्राम), आरपीएस, त्रुटियां (वर्ग द्वारा), कतार-लैग, जीसी/ढेर, डिस्क-आईओ, पी 2 पी साथियों, गपशप-दर।
ट्रेसेस: end-to-end 'trace _ id' के माध्यम से।
लॉग: संरचित, 'अनुरोध _ आईडी' द्वारा सहसंबंध।
अलर्ट: बर्न-रेट P0, कतार-लैग, सीमा के नीचे सहकर्मी-गणना, पुन: स्पाइक्स, स्नैपशॉट-बहाव।
10) ऑटोस्कैलिंग पैटर्न
HPA/VPA (K8s): по CPU/विलंबता/RPS/कतार-अंतराल; शीर्ष की लंबाई से केईडीए।
चरण-स्केलिंग: दिन शिखर प्रोफाइल; एमएल/मौसमी द्वारा भविष्यवाणी।
गर्म-पुर्जों: ट्रैफिक के बिना वार्म-अप प्रतिकृतियां (सुंदर प्रचार)।
सुरक्षित रोलआउट: कैनरी + आउटलेयर-इजेक्शन + SLO- гейты।
11) सुरक्षा और अलगाव
mTLS/कुंजी पिनिंग; आरबीएसी/एबीएसी प्रति विधियों; QoS प्रति org/किरायेदार सीमा।
दर-सीमा और डॉस-शील्ड: टोकन, सार्वजनिक आरपीसी के लिए कैप्चस, विसंगति-पहचान।
गुप्त प्रबंधन: अल्पकालिक टोकन, रोटेशन।
सैंडबॉक्स: आर्काइव/पब्लिक क्लाइंट के लिए अलग पाउल।
12) संदर्भ विन्यास
12. 1 K8s: आरपीसी गेटवे (स्केल आउट)
yaml apiVersion: apps/v1 kind: Deployment metadata: { name: rpc-gateway }
spec:
replicas: 6 strategy: { type: RollingUpdate, rollingUpdate: { maxSurge: 2, maxUnavailable: 0 } }
selector: { matchLabels: { app: rpc-gateway } }
template:
metadata: { labels: { app: rpc-gateway, qos: P0 } }
spec:
containers:
- name: gateway image: org/rpc-gateway:2. 4. 1 ports: [{ containerPort: 443 }]
resources:
requests: { cpu: "1", memory: "2Gi" }
limits: { cpu: "4", memory: "6Gi" }
env:
- { name: MAX_CONCURRENCY, value: "400" }
- { name: CACHE_TTL_MS, value: "200" }
readinessProbe: { httpGet: { path: /healthz, port: 443 }, initialDelaySeconds: 5, periodSeconds: 5 }
livenessProbe: { httpGet: { path: /livez, port: 443 }, initialDelaySeconds: 10, periodSeconds: 10 }
apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler metadata: { name: rpc-gateway-hpa }
spec:
scaleTargetRef: { apiVersion: apps/v1, kind: Deployment, name: rpc-gateway }
minReplicas: 6 maxReplicas: 36 metrics:
- type: Pods pods:
metric:
name: request_latency_p95_ms target:
type: AverageValue averageValue: 350m # 350 мс
12. 2 दूत: प्राथमिकता और बाहरी-अस्वीकृति
yaml clusters:
- name: readers type: EDS lb_policy: LEAST_REQUEST outlier_detection:
consecutive_5xx: 5 interval: 2s base_ejection_time: 30s circuit_breakers:
thresholds:
- priority: DEFAULT max_connections: 20000 max_pending_requests: 5000 max_requests: 20000 health_checks:
- timeout: 1s interval: 3s http_health_check: { path: /healthz }
route_config:
request_headers_to_add:
- header: { key: x-trace-id, value: "%REQ(X-TRACE-ID)%" }
weighted_clusters:
clusters:
- name: readers weight: 100
12. 3 काफ्का: डोमेन द्वारा विभाजन
yaml topic: "rpc. events"
partitions: 48 replicationFactor: 3 config:
retention. ms: 604800000 # 7 days max. message. bytes: 1048576 min. insync. replicas: 2 cleanup. policy: delete
12. 4 QoS और सीमा नीति
yaml qos:
P0:
rps_limit_per_org: 1500 queue_lag_p95_ms: 2000 retry: { attempts: 3, backoff_ms: [100,400,800] }
P1:
rps_limit_per_org: 800
P2:
rps_limit_per_org: 200 admissions:
denylist_methods: ["eth_getLogs(>10k blocks)"]
heavy_query_guard: { max_range_blocks: 5000, require_token: true }
13) डेटा स्कीमा और नमूना प्रश्न
13. 1 नोड मेट्रिक्स (निर्देशिका)
sql
CREATE TABLE node_metrics (
ts TIMESTAMPTZ,
node_id TEXT, role TEXT, region TEXT,
rps INT, latency_p95_ms INT, errors_5xx INT,
queue_lag_ms INT, cpu NUMERIC, mem NUMERIC, io_wait NUMERIC
);
13. 2 एसएलओ नियंत्रण और जलने की दर
sql
SELECT date_trunc('hour', ts) AS h, role,
AVG(latency_p95_ms) AS p95,
100. 0 SUM(CASE WHEN latency_p95_ms <= 400 THEN 1 ELSE 0 END)/COUNT() AS slo_hit_pct
FROM node_metrics
WHERE ts >= now() - INTERVAL '24 hours'
GROUP BY 1,2;
13. 3 लोड योजना
sql
SELECT region, role,
PERCENTILE_CONT(0. 95) WITHIN GROUP (ORDER BY rps) AS rps_p95,
PERCENTILE_CONT(0. 95) WITHIN GROUP (ORDER BY queue_lag_ms) AS lag_p95
FROM node_metrics
WHERE ts >= now() - INTERVAL '7 days'
GROUP BY region, role;
14) परिचालन नियम
दैनिक: एसएलओ रिपोर्ट, कैपेसी डेल्टा, स्नैपशॉट्स की स्थिति, सहकर्मी-स्वास्थ्य।
साप्ताहिक: सीमा/QoS, DR परीक्षण (स्नैपशॉट से बूटस्ट्रैप), प्रूनिंग और कंप्रेसेंस की जाँच।
रिलीज़ होने से पहले: कैनरी रोलआउट, एसएलओ गेट्स और मनाया मेट्रिक्स, रोलबैक प्लान।
लागत लेखांकन: सीटीएस प्रति 1k अनुरोध, TPS_per_$ (प्रति डॉलर दक्षता)।
15) प्लेबुक की घटनाएं
ए। आरपीसी पी 95 विलंबता विस्फोट
1. P2-throttle और कम नमूना सक्षम करें; 2) गेटवे/रीडर प्रतिकृतियों को बढ़ाएं;
2. केवल कैश में कुछ ट्रैफ़िक स्थानांतरित करें। 4) गर्म तरीकों का विश्लेषण खोलना, यदि आवश्यक हो - इनकार-नियम।
बी। कतार-अंतराल बस> एसएलओ पर
1. ऑटोस्केल उपभोक्ता (केईडीए), 2) पुनर्वितरण पार्टियों, 3) अस्थायी रूप से थोक नौकरियों को रोकते हैं।
सी। पीयर-काउंट ड्रॉप वेलिडेटर/रिले पर
1. p2p मॉड्यूल, 2) परिवर्तन सीट, 3) चेक नेटवर्क ACL/NAT, 4) स्विच सुरक्षा।
डी। लॉन्ग बूटस्ट्रैप नई प्रतिकृति
1. ताजा स्नैपशॉट पर स्विच करें, 2) आईओ बैंडविड्थ बढ़ाएं, 3) अस्थायी रूप से संग्रह सूचकांक हटा दें।
ई। स्पाइक पुनर्गठित/पुल देरी
1. के-पावती/विंडो, 2) "अंतिम-केवल" मोड सक्षम करता है, 3) उपभोक्ताओं को सूचित करता है।
16) कार्यान्वयन चेकलिस्ट
1. साइट भूमिकाओं और उनके SLO/त्रुटि बजट को परिभाषित करें।
2. कार्य करने के लिए: सर्वसम्मति/आरपीसी/अनुक्रमणकर्ता/संग्रह/पुल/किनारे।
3. DLQ के साथ संतुलन, QoS, बैकप्रेशर और कतार सक्षम करें।
4. स्नैपशॉट/फास्ट-सिंक, pruning और tiering सेट करें.
5. कनेक्ट मेट्रिक्स/ट्रेल्स/लॉग, डैशबोर्ड और बर्न-रेट अलर्ट।
6. ऑटोस्कलिंग (HPA/KEDA) और कैनरी रिलीज़ सेट करें।
7. अराजकता परीक्षण और नियमित डीआर अभ्यास करें।
8. परिचालन नियमों और लागत नियंत्रण का परिचय दें।
17) शब्दावली
बैकप्रेशर - ओवरलोड के दौरान इनपुट प्रवाह को नियंत्रित करने के लिए तंत्र।
DLQ - समस्या संदेश के लिए "मृत कतार"।
मौजूदा विंडो के बाहर ऐतिहासिक स्थिति को मिटाना।
फास्ट-सिंक/स्नैपशॉट एक नई प्रतिकृति को सिंक्रनाइज़करने का एक त्वरित तरीका है।
बाहरी-अस्वीकृति - पूल से अपमानित उदाहरणों का बहिष्कार।
बर्न-रेट - त्रुटि बजट खपत दर एसएलओ के सापेक्ष।
नीचे की रेखा: स्केलिंग नेटवर्क नोड्स न केवल "प्रतिकृतियां जोड़ें", बल्कि वास्तुकला, QoS, राज्य प्रबंधन और परिचालन कठोरता का सिस्टम अनुशासन है। इस ढांचे (भूमिका पृथक्करण, कतार, कैश, ऑटोस्केल, अवलोकन और स्पष्ट एसएलओ) का अनुसरण करके, पारिस्थितिकी तंत्र प्रदर्शन, शिखर लचीलापन और यातायात की प्रति इकाई नियंत्रणीय लागत प्राप्त करता है।