GH GambleHub

API Ağ Geçidi ve Yönlendirme

1) Mimaride API Ağ Geçidi Rolü

Bir API ağ geçidi, mikro hizmetlere tek bir giriş noktasıdır. Öyle mi:
  • Routes requests (path/headers/geo/weight/version).
  • Çevreyi korur (TLS/mTLS, WAF, DDoS, hız sınırları, authN/Z).
  • Trafiği kontrol eder (kanarya/AB, gölge/ayna, devre kesici, retras, zaman aşımları).
  • Protokolleri (REST/gRPC/WebSocket), başlıkları ve kodları standartlaştırır.
  • Gözlemler (günlükler, metrikler, izler, korelasyon).
  • Dönüştürür ve doğrular (JSON/XML, normalleştirme, şema doğrulama).

IGaming için aynı zamanda coğrafi uygunluk (ülke/yaş engelleme), akıllı ödeme yönlendirmesi ve kenardaki sorumlu oyun politikalarıdır.

2) Yönlendirme seçenekleri

Yol tabanlı:'/api/v1/payments/> payments-svc '.
Sunucu tabanlı: 'eu. api. örnek. com - eu-edge ',' psp. örnek. com - psp-proxy '.
Başlık tabanlı: 'X-Client: partner-A' - partner arka ucu; 'Accept: application/grpc'.
Coğrafi yönlendirme: IP/ASN/ülkeye göre (GDPR/yerel yasaklar, gecikme).
Ağırlıklı/Kanarya: Eski sürümde '%90', yeni sürümde '%10'; hızlı geri dönüş.
Talep yönlendirme: по 'JWT. talepler. Katman/rol/bölge '(örneğin, yüksek silindir> premium limitler).
Yük devretme: Veri merkezi/bulut ve PSP arasındaki varlık-varlık/varlık-yükümlülük.

3) Çevre güvenliği

TLS her yerde: TLS 1. Dışta 2 +, içinde mTLS (shlyuz↔servisy).
OAuth2/JWT: imza doğrulama, denetim 'exp/nbf/aud/scope', JWKS rotasyonu; TTL ile doğrulama önbelleği.
HMAC: Web kitapları/ödemeler için vücut imzası.
API anahtarları: sistem istemcileri için; kotalar/roller ile ilişkilendirilir.
WAF: Temel kurallar (enjeksiyon, protokol anomalileri), vücut büyüklüğü, ülkelerin listesini reddetmek.
DDoS koruması: bağlantı sınırlaması, SYN çerezleri, IP/anahtar/uç nokta için hız sınırı.
Sıfır Güven: Zorunlu politikalar (SPIFFE/SPIRE, hizmet kimlikleri), en az hak ilkesi.
Gizlilik: Günlüklerde PII düzenleme, PAN/IBAN maskeleme, depolama politikası.

4) Patlamalara karşı sınırlar, kotalar ve koruma

Модели: belirteç kovası, sızdıran kova, sabit/sürgülü pencere.
Kenarlıklar: IP başına, anahtar başına, kullanıcı başına, rota başına.

İsteğe bağlı:
  • Burst + sürekli (örn. '50 rps patlama', '10 rps sürdürme').
  • Retry-Budget ve Yavaş-Loris koruması (okuma zaman aşımları).
  • Ortaklar için gün/ay kotası.

5) Dönüşümler ve doğrulama

Başlıkları normalleştirin (trace-id, locale, client-id).
İstek/Yanıt eşlemesi.
Proxying öncesi şema doğrulama (OpenAPI/JSON Schema) - erken 4xx hatası.
Sıkıştırma/' Kabul-Kodlama ', önbelleğe alma (aşağıya bakın).

6) Önbelleğe alma ve performans

Dizinler, genel meta veriler, yapılandırmalar için kenar önbelleği (TTL, 'ETag'/' If-None-Match').
Sıcak GET için mikro önbellek 1-5 s (pik yükü azaltır).
Negatif önbellek kısa (404/boş) - dikkatli.
Riskten korunma istekleri ve p95> eşiğindeki replikalara rekabetçi talepler.

7) Zaman aşımları, geri çekilmeler, esneklik

Zaman aşımları: Ayrı ayrı bağlayın/okuyun/yazın; Makul p95-yer işaretleri.
Retrai: backoff + jitter ile idempotent yöntemler (GET/PUT); Yeniden deneme bütçesi.
POST idempotency: 'Idempotency-Key' + servis/ağ geçidi veri tekilleştirme.
Devre Kesici: hatalar/gecikme ile; Yarı açık deneme.
Yukarı akış tarafından Bulkhead/Havuz izolasyonu.

