GH GambleHub

Բեռի հավասարակշռությունը

1) Ինչո՞ ւ և որտե՞ ղ է այն ճարտարապետության մեջ

Հավասարակշռությունը հաճախորդի և backends պարկի միջև «ket» է։ Նրա նպատակները

հասանելիություն (առանց ձախողման միասնական կետի), լատենտ (p95 ներքև), մասշտաբը (հորիզոնական), անվտանգությունը (TFC/WAF), ածխաջրածինների կառավարումը (canary/blue-green)։

Օգտագործման շերտերը

Edge/Global: Anycast, GSLB/GeoDNS, CDN/Edge-LB, DDoS.

L4 (TCP/UDP): NLB, maglev, առանց տերմինացիայի։

L7 (HTTP/2, gRPC, Direct Socket, QUIC) - ճանապարհի/վերնագրերի/կլեյամների, kash/սեղմման/retray։

Data-tier: DB-прокси (PgBouncer/ProxySQL), Redis Cluster/Consistent Hash, Kafka partitioning.

2) Հավասարակշռության մոդելները և ալգորիթմները

Round-Robin (RR) 'պարզ միատեսակ։

Least Connections (LC) 'լավ երկար ձիերի համար (WS, gRPC)։

Least Request/System-of-Two (P2C) 'երկու պատահական համեմատություն' լավ հավասարակշռություն արագության/որակի։

Weighted RR/LC 'քաշը canary/« տաք »նոդի համար։

Consistent Hashing (CH) 'նստաշրջան լիպսիոն առանց աղյուսակի (cart, Redis)։

Maglev/Flow-hash: արագ L3/L4-բաշխումը, որը դիմացկունություն է ֆլամպինգին։

Latency-a.ru 'ընտրություն սայթաքող p50/p95։

EWMA 'հաշվի է առնում ուշացման պատմությունը։

Առաջարկություն ՝ լռելյայն P2C (least-request) L7; stateful/kasha - consistent hash; для WS/gRPC — least-connections.

3) Ապստրիմների առողջությունը 'ստուգում և «վտարում»

Health-checks: TCP, HTTP 200/匹配 тела, gRPC status; ընդմիջումներ/timautes/սխալների շեմն է։

Medier Eject-ը '«աղմկոտ» instans (consecutive-5xx, success-rate-eject)։

Slow-start & warmup 'նոր instans փափուկ մուտքագրումը (քաշի աստիճանական աճը)։

Connational windaining 'արտանետման/deple - ակտիվ կոննեկտների «down» առանց խզման։

4) Նստաշրջաններ և լիպտություն (stickiness)

Cookie-stickiness (L7): `Set-Cookie: lb=<id>; SameSite; Secure`.

CH-ն '«hash (userId' sessionid Id 'cartid)»։

IP-hash-ը միայն փակ ցանցերում է (NAT կոտրում է)։

TTL լիպոզա + fallback-ը նոդայի էվիքցիայի ժամանակ։

Կարևոր է, որ նվազագույնի հասցնեք լիպոտի կարիքը, պահեք վիճակը ինստանից դուրս (Redis/DB/JWT)։

5) Գլոբալ հավասարակշռություն (GTM/GSLB)

Anycase + health-probe: մեկ IP, որը տեղադրված է մոտակա PoP-ում։ ավտոմատ ֆեյլերը։

GeoTS/Latency-III պատասխանը գեո/ուշացումով։

Տարածաշրջանային կլաստերներ. «բնակիչների տվյալները» մնում են տարածաշրջանում (GDPR); միջտարածաշրջանային failover կրկնօրինակմամբ։

Քաղաքական գործիչները ՝ գեո բլոկները, «ստիկերեգիոն» հաշիվը/տոկենը։

6) Արձանագրություններ և առանձնահատկություններ

HTTP/2 'մուլտիպլեքս, գերակայություններ; անհրաժեշտ է գրագետ connational-pool apstrim։

GRPC 'երկար գոյատևող strimes www.lepe-connections, ագրեսիվ health-winks։

Windows Socket/SSE 'ձիու լիպտություն, մեծ idle-թայմաուտներ, TCP keep-alive։

QUIC/HTTP/3 'արագ մեկնարկը, կորստի դիմադրությունը։ հետևեք MTU/path-MTU-ին։

TMS-termination/mTSA: termination edge/L7-LB; ներսում mTFC/identity (SPIFFE)։

7) Պաշտպանություն պերեստրոյից (overload nol)

Rate-limit: per-IP, per-key, per-route; burst+sustain.

Adaptive Concurrency (Envoy) 'միաժամանակ հարցումների դինամիկ սահմանը։

Queue/Surge-buffer: գծի սահմանափակ չափը 503 ազնիվ հրաժարմամբ։

Hedging/Parallel racing: դանդաղ հարցումների կրկնօրինակումը (միայն idempotent)։

