GH GambleHub

Traffigi shaping we marşrutlaşdyrmak

1) Näme üçin bularyň hemmesi

Shaping we marşrutlaşdyrma - dolandyrylýan elýeterlilik we öňünden aýdylýan gizlinlik bazasy:
  • Durnuklylyk: "şowhunly goňşularymyza" kanallary doldurmaga ýol bermeýäris.
  • Adalat: tenantlaryň/synplaryň arasyndaky ileri tutulýan ugurlar we kwotalar.
  • Netijelilik: Haýyşy has çalt/arzan işlenilýän ýere iberýäris.
  • Üýtgeşmelere gözegçilik etmek: töwekgelçiliksiz kanar/weighted-relizler.
  • Tygşytlamak: egress/egress-gymmaty we CDN keş-hilesini optimizirlemek.

2) Esasy düşünjeler

2. 1 Traffic shaping vs policing

Shaping - maksatly tizlik bilen bukjalary buferlemek we ibermek arkaly traffigi deňleşdirýär ("partlamalary" tekizlemek).
Policing - buferizasiýa etmezden artykmaçlygy "jezalandyrýar". Has kyn, ýöne arzan.

2. 2 Synplar, nobatlar we dersler

Ileri tutulýan nobatlar (PRIO), WFQ/DRR (adalatly paýlanyş), HTB (iýerarhiki kwotalar), CoDel/RED (buferblowate garşy göreş), ECN (dropsyz artykmaç ýük signaly).
L7-de - RPS/konnektleriň/baýtlaryň we ileri tutulýan howuzlaryň çäkleri görnüşindäki "nobatlar".

2. 3 Çäklendirmek algoritmleri

Token Bucket (n tokenleri rate r-den goşulýar; k tokenlerini "harçlaýar").
Leaky Bucket (kesgitlenen akym; tekizlemek üçin amatly).
Global/lokal çäkler: ýerli - çalt, global - adalatly (Redis/etcd/per-tenant).

3) L3/L4 üçin QoS

3. 1 DSCP/ToS we hyzmat synplary

Paketleri traffigiň görnüşine görä belläň (interaktiw, arka-RPC, fon işleri).
Maglumat merkezlerinde - DSCP syýasatyny tor fabrigi/bulut bilen utgaşdyryň.

3. 2 Linux tc: HTB + fq_codel (eskiz)

bash
Clearing tc qdisc del dev eth0 root 2 >/dev/null         true

Корневая HTB с 1Gbit tc qdisc add dev eth0 root handle 1: htb default 30 tc class add dev eth0 parent 1: classid 1:1 htb rate 1gbit

Класс latency-critical 200Mbit tc class add dev eth0 parent 1:1 classid 1:10 htb rate 200mbit ceil 1gbit prio 0 tc qdisc add dev eth0 parent 1:10 handle 10: fq_codel

Класс background 100Mbit tc class add dev eth0 parent 1:1 classid 1:30 htb rate 100mbit ceil 1gbit prio 2 tc qdisc add dev eth0 parent 1:30 handle 30: fq_codel

3. 3 ECN/RED/BBR

ECN iň ýokary derejedäki düşekleri peseldýär; RED/CoDel buferblowati çäklendirýär.
BBR (Cubic ýerine) köplenç p99 gizlinligini azaldar, esasanam WAN/agyr nobatlaryň üstünde.

4) L7-marşrut (HTTP/gRPC/WS)

4. 1 Routing ölçegleri

Usullar/usullar ('/api/v1/', 'POST'), sözbaşylar (müşderiniň wersiýasy, fiç-baýdaklar, kanareýkaly heder), kuklar (A/B, sticky), JWT-markalar (tenant/role), geo/ASN, wagtlaýyn penjireler, ýükler (outlier detection).
Protokol: HTTP/2 (multiplekslemek), HTTP/3/QUIC (paketleriň ýitmegine garşylygy), gRPC (bi-di streams), WebSocket (uzak möhletli konnektler).

4. 2 Deňagramly split/kanar relizleri

Rout 'v1: 95%', 'v2: 5%', "ýaşyl" metriklerde awtomatiki ösüş.
Kesmek: ýalňyşlyklar/gizlinlik/iş üýtgemeleri.

Envoy (eskiz)

yaml route:
weighted_clusters:
clusters:
- name: svc-v1 weight: 95
- name: svc-v2 weight: 5

Istio

yaml apiVersion: networking. istio. io/v1beta1 kind: VirtualService spec:
hosts: ["svc"]
http:
- route:
- destination: { host: svc, subset: v1, weight: 95 }
- destination: { host: svc, subset: v2, weight: 5 }

4. 3 Sticky-sessiýalar we consistent hashing

Kukini/IP/JWT kesgitleýji boýunça session affinity.
"Consistent hashing" keş-klasterler, şardlanan hyzmatlar, geýtweýler rate limit üçin.

Nginx

nginx upstream api {
hash $cookie_user_id consistent;
server 10. 0. 0. 1;
server 10. 0. 0. 2;
}

4. 4 Geo- we latency-aware routing

