GH GambleHub

Yük dengeleme ve yük devretme

Yük dengeleme ve yük devretme

1) Hedefler ve şartlar

Dengeleme, performans ve esneklik için trafiği örnekler/bölgeler/bölgeler arasında dağıtır.
Yük devretme - kontrollü yük devretme.

RTO/RPO - Kurtarma Süresi Hedefi ve Kabul Edilebilir Veri Kaybı

SLO: kullanılabilirlik/gecikme hedef seviyesi; Otomatik feilover ve geri alma için bir "kapı'olarak hizmet eder.

2) Dengeleme katmanları

2. 1 L4 (TCP/UDP)

Artıları: performans, basitlik, TLS geçiş. Eksileri: Rota anlayışı/çerezleri yok.
Örnekler: NLB/GLB, HAProxy/Envoy L4, IPVS.

2. 2 L7 (HTTP/gRPC)

Artıları: yol yönlendirme/başlıklar, kanarya ağırlıkları, yapışkan. Eksileri: CPU/gecikmede daha pahalı.
Örnekler: NGINX/HAProxy/Envoy/Cloud ALB/API Ağ Geçidi.

2. 3 Küresel

DNS/GSLB: sağlık kontrolleri + geo/ağırlıklı yanıt.
Anycast/BGP: Dünya çapında bir IP, en yakın duyuru noktası.
CDN/Edge: Çevre üzerinde önbellek/Feilover.

3) Dağıtım algoritmaları

Yuvarlak robin/ağırlıklı - temel.
En az bağlantı/gecikme -'ağır "istekler için.
Tutarlı karma - orta oturum olmadan kullanıcı/kiracı yapışkanlığı.
Hash tabanlı yerellik - önbellekler ve durumsal hizmetler için.

4) Oturumlar ve yapışkan

Cookie-sticky: L7 LB, örneğe dönmek için bir çerez ayarlar.
Src-IP yapışkan: L4'te, NAT/CGNAT ile daha kötü.
Tutarlı karma: yatay önbellekler/sohbetler için daha iyi.
Amaç: Mümkünse, vatansız hizmeti yapın, aksi takdirde - yük devretmeyi basitleştirmek için durumu (Redis/DB'deki oturumlar) çıkarın.

5) Güvenilirlik: sağlık kontrolleri ve rotasyondan çıkarma

Etkin kontroller: HTTP 200/derin iş yolu probları (örn. '/healthz/withdraw 'bağımlılıklarla birlikte).
Pasif (aykırı algılama): 5xx/timeout'larda arka uç çıkarma.
Isınma: yeni örneklerin düzgün bir şekilde dahil edilmesi (yavaş başlatma).
Zarif drenaj - Havuzdan çıkarın - taleplerin tamamlanmasını bekleyin.

NGINX (örnek):
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;
Elçi aykırı tespiti (parça):
yaml outlier_detection:
consecutive_5xx: 5 interval: 5s base_ejection_time: 30s max_ejection_percent: 50

6) Hata yönetimi: zaman aşımı/yeniden deneme/devre kırma

Zaman aşımları: müşteri zaman aşımından daha kısa; Rota başına belirtin.
Yeniden denemeler: Jitter ve idempotency ile 1-2; POST'ta idempotans anahtarları olmadan geri çekilmelerin yasaklanması.
Devre kesici: eşzamanlı istekleri/hataları sınırlamak; "yarı açık" kurtarma.
Bütçeler: Öz-DDOS'u düzenlememek için patlamaların yeniden ödenmesi/birleştirilmesi.

7) Kubernetes-desenleri

ClusterIP/NodePort/LoadBalancer/Ingress - temel ilkeler.
Hazırlık/Canlılık: Sadece hazır panolarda trafik.
PodDisruptionBudget, N kopyalarını aynı anda bırakamaz.
HPA/VPA: CPU/RED metriklerine göre ölçeklendirme, LB'ye bağlantı.
ServiceTopology/Topology Aware İpuçları: bölgeye göre yerellik.
Servis tipi = LoadBalancer (zonal): Her AZ'de en az 2 kopya.

Kritik bir rota için hazırlık örneği:
yaml readinessProbe:
httpGet: { path: /healthz/dependencies, port: 8080 }
periodSeconds: 5 failureThreshold: 2

8) Bölgeler arası ve bölgeler arası trafik

Multi-AZ (bölge içinde): eşit dağıt (bölgesel LB), depolama - senkron kopyalar.

Çok bölgeli:
  • Aktif-Aktif: Her iki bölge de trafiğe hizmet eder; Daha karmaşık - veri çoğaltma, tutarlılık ve coğrafi yönlendirmeye ihtiyacınız var.
  • Aktif-Pasif: ana bölge hizmet, rezerv - "sıcak/sıcak/soğuk. Daha kolay, daha hızlı geçiş, ancak daha yüksek RPO.
GSLB stratejileri:
  • Geo-DNS (en yakın bölge).
  • Ağırlıklı DNS (kanaryalar/yeniden dağıtım).
  • Gecikme tabanlı (RTT ölçümleri).
  • Yük devretme = sağlık/kullanılabilirlik sinyalleriyle (birden fazla noktadan gelen problar).

9) Veri ve yük devretme

Önbellek/devlet: mümkünse - bölgesel olarak yerel; Aktif-Aktif için - CRDT/tutarlı karmalar.