8) Sürüm oluşturma ve uyumluluk

Yöntemler:
  • URI:'/v1/... '(basit, ama "gürültülü" yollar).
  • Başlık/İçerik-Müzakere: 'Kabul: Uygulama/vnd. app. v2 + json '.
  • Özellik bayrakları/sunucu özelliği - küçük değişiklik uyumluluğu için.

Politika: SemVer, destek penceresi (örneğin, 'v1' = 12-18 ay), depriction schedule, uzantılar için uyumlu yanıtlar (alan ekleme kesilmez).

9) Gözlemlenebilirlik ve kalite kontrolü

Korelasyon: 'Traceparent'/' x-request-id' gereklidir; aşağı atarız.
OpenTelemetry: RPS/p50/p95/p99/5xx/4xx, doygunluk, yeniden deneme/devre olay metrikleri.
Günlükler: yapısal JSON; PII gizlemek; Kod bazında seviyeler.
İzleme örneklemesi: hatalar/yavaş için temel %5-10 + hedef.
SLO/uyarılar: rotalara/istemcilere göre (çalışma süresi, gecikme, hata).

10) Trafik Yönetimini Serbest Bırakın

Mavi-Yeşil DNS/LB anahtarı.
Kanarya: ağırlık payı/segmentler (bölge, partner, rol).
Gölge/Ayna: İstemciye yanıt vermeden trafiğin yeni sürüme kopyalanması.
Kill-switch: sorunlu upstream/özelliği hızlı bir şekilde devre dışı bırakmak için bayrak.

11) Akıllı ödeme yönlendirme (iGaming)

PSP seçim kuralları: coğrafi, para birimi, miktar, risk oranı, kullanılabilirlik, komisyon.
Yük Devretme PSP: '5xx/timeout' konumunda otomatik geçiş.
Aynı yöntem kuralı: orijinal yöntemle döner/çıkar - kenarda kontrol edin.
Ödeme Kimliği: 'userId + tutar + para birimi + amaç' üzerindeki anahtar.
ETA saydamlığı: ağ geçidi durum ve hata nedenleri ekler (PSP kodları değil).

12) Bölgeler arası politikalar ve uyum

Coğrafi filtreler: Ülkelerin beyaz/siyah listeleri, yaş kısıtlamaları, IP aralıkları.
Yerleşik veriler: bölgesel kümelere yönlendirme (GDPR/yerel yasalar).
Günlükler ve TTL: Bölgelere göre depolama, otomatik anonimleştirme.

13) Yapılandırma örnekleri

13. 1 NGINX (yönlendirme + limit + başlıklar)

nginx http {
map $http_x_request_id $req_id { default $request_id; }
limit_req_zone $binary_remote_addr zone=per_ip:10m rate=20r/s;

server {
listen 443 ssl http2;
server_name api. example. com;

Security add_header Strict-Transport-Security "max-age = 31536000" always;
add_header X-Content-Type-Options nosniff;

Limit on IP location/api/v1/{
limit_req zone=per_ip burst=40 nodelay;
proxy_set_header X-Request-Id $req_id;
proxy_set_header X-Client-Ip $remote_addr;
proxy_read_timeout 5s;
proxy_connect_timeout 1s;
proxy_pass http://payments_v1;
}

Canary traffic by header location/api/v2/{
if ($http_x_canary = "1") { proxy_pass http://payments_v2; }
proxy_pass http://payments_v1;
}
}
}

13. 2 Elçi (JWT, oran limiti, yeniden denemeler, aykırı)

yaml static_resources:
listeners:
- name: https address: { socket_address: { address: 0. 0. 0. 0, port_value: 443 } }
filter_chains:
- filters:
- name: envoy. filters. network. http_connection_manager typed_config:
"@type": type. googleapis. com/envoy. extensions. filters. network. http_connection_manager. v3. HttpConnectionManager route_config:
name: local_route virtual_hosts:
- name: payments domains: ["api. example. com"]
routes:
- match: { prefix: "/api/v1/payments" }
route:
cluster: payments_v1 timeout: 5s retry_policy:
retry_on: "connect-failure,refused-stream,5xx,retriable-status-codes"
num_retries: 2 per_try_timeout: 2s http_filters:
- name: envoy. filters. http. jwt_authn typed_config:
"@type": type. googleapis. com/envoy. extensions. filters. http. jwt_authn. v3. JwtAuthentication providers:
main:
issuer: "https://auth. example. com/"
remote_jwks: { http_uri: { uri: "https://auth. example. com/.well-known/jwks. json" } }
forward: true rules:
- match: { prefix: "/api/" }
requires: { provider_name: "main" }
- name: envoy. filters. http. ratelimit
- name: envoy. filters. http. router clusters:
- name: payments_v1 connect_timeout: 0. 5s type: STRICT_DNS lb_policy: ROUND_ROBIN load_assignment: { cluster_name: payments_v1, endpoints: [{ lb_endpoints: [{ endpoint: { address: { socket_address: { address: payments, port_value: 8080 }}}}]}] }
outlier_detection: { consecutive_5xx: 5, interval: 5s, base_ejection_time: 30s }

14) Kontrol listeleri

