GH GambleHub

Ցանցային հանգույցների մեծացումը

(Բաժին ՝ Էկոհամակարգ և ցանց)

1) Հանգույցների և ուրվագծերի դերերը

(consultus/block/rollup-sequencer) - եզրափակիչ ճանապարհը։

Ռիդեր/ինդեքսատոր (read-only/API/արխիվ), ծառայում է դիմումների և վերլուծաբանների հարցումները։

Ռելեեր/կամուրջ (cross-domain) 'հաղորդագրությունների/ակտիվների փոխանցումը էքսպորտի միջև։

Դարպաս/edge (ingress/gRPC/WindoSocket/QUIC) 'հաճախորդների հարցումների ընդունումը, rate-limit, քեշը։

Մետրի մարմինը/դիտարկումը 'մետրի/լոգարանների/թրեյսների հավաքումը, սինթետիկ փորձարկումները։

Յուրաքանչյուր դերի համար սեփական SLO-ն է, սխալների բյուջեն և մեծացման քաղաքականությունը։

2) Մեծացման մոդելները

2. 1 Ուղղահայաց (scale-up)

CPU/RAM/SSD/NIC-ի աճը։ Արագ պիկի համար, բայց սահմանափակվում է երկաթով և կարող է բարձրացնել միավորի արժեքը։

2. 2 Հորիզոնական (scale-out)

Կրկնօրինակների ավելացումը հավասարակշռիչների/հերթերի համար։ Պահանջում է idempotenty, sticky-քաղաքական, kvoruma և kronkasha (կամ նրանց հաշմանդամություն)։

2. 3 Ֆունկցիոնալ բաշխում

Պարտականությունների տարանջատումը 'consultus-ը մեկուսացվում է. RPC/API - առանձին; ինդեքսատոր/արխիվը 'առանձին; bridge/relayer - առանձին։

2. 4 Գեո սքեյլ

Տարածաշրջանային կլաստերներ (EU/US/AP) + anycript/GeoTS/Latency Ault LB; կրկնօրինակումը եզրափակիչ/ուշացումով և տեղական խցիկներով։

2. 5 Շարդինգ/կուսակցություն

Բաների բաժանումը (chainId, shard, topic) հերթերի/ինդեքսատորների և հսկայական պահեստների համար։

3) Հարցման ուղին 'հավասարակշռություն, հավասարակշռություն, QoS, QoS

L4/L7 հավասարակշռությունը 'health-winks, sticky town/trace-id, circuit-breaker, wwww.ier-ej.ru։

Քեշի

edge (shast-TTL-ի համար հաճախ կարդացվող RPC);

ստանդարտ ներսում (read-through, write-around ինդեքսների համար);

բացասական քաշներ (չեն գտնվել)։

QoS դասարաններ ՝ P0 (վերջնական/կամուրջ/վճարում), P1 (ապրանքային), P2 (bulk/արխիվ)։

Backpressure : /վարկեր, concur հարցումների սահմանափակումը, DLQ-ի հերթերը։

Admissions: pre ֆիլտրը (auth, limits, geo/սանկցիա), «թանկ» հարցումների վաղ շեղումը։

4) Կառավարումը 'դիպուկահարներ, պրունինգ, արխիվ

Fox/Pruned: pruned-2019 RPC-ի համար; Archive-ը հետադարձ հարցումների համար առանձին պուլում։

Դիպուկահարներ/fox-ensnc: 105 դիպուկահարներ, արագ bootstrap նոր կրկնօրինակներ։

Hot/Warm/Cold պահպանումը 'տաք վիճակը NVMe-ում, պատմական բլոկները' S3/օբյեկտ ինդեքսներով։

Garbadge-collect/compaction: Պլանավորված պատուհաններ, ոչ պիկի ժամանակ։

DA/Batch-ալգորիթմները (L2/կամուրջների համար) 'առաքման երաշխիքներ և մաքրման ժամանակահատվածը պրուֆի քվիտացիաների հետ։

5) Գծեր և ջրհեղեղներ

Ingress: Kafka/Pulsar/NATS с partition-key = `chainId|shard|topic`.

Կոնսումեր խմբերը 'կուսակցության մասշտաբը, իդեմպոտենտային վերարտադրողը (wwww.box/inbox)։

DLQ և retrai 'էքսպոնենցիալ backoff, poison-intercarantin։