GeoIP/ASN gyrada (CDN/edge) → iň ýakyn ROR/sebit.
Latency-aware: wagtal-wagtal saglyk synaglary + RTT ölçegleri → "iň çalt" klastere trafik.

4. 5 Outlier detection / circuit breaking

"Erbet" ýagdaýlary ýok etmek: max-ejection-percent, esasy ýalňyşlyklar/gizlinlik.
Circuit breaker: hatarlarda/RPS/konnektlerine çäklendirmeler.

5) Şlýuz/meş-stek derejesinde traffic shaping

5. 1 Rate limiting

Lokal (per-pod): arzan, ýöne adalatly däl.
Global (Redis/etcd): Adalat per-tenant/API-açar.
Syýasatçylar: per-route, per-method, per-tenant, burst.

Envoy RLS (eskiz)

yaml typed_per_filter_config:
envoy. filters. http. ratelimit:
"@type": type. googleapis. com/envoy. extensions. filters. http. ratelimit. v3. RateLimit domain: "api"
rate_limit_service:
grpc_service: { envoy_grpc: { cluster_name: rate_limit_cluster } }

5. 2 Fairness we ileri tutulýan ugurlar

Esasy howuzlar: "interaktiw"> "ulgamlaýyn"> "fon".
DRR/WFQ L7 ekwiwalentleri: kwotalar/agramlar per-müşderi/tenant.

5. 3 Artykmaç ýüklemek we goramak

Load-shed: býudjetlerden ýokary bolan ýagdaýynda ret/pese gaçmak.
Adaptive concurrency: p50/p95/queue-len çäkleriniň dinamikasy.
Server-side backpressure: 429/503 + Retry-After.

6) eBPF we CNI derejesi

6. 1 Cilium/eBPF

Süzgüç/ugrukdyryş: az kontekst-switches, inçe L3-L7 syýasatlary.
Durnukly paýlamak üçin Maglev hashing.
per-pod QoS (TC/XDP hooks) üçin eBPF programmalary.

6. 2 Calico/NetworkPolicies

Giriş syýasaty L3/L4, esasy ileri tutulýan synplar, Kubernetes QoS (Guaranteed/Burstable/BestEffort) bilen integrasiýa.

7) Edge/CDN we API şlýuzlary

CDN: keş açarlary (kadalaşma query/headers), stale-while-revalidate, origin (rate limit/bot-süzgüçler).
API şlýuzlary: autentifikasiýa, kwotalar/nyrh meýilnamalary (per-consumer), SLA-çäklendirmeler, geo-marşrut, API wersiýasy.
WAF: ýadro CPU sarp etmezlik üçin gyrada süzgüç.

8) Asinhron tekerler/akym

Kafka/NATS/Pulsar: öndürijiler/konsumerler üçin kwotalar, batch-ululyk çäkleri, lag arkaly backpressure.
Wakalaryň ugrukdyrylmagy: birmeňzeşlik üçin "ýalpyldawuk" partiýa (tenant/idempotency-key) açarlary.
"Exactly-once" ≈ "bir gezek täsirli": geleşik öndürijileri + idempotent sinki.

9) Wagtlar, retralar, backoff

Wagtyň geçmegi: müşderi <proxy <hyzmat (tersine däl).
Retrailer: jitterleşdirilen eksponensial backoff bilen çäkli san, ýöne tupan ýok.
Retralarda idempotentlik hökmanydyr; ýogsam - SAGA/kompensasiýa.
Hedged/parallel requests (seresap): p99 gowulaşdyrýar, umumy traffigi artdyrýar.

10) Synlamak we SLO

10. 1 Metrikler

rate_limit_hits, requests_queued, shed_requests_total, latency_ms{p50,p95,p99}, error_ratio, retry_attempts, outlier_ejections, queue_time_ms.

Synplar: class = interactivesystembackground, tenant, route.

10. 2 Söwda

Correlation-ID zyňyň; 'retry' shed 'throttle' queue '

Kiçi ulgamlara edýän täsirine düşünmek üçin retralar/hedges üçin linkalar.

10. 3 Giriş/hasabat

Damarlar/şedding/çäkler boýunça gysgaça maglumat, ugurlar boýunça ýylylyk kartalary.
Adalatyň per-tenanty üçin aýratyn paneller (fairness index).

10. 4 SLO-mysallar

"p99 ≤ 300 ms 95-percentile ýükde; shed ≤ 0. 1%; error_ratio ≤ 0. 5%».
"Artykmaç ýüklenende kwotanyň azyndan 95% -i interaktiw klasa kepillendirilýär".

11) Konfigurasiýa mysallary

11. 1 Nginx: rate limit + burst + kanar bölüji

nginx map $http_x_canary $canary { default 0; 1 1; }

limit_req_zone $binary_remote_addr zone=perip:10m rate=10r/s;

upstream api_v1 { server 10. 0. 0. 1; }
upstream api_v2 { server 10. 0. 0. 2; }