DB:
  • Senkron çoğaltma = düşük RPO, daha yüksek gecikme süresi.
  • Asenkron = düşük gecikme süresi, ancak RPO> 0.
  • Kuyruklar: yansıtma/multicluster topikaller; olay tekilleştirme.
  • Operasyon ve tekrar mekaniğinin idempotency tasarımı.

10) Çevre: DNS/Anycast/BGP/CDN

DNS: Kısa TTL (30-60) + ağınızdan sağlık kontrolleri.
Anycast: Bir IP'ye sahip birkaç POP - en yakın olan trafik alır, feilover yönlendirme seviyesindedir.
CDN/Edge: Koruma için önbellek ve "ağ geçidi", orijin düştüğünde statik/medya servis edilir; origin-shield + пер -POP sağlık.

11) Örnek yapılandırmalar

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 yapışkan по çerez:
nginx upstream api {
hash $cookie_session_id consistent;
server app-1:8080;
server app-2:8080;
}
Elçi yeniden denemesi/zaman aşımı (rota):
yaml route:
timeout: 2s retry_policy:
retry_on: 5xx,connect-failure,reset num_retries: 1 per_try_timeout: 500ms

12) Otomatik yük devretme: sinyaller ve kapılar

Tech-SLI: 5xx-rate, p95/p99, doygunluk, TLS el sıkışmaları, TCP sıfırlamaları.
İş SLI: depozito/ödemelerin başarısı, PSP'de ödeme hatası yok.
Kapılar: eşikler aşılırsa, bölgeyi/örneği kapatın, kararlı havuzun ağırlıklarını yükseltin, GSLB'yi değiştirin.
Runbook: adım adım geri alma talimatı.

13) Testler ve denetimler (kaos ve oyun günleri)

Kaos testleri: AZ/bölgeleri devre dışı bırakma, DB/önbellek bozulması, paket kaybı simülasyonu.
Oyun günü: Çağrı üzerine ekipleri içeren Eğitim Faylover.
Tanılama: çevreden arka uçlara kadar izleme, sürüm ek açıklamaları ve metrikleri eşleştirme.

14) Güvenlik ve uyumluluk

LB↔servisy arasındaki mTLS, çevre üzerindeki WAF/Oran sınırları.
Arıza/segmentasyon bölgeleri: patlama yarıçapı izolasyonu.
Politikalar: tek başarısızlık noktası (SPOF) yasağı, "minimum N kopyaları/AZ" gereksinimleri.

15) Anti-desenler

Tüm trafik için bir LB/bir bölge (SPOF).
Derin kontrol yok'/healthz '(yeşil - ancak DB/kuyruk kullanılamaz).
Idempotency olmadan Retray - çift işlemler/ödemeler.
Yığın NAT ile IP başına yapışkan - dengesizlik.
Yüksek TTL ile DNS feilover (değiştirmeden saatler önce).
Tükendiğinde zarif drenaj yok - ara verin.

16) Uygulama kontrol listesi (0-45 gün)

0-10 gün

AZ ≥2 örnekler gönderin; Hazırlık/canlılık, sağlık kontrolleri sağlar.
L7-timeouts/retries yapılandır (1 deneme), aykırı değer algılama.
Zarif boşaltma ve yavaş başlatmayı etkinleştirin.

11-25 gün

Çevre için GSLB (geo/weighted) veya Anycast girin.
Kanarya ağırlıkları/rota politikaları; Çerez/tutarlı karma ile yapışkan.
Otomatik geçiş için SLO kapıları (p95/5xx + iş SLI).

26-45 gün

Bölgesel DR: Aktif-Aktif veya Aktif-Pasif çeviri testi ile.
AZ/bölgeler kapalıyken kaos günleri, RTO/RPO raporları.
Otomatik çalışma kitabı've (pause/shift/rollback scriptleri).

17) Olgunluk metrikleri

Çok AZ kapsamı kritik yolların %99'unu ≥.
DNS/GSLB/Anycast genel uç noktalar için uygulanır.
Bir AZ düştüğünde MTTR <5 dakika (p95).
Hedef ≤ kritik veriler için RPO (örneğin, ≤ 30 saniye).
Üç aylık oyun günleri ve başarılı planlanmış feilover.

18) Sonuç

Güvenilir dengeleme ve yük devretme katmanlı bir mimaridir: yerel L7-policies (zaman aşımları/yeniden denemeler/CB, sağlık kontrolleri), doğru yapışkanlık ve karma, bölgeler arası kararlılık ve çevre üzerinde - GSLB/DNS/Anycast. SLO kapıları, idempotency, zarif drenaj ve düzenli kaos testleri ekleyin - ve bir düğüm, bölge veya hatta bölgenin herhangi bir kaybı öngörülebilir RTO/RPO ile yönetilebilir bir olay haline gelecektir.

Contact

Bizimle iletişime geçin

Her türlü soru veya destek için bize ulaşın.Size yardımcı olmaya her zaman hazırız!

Entegrasyona başla

Email — zorunlu. Telegram veya WhatsApp — isteğe bağlı.

Adınız zorunlu değil
Email zorunlu değil
Konu zorunlu değil
Mesaj zorunlu değil
Telegram zorunlu değil
@
Telegram belirtirseniz, Email’e ek olarak oradan da yanıt veririz.
WhatsApp zorunlu değil
Format: +ülke kodu ve numara (örneğin, +90XXXXXXXXX).

Butona tıklayarak veri işlemenize onay vermiş olursunuz.