Համաձայնեցված կարգը 'դետերմինիզմի կուսակցության շրջանակներում։

6) Տրանսպորտը և ցանցային օպտիմիզացումը

QUIC/HTTP/2 'բազմապատկումը, head-of-international ուղղումը։

TCP-թյունինգը ՝ BBR/CUBIC, ավելացված օրինագծերը, «SO _ REUSEIM»։

Kernel/eBPF 'արագացված ցանցային հոսք, կոնսիստենտ հեշ հավասարակշռման համար։

NIC offload и pinning IRQ к NUMA.

GRPC 'keepalive/ping պարամետրեր, max-inflight սահմանափակումներ։

Windows Socket: Punk, ping/pong, հաճախորդի ստորագրությունների սահմանափակում։

7) Lenta.ru: kvorums, դեգրադացիա, քաոս-թեստեր, քաոս-թեստեր։

Կարդալու/գրելու քվորումը (եթե կիրառելի է), առաջնորդի ֆենսինգը։

Դեգրադացիոն ռեժիմները ՝ readonly, «միայն վերջնական», անջատել ծանր մեթոդները։

Chaos-ինժեներություն 'ձգձգումներ/կորուստներ, վերագործարկումներ, սկավառակի/ցանցի մերժումը, սցենարների արագության ռելորգը։

8) SLI/SLO և ռուսական ցուցանիշները։

SLI (օրինակ)

p95 RPC latency մեթոդների դասարաններում;

Success-rate; Queue-lag p95;

Time-to-finality p95 (ռելեների/կամուրջների համար);

Snapshot bootstrap time;

State growth/day; CPU/IO saturation.

SLO (կենտրոններ)

P0 RPC p95-400 ms; Availability ≥ 99. 95%;

Finality relay p95-3 րոպե;

Queue-lag P0 p95 ≤ 2 с;

Bootstrap new reader ≤ 30 мин (fast-sync+snapshot);

Error budget burn-ը 2-ժամյա պատուհանի վրա 242 ռուբլիա է։

9) Դիտողությունն ու ալերտինգը

Մետրիկները ՝ latency (histogram), RPS, errors (դասարաններում), queue-lag, GC/heap, p2p peers, gossip-rate։

Թրեյզները ՝ «trace _ id» -ի միջոցով edge ww.RPC-ի միջոցով, ինդեքսատորը հաստատեց ռուսական կամուրջի պահպանումը։

Լոգները 'կառուցվածքային, հարաբերակցությունը' «request _ id»։

Ալբերտները ՝ burn-rate P0, queue-lag, peer-count ցածր շեմից, reorg-spayki, wwww.apshot-drift։

10) Ավտոսրահի պաթերոնները

HPA/VPA (K8s): по CPU/latency/RPS/queue-lag; KEDA-ն տոպիկոսների մեթոդով։

Step-scaling: Ցերեկային խնջույքների ավելցուկ; Prodictive-ը ML/սեզոնային։

Warm-spares: քրտնաջան կրկնօրինակներ առանց կոդերի (graceful promote)։

Safe rollout: canary + outlier-ejection + SLO-гейты.

11) Անվտանգություն և մեկուսացում

MTSA/pinning 2019; RBAC/ABAC մեթոդների վրա։ QoS-limites per org/tenae։

Rate-limit և DoS-shield: Tokens, caps հանրային RPC-ի համար, անոմալիա-մանկություն։

Գաղտնիք մենեջմենթ 'կարճ հոսանք, նավարկություն։

Ավազաքարերը 'արխիվների/հանրային հաճախորդների համար առանձին փամփուշտներ։

12) Հանրաքվեների կազմաձևը

12. 1 K8s: RPC-դարպաս (հորիզոնական մեծացում)

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 Envoy 'առաջնահերթություն և www.ier-ej.ru

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: Almentionation։

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 և limits

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 SLO վերահսկողություն և burn-rate

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) Վիրահատական խորհրդատվություններ

Ամեն օր, SLO-ի զեկույցը, կապասիտի դելտա, դիպուկահարների վիճակը, peer-health-ը։

Ամեն շաբաթ 'լիմիտների/QoS-ի ստուգում, DR թեստ (bootstrap կեղտոտից), պրունինգի և կոմպակշենի ստուգում։

Թողարկումից առաջ 'կանացի rollout, SLO-gatts և դիտարկված մետրեր, արձագանքի պլան։