Timeout budget 'առանձին connational/read/write։

Backpressure: «503 + Retry-After», հաճախորդների էքսպոնենցիալ ռեակտորները ջիթերի հետ։

Slow-loris պաշտպանություն 'ընթերցանության/ձայնագրման թայմաուտներ, նվազագույն արագություն։

8) Ալգորիթմները և նախկին ղեկավարությունը

Canary (weighted): 1–5–10–25–50–100% с guardrails (p95, 5xx, timeouts).

Blue-Green: ակնթարթային սվիտչ, արձագանք - CSA/LB։

Shadow/Mirror 'հարցումների պատճենը առանց պատասխանելու։ PII դիմակավորում։

Header/Claim-routing: `X-Canary: 1` или `JWT. claims. region/role`.

9) Autskeiling եւ drenage

HPA/ASG по CPU+RPS+p95+queue-depth.

PreStop hook 'սպասել ձիերի ավարտին։

Warm pool/instroneruse-ը սառը մեկնարկների կրճատումն է։

Capacity planning: wwww.'utilization 60-70 տոկոսը նորմալ է։

10) Դիտարկումը և SLO-ն

LB: RPS, p50/p95/p99, 4xx/5xx, բաց-connections, queue-len, ejections, retries, hit-ratio kesa։

Թրեյսինգը '«traceparent/x-request-id» -ի միջոցով LB-ի միջոցով ռուսական BD ծառայություններ։

Լոգները 'կառուցվածքային, դիմակներ PII/PAN, կորլացիա ապստրիով։

SLO երթուղով. Օրինակ ՝ "latency p95-300 ռուբլի", "availability 3699։ 9%`, `5xx ≤ 0. 5%`.

Ալերտներ ՝ շեղումներով (burn-rate SLO, ej.ru, 5xx/timeout)։

11) Տվյալների և քեշի հավասարակշռությունը

PostgreSQL/MySQL:
  • Read/Write split (ProxySQL/pgpool) + read-replicas; sticky-txn.
  • Failover 'RPO = 0 (ավելի թանկ) համաժամանակյա կրկնօրինակը։
Redis:
  • Redis Cluster + hash-slot; նստաշրջանների համար 'CH; Թայմաուտներ/Retryable errors.
Kafka/Redpanda:
  • Հավասարակշռությունը partitioning և consumer-windups միջոցով։ չխառնվել HTTP-LB-ի հետ։
  • Object Storage (S3/MinIO): multi-region failover через GSLB/replication.

12) K8s և ամպային LB

Իսպանիան (ClusterIP/NodePox/LoadBalancer) - L4։

Ingress/Gateway API-ը L7-միկրոօրգանիզմն է, կանարյան քաշը, TLS-ը։

AWS: NLB (L4, բարձր բաց), ALB (L7, WAF, sticky, header-routing)։

GCP: Global LB (L7/HTTP(S) с Anycast), TCP/UDP proxy LB.
Azure: Front Door (global), Application Gateway (L7), Load Balancer (L4).

13) Միգրացիայի օրինակներ

13. 1 NGINX (L7, least_conn, sticky, canary)

nginx upstream api_pool {
least_conn;
server api-1:8080 max_fails=3 fail_timeout=10s;
server api-2:8080 max_fails=3 fail_timeout=10s;
sticky cookie lb_id expires=30m path=/ secure httponly;
}

map $http_x_canary $dst {
default api_pool;
1    canary_pool;
}

upstream canary_pool {
least_conn;
server api-canary:8080 weight=1;
}

server {
listen 443 ssl http2;
location /api/ {
proxy_read_timeout 5s;
proxy_connect_timeout 1s;
proxy_set_header X-Request-Id $request_id;
proxy_pass http://$dst;
}
}

13. 2 HAProxy (P2C, health, slowstart, stick-table)

haproxy backend api balance leastconn option httpchk GET /health default-server inter 3s fall 3 rise 2 slowstart 10s server s1 10. 0. 0. 11:8080 check server s2 10. 0. 0. 12:8080 check stick-table type ip size 100k expire 30m http-request track-sc0 src rate limit per IP http-request deny deny_status 429 if { sc_http_req_rate(0) gt 50 }

13. 3 Envoy (P2C, outlier, retries, adaptive concurrency)

yaml load_assignment: {... }
lb_policy: LEAST_REQUEST least_request_lb_config: { choice_count: 2 }
outlier_detection:
consecutive_5xx: 5 interval: 5s base_ejection_time: 30s typed_extension_protocol_options:
envoy. extensions. filters. http. adaptive_concurrency. v3. AdaptiveConcurrency:
gradient_controller_config:
sample_aggregate_percentile: PERCENTILE_50 retry_policy:
retry_on: "5xx,reset,connect-failure"
num_retries: 2 per_try_timeout: 1s

13. 4 Kubernetes (Gateway API, weighted canary)

