GH GambleHub

تعادل بار و شکست

تعادل بار و شکست

1) اهداف و شرایط

تعادل ترافیک را در سراسر نمونه ها/مناطق/مناطق برای عملکرد و انعطاف پذیری توزیع می کند.
شکست - شکست کنترل شده.
RTO/RPO - زمان بازیابی هدف و از دست دادن اطلاعات قابل قبول است.
SLO: سطح هدف در دسترس بودن/تاخیر ؛ به عنوان یک «دروازه» برای اتوماتیک و عقب نشینی عمل می کند.

2) لایه های متعادل کننده

2. 1 L4 (TCP/UDP)

مزایا: عملکرد، سادگی، TLS passthrough. منفی: بدون درک مسیر/کوکی ها.
نمونه: NLB/GLB، HAProxy/Envoy L4، IPVS.

2. 2 L7 (HTTP/gRPC)

مزایا: مسیر مسیریابی/هدر، وزن قناری، چسبنده. منفی: گران تر در CPU/تاخیر.
مثال: NGINX/HAProxy/Envoy/Cloud ALB/API Gateway.

2. 3 جهانی

DNS/GSLB: بررسی سلامت + پاسخ جغرافیایی/وزنی.
Anycast/BGP: یک IP در سراسر جهان، نزدیکترین نقطه اعلام.
CDN/لبه: کش/Feilover در محیط.

3) الگوریتم های توزیع

گرد رابین/وزن - پایه.
کمترین اتصالات/تاخیر - برای درخواست های «سنگین».
هش کردن مداوم - چسبندگی کاربر/مستاجر بدون جلسه مرکز.
محل مبتنی بر هش - برای انبارها و خدمات stateful.

4) جلسات و چسبنده

Cookie-sticky: L7 LB یک کوکی را برای بازگشت به نمونه تنظیم می کند.
Src-IP چسبنده: در L4، بدتر از NAT/CGNAT.
هش کردن مداوم: برای کش/چت افقی بهتر است.
هدف: در صورت امکان، سرویس بدون حالت را انجام دهید، در غیر این صورت - دولت (جلسات در Redis/DB) را برای ساده سازی failover بردارید.

5) قابلیت اطمینان: بررسی سلامت و حذف از چرخش

چک های فعال: HTTP 200/پروب های مسیر کسب و کار عمیق (به عنوان مثال «/healthz/withdraw »با وابستگیها).
منفعل (تشخیص بیرونی): تخلیه پشتی در 5xx/timeouts.
گرم شدن: گنجاندن صاف از موارد جدید (آهسته شروع).
تخلیه برازنده - حذف از استخر → منتظر درخواست برای تکمیل.

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) مدیریت خطا: timeout/retry/circuit-breaking

وقفه ها: کوتاه تر از اتمام وقت مشتری ؛ مشخص در هر مسیر.
تکرار: 1-2 با لرزش و بی نظمی ؛ ممنوعیت بازپرداخت در POST بدون کلید idempotence.

قطع کننده مدار: محدود کردن درخواست ها/خطاهای همزمان ؛ بازیابی «نیمه باز»

بودجه: محدودیت های Retray/ادغام انفجار به طوری که به ترتیب خود DDOS.

7) الگوهای کوبرنتیز

ClusterIP/NodePort/LoadBalancer/Ingress - موارد اولیه اولیه.
آمادگی/زنده بودن: ترافیک فقط در تخته های آماده ساخته شده است.
PodDisruptionBudget نمی تواند N کپی را در همان زمان رها کند.
HPA/VPA: مقیاس بندی توسط معیارهای CPU/RED، پیوند به LB.
ServiceTopology/Topology آگاه نکات: محل توسط منطقه.
نوع سرویس = LoadBalancer (منطقه ای): حداقل 2 کپی در هر AZ.

نمونه ای از آمادگی برای یک مسیر بحرانی:
yaml readinessProbe:
httpGet: { path: /healthz/dependencies, port: 8080 }
periodSeconds: 5 failureThreshold: 2

8) ترافیک بین منطقه ای و بین منطقه ای

Multi-AZ (در داخل منطقه): توزیع به طور مساوی (منطقه LB)، ذخیره سازی - کپی همزمان.

چند منطقه:
  • فعال فعال: هر دو منطقه در خدمت ترافیک ؛ پیچیده تر - شما نیاز به تکرار داده ها، سازگاری و مسیریابی جغرافیایی دارید.
  • فعال منفعل: منطقه اصلی خدمت می کند، ذخیره - "گرم/گرم/سرد است. سوئیچینگ ساده تر، سریع تر، اما RPO بالاتر.
استراتژی های GSLB:
  • Geo-DNS (نزدیکترین منطقه)
  • DNS وزنی (canary/redistribution)
  • اندازه گیری های مبتنی بر تاخیر (RTT)
  • Failover = توسط سیگنال های سلامت/در دسترس بودن (پروب ها از نقاط مختلف امتیاز).

