GH GambleHub

مقیاس بندی گره های شبکه

(بخش: اکوسیستم و شبکه)

1) نقش گره و حلقه های ترافیک

اعتبار سنجی/تولید (اجماع/بلوک/rollup-sequencer): یک مسیر بحرانی نهایی سازی.
Reader/indexer (read-only/API/archive): درخواست های برنامه و تجزیه و تحلیل را ارائه می دهد.
Relay/bridge (cross-domain): انتقال پیام ها/دارایی ها بین دامنه ها.
دروازه/لبه (ورود/gRPC/WebSocket/QUIC): دریافت درخواست های مشتری، محدودیت نرخ، حافظه پنهان.
Tele metric/observability: مجموعه ای از معیارها/سیاهههای مربوط/آثار، نمونه های مصنوعی.

هر نقش دارای SLO خاص خود، بودجه خطا و سیاست مقیاس پذیری است.

2) مدل های مقیاس گذاری

2. 1 مقیاس بالا

افزایش CPU/RAM/SSD/NIC. سریع برای قله، اما محدود به آهن است و می تواند هزینه هر واحد ترافیک را افزایش دهد.

2. 2 مقیاس کردن

اضافه کردن کپی پشت balancers/صف. نیاز به idempotence، سیاست های چسبنده، حد نصاب و حافظه نهان سازگار (یا ناتوانی خود را).

2. 3 تنوع عملکردی

جداسازی وظایف: گره های اجماع جدا می شوند ؛ RPC/API - به طور جداگانه ؛ نمایه ساز/آرشیو - به طور جداگانه ؛ پل/رله - به طور جداگانه.

2. 4 مقیاس جغرافیایی

خوشه های منطقه ای (EU/US/AP) + anycast/GeoDNS/Latency آگاه LB ؛ تکرار با نهایی/تاخیر و حافظه های نهان محلی

2. 5 تقسیم/پارتیشن بندی

جداسازی توسط کلید (chainId، shard، topic) برای صف/ایندکس کننده ها و ذخیره ستون.

3) مسیر درخواست: تعادل، ذخیره، QoS

تعادل L4/L7: چک های بهداشتی، چسبنده با نشانه/ردیابی، قطع کننده مدار، تخلیه بیرونی.

حافظه های پنهان:
  • در لبه (TTL کوتاه برای RPC های اغلب خوانده شده) ؛
  • در داخل پردازنده (خواندن از طریق، نوشتن در اطراف برای شاخص) ؛
  • کش های منفی (یافت نشد).
  • کلاس های QoS: P0 (نهایی/پل/پرداخت)، P1 (محصول)، P2 (فله/آرشیو).
  • فشار برگشتی: توکن/اعتبار، محدودیت درخواست موافقت، صف با DLQ.
  • پذیرش: پیش فیلتر (auth، محدودیت ها، جغرافیایی/تحریم ها)، رد اولیه درخواست های «گران».

4) مدیریت وضعیت: عکس های فوری، هرس، آرشیو

کامل/هرس شده: گره های هرس شده برای RPC ؛ Archive - برای نمایش داده های گذشته نگر در یک استخر جداگانه.
عکس های فوری/همگام سازی سریع: عکس های فوری منظم، بوت استرپ سریع کپی های جدید.
ذخیره سازی داغ/گرم/سرد: حالت گرم در NVMe، بلوک های تاریخی - S3/object با شاخص.
Garbadge-collect/compaction: پنجره های برنامه ریزی شده، نه در اوج.
DA/بافر دسته ای (برای L2/پل): تضمین تحویل و دوره تمیز کردن با رسید اثبات.

5) صف و جریان

ورودی: Kafka/Pulsar/NATS с partition-key = 'chainId' shard 'topic'.
گروه های مصرف کننده: مقیاس بندی توسط احزاب، کنترل کننده بی نظیر (صندوق ورودی/صندوق ورودی).
DLQ و retrai: عقب نشینی نمایشی، قرنطینه پیام سمی.
نظم توافق: در حزب برای جبرگرایی.

6) بهینه سازی حمل و نقل و شبکه

QUIC/HTTP/2: چندگانه، اصلاح سر خط.
تنظیم TCP: BBR/CUBIC، افزایش بافر، 'SO _ REUSEPORT'.
هسته/eBPF: پشته شبکه شتاب، هش سازگار برای تعادل.
NIC بارگیری и پین کردن IRQ к NUMA.
gRPC: پارامترهای keepalive/ping، محدودیت حداکثر پرواز.
WebSocket: استخر اتصال، پینگ/پنگ، محدود کردن اشتراک در هر مشتری.

7) قابلیت اطمینان: Quorums، تخریب، آزمون هرج و مرج

خواندن/نوشتن حد نصاب (در صورت لزوم)، شمشیربازی رهبر.
حالت های تخریب: فقط خواندنی، «فقط نهایی»، خاموش کردن روش های سنگین.
مهندسی هرج و مرج: تاخیر/تلفات، راه اندازی مجدد، شکست دیسک/شبکه، سناریوهای «سازماندهی مجدد با سرعت بالا».

8) SLI/SLO و اهداف