yaml apiVersion: gateway. networking. k8s. io/v1 kind: HTTPRoute spec:
rules:
- matches: [{ path: { type: PathPrefix, value: /api }}]
backendRefs:
- name: api-v1 weight: 90 port: 8080
- name: api-v2-canary weight: 10 port: 8080

14) Չեկ թերթերը

Նախքան LB/2019 թողարկումը

  • Ալգորիթմը ընտրվում է (P2C/LC/CH) կոդավորման տիպ։
  • Health-winks և ej.ru շեմն են։
  • Slow-start, warmup, connational-international ներառվում են։
  • TFC/mTSA, HSTS, անվտանգ ծածկագրեր; HTTP/2/3 անհրաժեշտության դեպքում։
  • Sticky/CH միայն անհրաժեշտության դեպքում։ TTL и fallback.
  • Rate-limit/burst, timeouts, retry-budget, adaptive concurrency.
  • Logs/treiss: «trace-id» -ը անիծվում է; PII դիմակավորում։
  • SLO/alerts p95/5xx/election/queue-len։
  • Կանարյան քաշը + արձագանքման պլան; shadow մեծ փոփոխություններով։

Ուղղանկյուն/համակցված երթուղիների համար

  • Idempotenty POST (Idempotency-Key)։
  • Failover PBS-ի միջև; same-method ստուգում։
  • Սխալների իրականացումը նորմալացված է. ETA/հաճախորդի պատճառները։

BD/kash համար

  • RW-split/կրկնօրինակներ; թայմաուտներ, ցանցային retry-a։
  • CH/slot-hash Redis-ի համար; պաշտպանություն «տաք պաշտպանությունից»։
  • Մոսկվա ուշացումներ և replair-lag.

15) Որակի մետրերը (նվազագույն)

Latency p50/p95/p99 երթուղիներով/112։

Error rate 4xx/5xx, timeout/overflow.
Open/active connections, queue depth, retry count.

Medier ejections-ը և պատճառները։

Sticky hit-ratio / cache hit-ratio.

GSLB: Ռուսական բաշխումը, ֆեյլոները, PoP հասանելիությունը։

16) Anti-patterna

Մեկ մոնոլիտ LB առանց վիզաների։

Sticky-նստաշրջանները «ամեն ինչի վրա», փոխարեն հեռացնել վիճակը։

Գլոբալ անվերջ գծերը (թաքցնում են խնդիրը, աճում են p99)։

Repray առանց ջիթերի/բյուջեի '«փոթորիկ» հարցումների։

Վստահություն 'X-Forwarded-For' առանց վստահված կղզիների ցուցակի։

Delain բացակայությունը WS/gRPC ալգորիթմների ավելացման ժամանակ։

Չի սովորեցնում long-lived կոնեկտները ավտոսկայում։

17) iGaming հատկություն

Պիկի և տրամագծերը ՝ micro-cache-ը տեղեկագրերում/listings (1-5 s), հերթով։

Live-խաղեր/strims: LC երկար ձիերի համար, ամենամոտ PoP-ի գերակայությունը։

Վճարումները 'գեո/ռուբլու/գումարի/պրովայդերի միկրոակտիզացիա; խիստ թայմաուտներ և կուռքեր։

Պատասխանատու խաղը և համակրանքը 'առաջնահերթությունը բաց թողնել սահմանների/արգելափակումների հարցումները նույնիսկ դեգրադացիայի ժամանակ (fail-open/close)։

18) Իրականացման գործընթացը (4 սպրինտ)

1. Աղյուսակի քարտեզը 'արձանագրություններ, բեռներ p95/p99, կրիտիկական երթուղիներ։

2. LB կազմաձևումը 'ալգորիթմներ, health/medier, TSA, limits/timauta, observability։

3. GSLB/Edge: Anycast/GeoTS, PoP-helscheks, տարածաշրջանային տվյալների քաղաքականություններ։

4. Ռելիզի ռազմավարություն 'canary/shadow, SLO-alerts, ավտոմեքենաների սկեյլ + medain, post-պատահականության վերլուծություն։

Գլամուրային փուչիկ

Ընտրեք ալգորիթմը կոդավորման տիպ (P2C/LC/CH) և կոննեկտի տևողությունը։

Պահեք ապաստրիմները «առողջ» 'health-www.ks + www.ier + slow-start + medain։

Կառավարեք խնջույքի բեռը 'rate-limit, adaptive concurrency, ձախողման հերթեր։

Օգտագործեք GSLB/Anycript գլոբալ հասանելիության և համեմատության համար տարածաշրջաններում։

Դիտարկումը և SLO-ն պարտադիր են։ թողարկումները 'canary/shadow-ի միջոցով' արձագանքման պլանով։

Որտե՞ ղ կարող եք հեռացնել նստաշրջանը ինստաններից և LB-ից։

Contact

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

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

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

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

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

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