Rota serbest bırakılmadan önce

  • Kimlik doğrulama şeması (JWT/JWKS, anahtarlar, TTL önbellek).
  • Zaman aşımları/Retrays/Idempotency yapılandırılmıştır.
  • Sınırlar: IP başına, anahtar başına, rota başına; ortak kotaları.
  • İstek/yanıt şemasının doğrulanması.
  • Günlükleri ve izleri ile 'trace-id', PII maskeleri.
  • SLO/uyarılar ve gösterge tablosu.
  • Coğrafi kurallar/uyumluluk/yaş kontrol edildi.

İşlemler ve Ödemeler

  • PSP Akıllı Yönlendirme: Kurallar, Öncelikler, Feilover.
  • Aynı yöntem kenarda kontrol edilir.
  • Müşteri için şeffaf durumlar ve hata kodları (ham PSP kodu yok).

Bültenler

  • Kanarya/AB ve kill-switch, geri alma planı.
  • Yeni sürüme gölge trafik, metriklerin karşılaştırılması.
  • Yük testi ve p95 hedefleri.

15) Kalite metrikleri (minimum)

Güzergahlara göre kullanılabilirlik/SLO; Hata oranı 5xx/4xx.
Gecikme süresi p50/p95/p99 (harici ve dahili).
Yeniden deneme/zaman aşımı/devre olayları (gürültü seviyesi).
Önbellek isabet oranı ve RPS tasarrufu.
Hız limiti isabetleri ve düştü istekleri.
PSP yönlendirmeli KPI'lar: başarılar, TtW, feilover yüzdesi, komisyon.

16) Anti-desenler

"Her şey için'bir toplam sınır.
"Anında" jitter olmadan geri çekilir (fırtına yoğunlaşması).
Normalleştirme ve güvenilir proxy listesi olmadan 'X-Forwarded-For'a güvenin.
P95 hariç zor zaman aşımları (yanlış pozitifler).
Uyumluluğu bozan sert dönüşümler.
PII/PAN/sırları ile günlükleri.
Dahili ve harici API'yi aynı etki alanı/politika altında karıştırın.

17) Yanıt kalıpları ve hataları (mikrokopi)

429 Çok Fazla İstek: "İstek sınırına ulaşıldı. N saniye içinde tekrarlayın veya ortağın ofisinde kotayı artırın"

401/403: "Belirteç geçersiz/süresi dolmuş. Lütfen tekrar imzalayın"

408/504: "Servis beklenenden daha uzun yanıt veriyor. Talep kabul edilmedi"

Idempotency-conflict: "Bu Idempotency-Key ile bir istek zaten işlenmiştir (durum: başarı/başarısızlık)".

18) Uygulama süreci (adımlar)

1. Rota modeli: etki alanı/yol/bölge haritası.
2. Güvenlik politikaları: TLS/mTLS, WAF, authN/Z, anahtarlar/JWKS.
3. Güvenilirlik: zaman aşımları, retrays, idempotency, devre kesici.
4. Gözlemlenebilirlik: günlükler/metrikler/izler, korelasyon.
5. Önbellek/perf: kenar/mikro önbellek, sıkıştırma, bağlantı havuzları.
6. Ödeme yönlendirme: kurallar, testler, izleme.
7. Sürümler: kanarya/gölge, kill-switch, geri alma planı.
8. Uyumluluk/coğrafi: ülke filtreleri, veri depolama, yaş.

Son hile sayfası

Sıkı çevre (TLS/mTLS, WAF, limitler) + yönetilen trafik (retrai, devre, kanarya).
Doğrulamanın kenarındaki doğrulama ve dönüşümler "içeride" kusurlardan daha azdır.
Trace-id ve PII maskeleri ile gözlemlenebilirlik bir seçenek değil, bir standarttır.
Akıllı ödeme yönlendirme ve uyumluluk jeosu iGaming için kritik öneme sahiptir.
Sürüm oluşturma ve yoksunluk politikası - ortaklar için öngörülebilirlik.

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!

Telegram
@Gamble_GC
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.