SLI (مثال):
  • تاخیر P95 RPC توسط کلاس روش ؛
  • میزان موفقیت ؛ p95 تأخیر صف ؛
  • زمان تا پایان p95 (برای ریل/پل) ؛
  • زمان بوت استرپ تصویر لحظهای ؛
  • رشد کشور/روز ؛ اشباع CPU/IO
SLO (نشانه ها):
  • P0 RPC p95 ≤ 400 میلی ثانیه ؛ دسترسی ≥ 99 95%;
  • رله نهایی p95 ≤ 3 دقیقه ؛
  • صف تاخیر P0 p95 ≤ 2 с ؛
  • بوت استرپ خواننده جدید ≤ 30 мин (سریع همگام + عکس فوری) ؛
  • خطای سوزاندن بودجه در پنجرۀ 2 ساعته ≤ 2 ×.

9) قابلیت مشاهده و هشدار

معیارها: تاخیر (هیستوگرام)، RPS، خطاها (توسط کلاس)، صف تاخیر، GC/heap، دیسک IO، همسالان P2P، نرخ شایعات.
Traces: end-to-end 'trace _ id' through the edge → RPC → indeksator → khraneniye → most.
سیاهههای مربوط: ساختار یافته، همبستگی با 'request _ id'.
هشدارها: سوزاندن نرخ P0، صف تاخیر، همکار تعداد زیر آستانه، تجدید سازمان خوشه، عکس فوری رانش.

10) الگوهای خودکار

HPA/VPA (K8s): по CPU/تاخیر/RPS/صف تاخیر ؛ KEDA با طول topiaries.
گام به گام: پروفایل های اوج روز ؛ پیش بینی شده توسط ML/فصلی.
گرم لوازم یدکی: ماکت گرم کردن بدون ترافیک (ترویج برازنده).
rollout امن: قناری + outlier-ejection + SLO - гейты.

11) ایمنی و انزوا

mTLS/کلید پینینگ ؛ RBAC/ABAC در هر روش ؛ محدودیت های QoS برای هر سازمان/مستاجر.
Rate-limit و DoS-shield: نشانه ها، captchas برای 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 نماینده: اولویت بندی و خارج کردن

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 کنترل 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. 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، دلتا capacy، وضعیت عکس های فوری، سلامت همکار.
هفتگی: تجدید نظر در محدودیت/QoS، تست DR (بوت استرپ از عکس فوری)، چک کردن هرس و کمپرسور.
قبل از انتشار: اجرای قناری، دروازه های SLO و معیارهای مشاهده شده، برنامه برگشت.
حسابداری هزینه: CTS در هر درخواست 1k، TPS_per_$ (بهره وری در هر دلار).

15) حوادث کتاب بازی

A. انفجار تاخیر RPC p95

1. امکان نمونه برداری P2-throttle و پایین ؛ 2) افزایش کپی های دروازه/خواننده ؛

2. انتقال برخی از ترافیک فقط به کش. 4) باز کردن تجزیه و تحلیل روش داغ، در صورت لزوم - انکار قوانین.

B. صف تاخیر در اتوبوس> SLO

1. مصرف کنندگان مقیاس خودکار (KEDA)، 2) احزاب توزیع مجدد، 3) به طور موقت مشاغل فله را متوقف می کنند.

C. قطره شمارش در اعتبار سنج/رله

1. راه اندازی مجدد ماژول P2P، 2) تغییر صندلی، 3) بررسی شبکه ACL/NAT، 4) حفاظت سوئیچ.

D. بوت استرپ طولانی ماکت جدید

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) واژه نامه

Backpressure - مکانیسم برای کنترل جریان ورودی در طول اضافه بار.
DLQ - «صف مرده» برای پیام های مشکل.
هرس کردن - حذف وضعیت تاریخی خارج از پنجره فعلی.
Fast-sync/Snapshot یک راه سریع برای همگام سازی یک ماکت جدید است.
Outlier-ejection - محرومیت از موارد تخریب شده از استخر.
نرخ سوختن - میزان مصرف بودجه خطا نسبت به SLO.

خط پایین: پوسته پوسته شدن گره های شبکه است که نه تنها «اضافه کردن کپی»، اما نظم و انضباط سیستم معماری، QoS، مدیریت حالت و دقت عملیاتی. با پیروی از این چارچوب (جداسازی نقش، صف، انبارها، مقیاس خودکار، قابلیت مشاهده و SLO های روشن)، اکوسیستم عملکرد قابل پیش بینی، حداکثر انعطاف پذیری و هزینه قابل کنترل در هر واحد ترافیک را به دست می آورد.

Contact

با ما در تماس باشید

برای هرگونه سؤال یا نیاز به پشتیبانی با ما ارتباط بگیرید.ما همیشه آماده کمک هستیم!

Telegram
@Gamble_GC
شروع یکپارچه‌سازی

ایمیل — اجباری است. تلگرام یا واتساپ — اختیاری.

نام شما اختیاری
ایمیل اختیاری
موضوع اختیاری
پیام اختیاری
Telegram اختیاری
@
اگر تلگرام را وارد کنید — علاوه بر ایمیل، در تلگرام هم پاسخ می‌دهیم.
WhatsApp اختیاری
فرمت: کد کشور و شماره (برای مثال، +98XXXXXXXXXX).

با فشردن این دکمه، با پردازش داده‌های خود موافقت می‌کنید.