9) داده ها و شکست

کش/حالت: در صورت امکان - منطقه ای محلی ؛ برای فعال فعال - CRDT/هش سازگار است.

پایگاه داده:
  • تکرار همزمان = RPO کم، تاخیر بالاتر.
  • ناهمزمان = تاخیر کمتر، اما RPO> 0.
  • صف: معکوس/چند لایه topicals ؛ deduplication رویداد.
  • طراحی idempointency عملیات و مکانیک پخش.

10) محیط: DNS/Anycast/BGP/CDN

DNS: TTL کوتاه (30-60s) + بررسی سلامت از شبکه شما.
Anycast: چندین POP با یک IP - نزدیکترین ترافیک دریافت می کند، feilover در سطح مسیریابی است.
CDN/Edge: حافظه پنهان و «دروازه» برای حفاظت، استاتیک/رسانه ها زمانی که منبع می افتد سرویس می شود ؛ اصل و نسب سپر + пер سلامت -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) Automatic failover: سیگنال ها و دروازه ها

Tech-SLI: نرخ 5xx، p95/p99، اشباع، دست دادن TLS، بازنشانی TCP.
SLI کسب و کار: موفقیت سپرده/پرداخت، هیچ خطای پرداخت در PSP.
گیتس: اگر آستانه بیش از حد باشد، منطقه/نمونه را خاموش کنید، وزن استخر پایدار را افزایش دهید، GSLB را تغییر دهید.
Runbook: دستورالعمل بازگشت گام به گام.

13) تست و بازرسی (هرج و مرج و بازی روز)

تست هرج و مرج: غیر فعال کردن AZ/مناطق، تخریب DB/کش، شبیه سازی بسته از دست دادن.
روز بازی: آموزش Faylover شامل تیم های تماس است.
تشخیص: ردیابی از محیط به عقب، مطابقت حاشیه نویسی انتشار و معیارها.

14) ایمنی و انطباق

mTLS بین LB↔servisy، WAF/نرخ محدودیت در محیط.
مناطق شکست/تقسیم بندی: جداسازی شعاع انفجار.
سیاستها: تک نقطه شکست (SPOF) ممنوعیت، الزامات مورد نیاز برای «حداقل N کپی/AZ».

15) ضد الگوهای

یک LB/یک منطقه برای تمام ترافیک (SPOF).
بدون بررسی عمیق «/healthz »(سبز - اما DB/صف در دسترس نیست).
Retray without idempotency → معاملات/پرداختهای دوگانه.
چسبنده در هر IP با NAT جرم → عدم تعادل.
دامنه DNS با TTL بالا (ساعت قبل از تعویض).
بدون تخلیه برازنده زمانی که تخلیه - شکستن درخواست.

16) چک لیست پیاده سازی (0-45 روز)

0-10 روز

ارسال موارد به ≥2 AZ ؛ آمادگی/زنده بودن، چک های بهداشتی را فعال کنید.
پیکربندی L7-timeouts/retries (1 تلاش)، تشخیص بیرونی.
تخلیه برازنده و شروع آهسته را فعال کنید.

11-25 روز

GSLB (جغرافیایی/وزنی) یا Anycast را برای محیط وارد کنید.
وزن قناری/سیاست های مسیر ؛ چسبنده از طریق کوکی/هش سازگار.
دروازه SLO برای خودکار feilover (p95/5xx + SLI کسب و کار).

26-45 روز

DR منطقه ای: فعال-فعال یا فعال-منفعل با آزمون ترجمه.
روزهای هرج و مرج با AZ/مناطق خاموش، گزارش RTO/RPO.
خودکار کتاب اجرا 'و (مکث/تغییر/بازگشت اسکریپت).

17) معیارهای بلوغ

پوشش Multi-AZ ≥ 99٪ از مسیرهای بحرانی.
DNS/GSLB/Anycast برای نقاط پایانی عمومی اجرا می شود.
MTTR هنگامی که یک AZ می افتد <5 دقیقه (p95).
RPO برای داده های بحرانی ≤ هدف (به عنوان مثال، ≤ 30 ثانیه).
سه ماهه بازی روز و feilover موفق برنامه ریزی شده.

18) نتیجه گیری

تعادل قابل اعتماد و شکست یک معماری لایه ای است: L7-policies محلی (زمان بندی/retries/CB، چک های بهداشتی)، چسبندگی صحیح و هش کردن، ثبات متقابل منطقه و در محیط - GSLB/DNS/Anycast. اضافه کردن دروازه SLO، idempotency، تخلیه برازنده و آزمون هرج و مرج به طور منظم - و هر گونه از دست دادن یک گره، منطقه و یا حتی منطقه تبدیل به یک رویداد قابل کنترل با RTO قابل پیش بینی/RPO.

Contact

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

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

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

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

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

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