server {
location /api/ {
limit_req zone=perip burst=20 nodelay;
if ($canary) { proxy_pass http://api_v2; break; }
proxy_next_upstream error timeout http_502 http_503 http_504;
proxy_pass http://api_v1;
}
}

11. 2 Envoy: circuit breaker + outlier detection

yaml circuit_breakers:
thresholds:
- priority: DEFAULT max_connections: 1000 max_pending_requests: 500 max_requests: 2000 outlier_detection:
consecutive_5xx: 5 interval: 10s max_ejection_percent: 50 base_ejection_time: 30s

11. 3 Istio: per-tenant kwota (label arkaly ätiýaçlyk)

yaml apiVersion: security. istio. io/v1 kind: AuthorizationPolicy spec:
selector: { matchLabels: { app: api } }
rules:
- when:
- key: request. headers[x-tenant]
values: ["gold"]
Next - RateLimitPolicy in the limit provider with a large quota pool for "gold."

11. 4 Kubernetes QoS hintleri

Möhüm podalar üçin garanteed (requests = limits).
PodPriority & Preemption: kritiki podlar ýetmezçilik ýüze çykan halatynda fon podlaryny çalşar.
Topology Spread Constraints: durnuklylyk üçin zolaklar boýunça paýlanyş.

12) Anti-patternler

Global göz çägi → möhüm müşderileriň ýalan 429/wagtlary.
Jitter/idempotentlik → tupansyz retrailer.
Wagtlaryň bulaşyklygy (müşderi> serwer) → doňmak we "goşa iş".
Prod we synaglar üçin umumy keşler/nobatlar → maglumatlaryň hapalanmagy.
"Elmydama sticky" umumy manysyz → deň däl ýük/gyzgyn düwünler.
Öçürilen outlier detection → "çüýrän" ýagdaý hepdäniň ölçeglerini bozýar.

13) Girizmegiň çek-sanawy

  • Traffigi bölüň: synplar/tenantlar/ugurlar.
  • Maksat býudjetlerini belläň: RPS/konnektler/baýtlar we p95/p99.
  • rate limit (lokal + global), circuit breaker, outlier detection.
  • Kanar bölünişigini sazlaň + metrikler boýunça awtoulag çykyşy.
  • Eksponensial backoff + jitter bilen wagt/retrauslary belläň.
  • ECN/BBR (mümkin boldugyça) we egress üçin fq_codel/HTB açyň.
  • "kölegeler" we synaglar üçin aýratyn howuzlar/nagt pullar/nobatlar.
  • Daşbordlar: çäkleriň, nobatlaryň, gizlinligiň, fairness metrikleri.
  • SLO we runbook: şedding/yzyna/goşulma kriteriýalary.

14) FAQ

Q: Näme saýlamaly: shaping ýa-da policing?
A: Ulanyjy ýollary üçin - shaping (düşeksiz tekizlemek). Hyzmat synplary üçin "fon "/" bulk "- möhüm akymlary goramak üçin syýasat.

S: Retraý tupanlaryndan nädip gaça durmaly?
A: Jitterleşdirilen backoff, synanyşyk çäkleri, idempotentlik, "Retry-After" serwer maslahatlary, global kwotalar.

Q: Sticky ýa-da hashing?
A: Sticky - sessiýa/kesh zerur bolanda ulanyjy üçin lokal; hashing - şardingiň birmeňzeşligi we durnuklylygy zerur bolanda.

S: HTTP/3/QUIC näme berýär?
A: HOL-blokirlemesiz TCP, ýitgilere has gowy garşylyk, has çalt dikeldiş - p99/p999 guýruklaryny ep-esli azaldar.

15) Netijeler

Netijeli shaping we L7-marşrutlaşdyrma, gözegçilik we SLO tarapyndan goldanýan ileri tutulýan ugurlar we kwotalar, adalatly paýlanyş, howpsuz çäkler we akylly marşrut syýasatlarynyň utgaşdyrylan toplumydyr. Beýan edilen amallara eýerip (aşaky derejelerde HTB/fq_codel/ECN we ýokarsynda Envoy/Istio/Nginx/eBPF), öňünden aýdyp boljak gizlinlik guýruklaryny, aşa ýüklenmäge garşylygy we gözegçilik edilýän, howpsuz neşirleri alarsyňyz.

Contact

Biziň bilen habarlaşyň

Islendik sorag ýa-da goldaw boýunça bize ýazyp bilersiňiz.Biz hemişe kömek etmäge taýýar.

Telegram
@Gamble_GC
Integrasiýany başlamak

Email — hökmany. Telegram ýa-da WhatsApp — islege görä.

Adyňyz obýýektiw däl / islege görä
Email obýýektiw däl / islege görä
Tema obýýektiw däl / islege görä
Habar obýýektiw däl / islege görä
Telegram obýýektiw däl / islege görä
@
Eger Telegram görkezen bolsaňyz — Email-den daşary şol ýerden hem jogap bereris.
WhatsApp obýýektiw däl / islege görä
Format: ýurduň kody we belgi (meselem, +993XXXXXXXX).

Düwmäni basmak bilen siz maglumatlaryňyzyň işlenmegine razylyk berýärsiňiz.