Κλιμακωτοί κόμβοι δικτύου
(Τμήμα: Οικοσύστημα και Δίκτυο)
1) Ρόλοι κόμβων και κυκλοφοριακοί βρόχοι
Επικύρωση/παραγωγή (συναίνεση/μπλοκ/rollup-sequencer): μια κρίσιμη διαδρομή οριστικοποίησης.
Αναγνώστης/ευρετήρας (read-only/API/archive): εξυπηρετεί αιτήματα εφαρμογής και ανάλυσης.
Αναμετάδοση/γέφυρα (cross-domain): μεταφορά μηνυμάτων/περιουσιακών στοιχείων μεταξύ τομέων.
Πύλη/άκρο (είσοδος/gRPC/WebSocket/QUIC): παραλαβή αιτημάτων πελατών, όριο επιτοκίου, κρύπτη.
Tele metric/observability: συλλογή μετρικών/κορμοτεμαχίων/ιχνών, συνθετικών δειγμάτων.
Κάθε ρόλος έχει τη δική του SLO, τον προϋπολογισμό σφάλματος και την πολιτική κλιμάκωσης.
2) Μοντέλα κλιμάκωσης
2. 1 Κλίμακα
Αύξηση CPU/RAM/SSD/NIC. Ταχεία για κορυφές, αλλά περιορισμένη από σίδηρο και μπορεί να αυξήσει το κόστος ανά μονάδα κίνησης.
2. 2 Κλίμακα
Προσθήκη αντιγράφων πίσω από ισορροπητές/ουρές αναμονής. Απαιτεί ιδεατότητα, κολλώδεις πολιτικές, απαρτία και συνεπείς κρύπτες (ή αναπηρία τους).
2. 3 Λειτουργική ποικιλομορφία
Διαχωρισμός καθηκόντων: οι κόμβοι συναίνεσης είναι απομονωμένοι· RPC/API - χωριστά· ευρετήριο/αρχείο - χωριστά· γέφυρα/αναμεταδότης - χωριστά.
2. 4 Γεωγραφική κλίμακα
Περιφερειακοί όμιλοι (EU/US/AP) + anycast/GeoDNS/Latency Aware LB· Αντιγραφή με οριστικοποίηση/καθυστέρηση και τοπικές κρύπτες
2. 5 Χάραξη/κατάτμηση
Διαχωρισμός ανά κλειδιά (functionId, shard, θέμα) για ουρές/δείκτες και αποθήκες στηλών.
3) Διαδρομή αίτησης: εξισορρόπηση, αποθήκευση, QoS
εξισορρόπηση: έλεγχοι υγείας, κολλώδεις με σύμβολο/ίχνος-id, διακόπτης κυκλώματος, ακραία-εκτίναξη.
Φραγκοστάφυλα:- επί της ακμής (κοντό TTL για συχνά διαβαζόμενα RPC)·
- στο εσωτερικό του επεξεργαστή (ανάγνωση, διαγραφή δεικτών)·
- αρνητικές κρυψώνες (δεν βρέθηκαν).
- Κατηγορίες QoS: P0 (οριστικοποίηση/γέφυρα/πληρωμές), P1 (προϊόν), P2 (χύμα/αρχείο).
- Backpressure: μάρκες/πιστώσεις, περιορισμός των αιτήσεων συναίνεσης, ουρές με DLQ.
- Εισαγωγή: προ-φίλτρο (auth, όρια, geo/κυρώσεις), έγκαιρη απόρριψη «ακριβών» αιτημάτων.
4) Διαχείριση κατάστασης: στιγμιότυπα, κλάδεμα, αρχείο
Πλήρες/κλαδευμένο: κλαδευμένοι κόμβοι για RPC. Αρχείο - για αναδρομικά ερωτήματα σε ξεχωριστή δεξαμενή.
Στιγμιότυπα/γρήγορος συγχρονισμός: κανονικά στιγμιότυπα, γρήγορη εκκίνηση νέων αντιγράφων.
Θερμή/θερμή/ψυχρή αποθήκευση: θερμή κατάσταση σε NVMe, ιστορικά μπλοκ - S3/object με δείκτες.
Συλλογή/συμπίεση σκουπιδιών: προγραμματισμένα παράθυρα, όχι κατά τη διάρκεια των κορυφών.
DA/Ρυθμιστικά διαλύματα παρτίδας (για L2/γέφυρες): εγγυήσεις παράδοσης και περίοδος καθαρισμού με αποδεικτικά αποδεικτικά στοιχεία.
5) Ουρές αναμονής και ροή
Είσοδος: Kafka/Pulsar/NATS πλήκτρο κατάτμησης = 'functionI shard' topic '.
Ομάδες καταναλωτών: κλιμάκωση από μέρη, idempotent handler (outbox/inbox).
DLQ και retrai: εκθετική οπισθοδρόμηση, καραντίνα δηλητηριωδών μηνυμάτων.
Συμφωνημένη διάταξη: εντός του μέρους για τον προσδιορισμό.
6) Βελτιστοποίηση των μεταφορών και των δικτύων
: πολλαπλοποίηση, διόρθωση κεφαλής γραμμής.
Ρύθμιση TCP: BBR/CUBIC, αυξημένα ρυθμιστικά διαλύματα, 'SO _ REUSEPORT'.
Πυρήνας/eBPF: επιταχυνόμενη στοίβα δικτύου, σταθερό hash για εξισορρόπηση.
NIC offload и pinning IRQ к NUMA.
gRPC: παράμετροι φύλαξης/ping, περιορισμοί μέγιστης πτήσης.
WebSocket: ομάδες σύνδεσης, ping/pong, περιορισμός συνδρομών ανά πελάτη.
7) Αξιοπιστία: Απαρτίες, αποικοδόμηση, δοκιμές χάους
Ανάγνωση/εγγραφή απαρτίας (εάν υπάρχει), ξιφασκία επικεφαλής.
Τρόποι αποικοδόμησης: έτοιμα, «μόνο οριστικοποιημένα», απενεργοποιώντας βαριές μεθόδους.
Μηχανική χάους: καθυστερήσεις/απώλειες, επανεκκίνηση, βλάβη δίσκου/δικτύου, σενάρια «reorg υψηλής ταχύτητας».
8) SLI/SLO και στόχοι
SLI (παράδειγμα):- p95 RPC καθυστέρηση ανά τάξη μεθόδων·
- Ποσοστό επιτυχίας· Σειρά αναμονής p95,
- Time-to-finality p95 (για σιδηροτροχιές/γέφυρες),
- Στιγμιότυπο bootstrap,
- Κρατική ανάπτυξη/ημέρα ΚΜΕ/IO κορεσμός.
- P0 RPC p95 ≤ 400 ms· Διαθεσιμότητα 99 ευρώ. 95%;
- Οριστικό ρελέ p95 ≤ 3 λεπτά.
- Σειρά αναμονής P0 p95 ≤ 2 с,
- Νέα συσκευή ανάγνωσης bootstrap ≤ 30 мин (γρήγορος συγχρονισμός + στιγμιότυπο).
- Σφάλμα εγγραφής του προϋπολογισμού στο παράθυρο 2 ωρών ≤ 2 ×.
9) Παρατηρησιμότητα και προειδοποίηση
Μετρήσεις: καθυστέρηση (ιστόγραμμα), RPS, σφάλματα (κατά κατηγορία), ουρά αναμονής, GC/σωρός, δίσκος-io, p2p ομότιμοι, ρυθμός κουτσομπολιού.
Ίχνη: tend-to-end 'trace _ id' μέσω του edge→RPC→indeksator→khraneniye→most.
Καταγραφές: δομημένη συσχέτιση με το «αίτημα _ id».
Ειδοποιήσεις: ρυθμός καύσης P0, καθυστέρηση αναμονής, καταμέτρηση ομοτίμων κάτω από το κατώφλι, reorg-spikes, snapshot-drift.
10) Μοτίβα αυτόματης κλιμάκωσης
HPA/VPA (K8): по CPU/καθυστέρηση/RPS/καθυστέρηση αναμονής· KEDA κατά μήκος των τοποθεσιών.
Βαθμιαία κλίμακα: προφίλ αιχμής ημέρας. Πρόβλεψη ανά ML/εποχικότητα.
Ανταλλακτικά προθέρμανσης: αντίγραφα προθέρμανσης χωρίς κίνηση (χαριτωμένη προώθηση).
Ασφαλής εξάπλωση: καναρίνι + εξωγήινη εξώθηση + SLO- гейты.
11) Ασφάλεια και απομόνωση
mTLS/καρφίτσα κλειδιού· RBAC/ABAC ανά μέθοδο· Όρια QoS ανά καταγραφέα/ενοικιαστή.
Όριο ταχύτητας και θωράκιση DOS: μάρκες, captchas για δημόσιες RPC, ανίχνευση ανωμαλίας.
Μυστική διαχείριση: βραχύβιες μάρκες, περιστροφή.
Sandboxes: Ξεχωριστά Poules for Archive/Public Clients.
12) Διατάξεις αναφοράς
12. 1 K8s: Πύλη RPC (Scale Out)
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 Kafka: κατάτμηση ανά τομέα
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. Μετρήσεις κόμβων (κατάλογος)
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 Ρυθμός ελέγχου και καύσης SLO
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. Σχεδιασμός φορτίου
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) Κανονισμοί λειτουργίας
Καθημερινή: έκθεση SLO, capacy delta, κατάσταση στιγμιότυπων, υγεία ομοτίμων.
Εβδομαδιαία: αναθεώρηση ορίων/QoS, δοκιμή DR (bootstrap από στιγμιότυπο), έλεγχος κλαδέματος και συμπιεστών.
Πριν από την απελευθέρωση: canary rollout, SLO πύλες και παρατηρούμενες μετρήσεις, σχέδιο rollback.
Λογιστική κόστους: CTS ανά 1k αιτήσεων, TPS_per_$ (απόδοση ανά δολάριο).
15) Περιστατικά του βιβλίου παιχνιδιών
A. έκρηξη καθυστέρησης RPC p95
1. Ενεργοποίηση P2-throttle και χαμηλότερης δειγματοληψίας. 2) αύξηση των αντιγράφων πύλης/ανάγνωσης·
2. Μεταφορά κάποιας κίνησης μόνο στην κρύπτη. 4) να ανοίξει η ανάλυση των θερμών μεθόδων, εάν είναι απαραίτητο - κανόνες άρνησης.
B. Καθυστέρηση αναμονής στο λεωφορείο> SLO
1. Οι καταναλωτές της αυτόματης κλίμακας (KEDA), 2) αναδιανέμουν τα μέρη, 3) διακόπτουν προσωρινά τις μαζικές θέσεις εργασίας.
Γ. Σταγόνα καταμέτρησης ομοτίμων στον επικυρωτή/αναμεταδότη
1. Επανεκκίνηση μονάδων p2p, 2) αλλαγή καθισμάτων, 3) έλεγχος δικτύου ACL/NAT, 4) προστασία μεταγωγής.
D. Νέο αντίγραφο Long bootstrap
1. Μετάβαση σε φρέσκο στιγμιότυπο, 2) ανύψωση εύρους ζώνης IO, 3) προσωρινά αφαίρεση δεικτών αρχείων.
E. Spike reorg/καθυστερήσεις γέφυρας
1. Διεύρυνση αναγνωρίσεων K/παραθύρου, 2) ενεργοποίηση λειτουργίας «μόνο για ολοκλήρωση», 3) ενημέρωση των καταναλωτών.
16) Κατάλογος ελέγχου εφαρμογής
1. Καθορισμός των ρόλων της τοποθεσίας και των SLO/προϋπολογισμών τους για σφάλματα.
2. Για την εκτέλεση λειτουργιών: συναίνεση/RPC/ευρετήριο/αρχείο/γέφυρα/άκρο.
3. Ενεργοποίηση εξισορρόπησης, QoS, αντίθλιψης και αναμονής με DLQ.
4. Δημιουργία στιγμιότυπων/γρήγορου συγχρονισμού, κλαδέματος και κλιμάκωσης.
5. Σύνδεση μετρήσεων/μονοπατιών/αρχείων καταγραφής, πινάκων καταγραφής και προειδοποιήσεων ταχύτητας καύσης.
6. Δημιουργία αυτόματης κλιμάκωσης (HPA/KEDA) και απελευθέρωσης καναριού.
7. Διεξαγωγή δοκιμών χάους και τακτικών ασκήσεων DR.
8. Θέσπιση κανονισμών λειτουργίας και ελέγχου του κόστους.
17) Γλωσσάριο
Αντίθλιψη - μηχανισμοί ελέγχου της ροής εισόδου κατά την υπερφόρτωση.
DLQ - «νεκρή σειρά αναμονής» για προβληματικά μηνύματα.
Κλάδεμα - διαγραφή της ιστορικής κατάστασης έξω από το τρέχον παράθυρο.
Το fast-sync/Snapshot είναι ένας επιταχυνόμενος τρόπος συγχρονισμού ενός νέου αντιγράφου.
Πιο ακραία εξώθηση - αποκλεισμός υποβαθμισμένων περιπτώσεων από την κοινοπραξία.
Ποσοστό καύσης - ποσοστό κατανάλωσης του προϋπολογισμού σφάλματος σε σχέση με την SLO.
Κάτω γραμμή: η κλιμάκωση των κόμβων δικτύου δεν είναι μόνο «προσθήκη αντιγράφων», αλλά και η πειθαρχία του συστήματος της αρχιτεκτονικής, της QoS, της κρατικής διαχείρισης και της επιχειρησιακής ακαμψίας. Ακολουθώντας αυτό το πλαίσιο (διαχωρισμός ρόλων, ουρές αναμονής, κρύπτες, αυτόματη κλίμακα, παρατηρησιμότητα και σαφείς SLO), το οικοσύστημα κερδίζει προβλέψιμες επιδόσεις, ανθεκτικότητα αιχμής και ελεγχόμενο κόστος ανά μονάδα κίνησης.