Արժեքի բարձրացում ՝ CMS per 1k, TPS _ per _ դոլար (դոլարի արդյունավետությունը)։

15) Playbook 2019

Ա. Լատենտության պայթյունը RPC p95

1. Միացրեք P2-throttle-ը և իջեցրեք sampling; 2) բարձրացնել gateway/reader կրկնօրինակները։

2. մի մասը թարգմանել kash-միայն; 4) բացել տաք մեթոդների վերլուծությունը, անհրաժեշտության դեպքում 'deny-rules։

B. Queue-lag անվադողերի վրա> SLO

1. Կոնսուումերների (KEDA), 2) վերաբաշխել կուսակցությունը, 3) ժամանակավորապես կանգնեցնել bulk-ջոբը։

C անկում peer-count վալիդատոր/releeev

1. p2p մոդուլների վերագործարկումը, 2) նստատեղերի փոփոխությունը, 3) ցանցային ACL/NAT, 4) տեղափոխումը պահեստին։

D. Երկար bootstrap նոր կրկնօրինակում

1. Անցեք թարմ սարքավորումների վրա, 2) բարձրացնել IO, 3) ժամանակավորապես հեռացնել արխիվային ինդեքսները։

E. Spaik reorg/կամուրջ ուշացումներ

1. Ավելացնել K-ապացույցը/պատուհանը, 2) միացնել «finalized-only» ռեժիմը, 3) տեղեկացնել սպառողներին։

16)

1. Որոշել հանգույցների դերերը և նրանց SLO/սխալների բյուջեները։

2. Տարբերել գործառույթները 'consultus/RPC/ինդեքսավորող/արխիվ/կամուրջ/edge։

3. Միացրեք հավասարակշռությունը, QoS, backpressure և DLQ-ի հերթը։

4. Սարքավորում/fox-ensnc, pruning և բազմաբնույթ պահեստավորում։

5. Միացրեք մետրերը/treiss/logs, dashbords և burn-rate alerts։

6. Տեղադրեք ավտոսկեյլինգը (HPA/KEDA) և կանարեքային սալերը։

7. Անցկացնել քաոս թեստեր և DR ուսուցումներ։

8. Ներդրել վիրահատական հաշվարկները և արժեքի վերահսկումը։

17) Գլոսարիա

Backpressure-ը բեռնման ժամանակ մուտքի հոսքի կառավարման մեխանիզմներ է։

DLQ-ը «մեռած հերթն» է խնդրահարույց հաղորդագրությունների համար։

Pruning-ը պատմական վիճակի հեռացում է իրական պատուհանից դուրս։

Fox-www.nc/Winapshot-ը նոր կրկնօրինակի համաժամացման արագացված միջոց է։

Medier-eject-ը փամփուշտից դեգրադացված ինստանսի բացառումն է։

Burn-rate-ը SLO-ի հետ բյուջեի հոսքի արագությունն է։

Արդյունքում, ցանցային հանգույցների մեծացումը ոչ միայն «ավելացնելն» է, այլ ճարտարապետության համակարգային կարգապահությունը, QoS-ը, վիճակը և վիրահատական խստությունը։ Հետևելով այս շրջանակին (դերերի բաժանումը, հերթերը, քեշները, ավտոսկեյլը, տեսողությունը և հստակ SLO), էկոհամակարգը ստանում է կանխատեսելի արտադրողականություն, պիկի դիմադրություն և մեկ միավորի վերահսկվող արժեքը։

Contact

Կապ հաստատեք մեզ հետ

Կապ հաստատեք մեզ հետ ցանկացած հարցի կամ աջակցության համար։Մենք միշտ պատրաստ ենք օգնել։

Telegram
@Gamble_GC
Սկսել ինտեգրացիան

Email-ը՝ պարտադիր է։ Telegram կամ WhatsApp — ըստ ցանկության։

Ձեր անունը ըստ ցանկության
Email ըստ ցանկության
Թեմա ըստ ցանկության
Նամակի բովանդակություն ըստ ցանկության
Telegram ըստ ցանկության
@
Եթե նշեք Telegram — մենք կպատասխանենք նաև այնտեղ՝ Email-ի дополнение-ով։
WhatsApp ըստ ցանկության
Ձևաչափ՝ երկրի կոդ և համար (օրինակ՝ +374XXXXXXXXX)։

Սեղմելով կոճակը՝ դուք համաձայնում եք տվյալների մշակման հետ։