Gerçek zamanlı derecelendirmeler: teknik mimari
Gerçek zamanlı derecelendirme, dürüstlüğü, denetlenebilirliği ve ekonomik yönetilebilirliği korurken, milyonlarca oyun olayını yüzlerce milisaniyede güncellenmiş pozisyonlara dönüştüren bir hizmet paketidir. Aşağıda gereksinimlerden operasyona kadar pratik bir yapıcı bulunmaktadır.
1) Gereksinimler ve hedefler
UI'ye gecikme: Olay gelişinden konum güncellemesine kadar ≤ 200-300 ms p95.
Doğruluk: Yük ve arızalar sırasında'en iyi N "/bölme/tie-breaklerin doğru ofseti.
Kullanılabilirlik: ≥ 99. Turnuva dönemi için %9; Bütünlük kaybı olmadan bozulma.
Idempotency: Tahakkuk seviyesinde "tam olarak bir kez", ulaşımda'en az bir kez ".
Ölçek: Bölgeye/bölüme/takıma göre yatay büyüme (top üzerinde üst-K).
Denetim: Kuralların, olayların, ücretlerin ve sorunların değiştirilemez günlükleri.
2) Sistem diyagramı (10.000 ft seviyesi)
Клиент, Etkinlik Girişi, Puanlama Motoru, Akış Toplayıcı (Top-K/Top-M), Yazma Optimize Edilmiş Mağaza, Hot Cache/Edge, UI/Comms, Ödüller/Talep
Фоново: Snapshotter, Anti-Fraud/RG, Analytics & A/B, Denetim/Gözlemlenebilirlik.
3) Etkinlik girişi
Görevler: Kopyalara, patlamalara, ağ kayıplarına karşı koruma.
Idempotency: her olayın bir 'event _ uuid' vardır; "Görüldü/tahakkuk etti" kontrolü.
Teslimat semantiği: taşıma - en az bir kez, puan muhasebesi - tam bir kez.
Backpressure: dinamik partilere sahip kuyruklar; aşırı yüklenmede -'aktif "turların önceliklendirilmesi.
Zaman pencereleri: Geç olaylara izin verin (örneğin, 90 saniyeye kadar) - "yeniden hesaplama penceresine" yönlendirin.
Zaman: sunucu UTC, istemcide - yalnızca yerel ayar eşlemesi.
4) Puanlama motoru
İlkeler: sürüm kuralları, anti-pay-to-win, kolay geri alma.
Sürüm oluşturma: 'rule _ set _ id' + bölge/bölüm başına özellik bayrakları.
Modeller: çarpan ('Score = round (100log2 (Win/Bet + 1)))', log-curve ile kazan tabanlı, bahis tabanlı (sadece arka plan meta olarak).
Ofset'en iyi N ": oyuncu/gün/tur başına üst-N yapısını koruyun; Formata göre toplama/medyan.
İstisnalar: bonus fonları 'coef _ bonus ≤ 0. 5 'veya' 0 '; spin/gün başına cap; Sağlayıcı başına kota.
Tie-break: 1) son hızın daha erken elde edilmesi; 2) daha fazla çeşitlilik; 3) deterministik tohum.
5) Akış toplama ve üst K
Amaç: tüm seti taramadan pozisyonları hızlı bir şekilde yeniden hesaplamak.
6) Depolama: yazma vs okuma
Yazma için optimize edilmiş mağaza: tahakkuk günlüğü, en iyi N durumları, tie-breaks, meta veriler (yalnızca kayıt/güncellemeler).
Okunması optimize edilmiş mağaza (Sorgu): UI için denormalize "vitrinler": En iyi 100, "konumum", "günün/bölümün üstü", takıma katkı.
Snapshotter: lider yönetim kurulunun saatlik "anlık görüntüleri"; hızlı geri alma/tekrar oynatma, raporlar ve denetimler.
Tutarlılık: geniş listeler için nihai,'benim konumum "için oku-yaz.
7) Nakit ve Kenar
Sıcak önbellek: son pozisyonları ve shard oyuncuların puanı; TTL 1-5 sn; olay tarafından sakatlık.
Kenar katmanı/CDN: statik bloklar, "soğuk" sonuç sayfaları, ancak tahakkuk mantığı değil.
Fallback: bozulma sırasında - "bronz mod": Her X saniye + ağır widget bloğu UI güncellemesi.
8) Zaman, pencereler ve saat dilimleri
Tek "gerçek" zaman: Hizmetlerde UTC; UTC'deki son tarihler.
Yerelleştirme - İstemci üzerinde zaman dönüştürme (kullanıcı saat dilimi).
Sınırlar: Ağ gecikmeleri için 1-3 dakika kapanan "yumuşak pencere" (T&C'de).
Kelime sınıfına gidiyoruz: saat eğriliği izleme, NTP uyarıları, sürüklenme ölçümü.
9) Geç ve yinelenen olaylarla başa çıkmak
Geç olaylar: "uzlaşma penceresini" tutun; Yerel olarak yeniden hesaplama + bildirim beslemesinden pozisyonların "sakin" ayarlanması.
Çiftler: 'event _ uuuid' + (oyuncu, oyun, bahis, ts) dar bir pencerede; Dergi "görüldü".
Tahakkuk idempotence - Olay - applied/rolled_back durumu ile değişim işlemi
10) Anti-dolandırıcılık ve RG (boru hattına yerleşik)
Davranışsal puanlama: üniforma aralıkları, süper hız, "gürültü yok" - bayraklar.
Bağlantı grafiği: ortak cihazlar/IP/ödemeler - kümeler; Ödüller, manuel doğrulama.
Kotalar ve başlıklar: N en iyi girişim/gün, bir slot/sağlayıcı için kotalar, spin/gün başına sınır noktaları.
Bonus fonları: oranlar/eleme.
RG: Puanlar sadece gönüllü limitler dahilinde verilir (zaman/mevduat/kayıplar); Hatırlatıcıları kırın.
11) Çok bölgeli ve hata toleransı
Bölgeye göre varlıktan varlığa: bölgesel parçalar + küresel kasa; yakınlık yönlendirme.
RTO/RPO: RTO <15 dk (anlık görüntülerde folback), tahakkuklar için RPO = 0 (idempotent log replay).
Bölüm toleransı: bir ağ boşluğu durumunda - yerel lider kurulu, sonraki konsolidasyon ve yumuşak pozisyon düzeltmesi.
FX ve para birimleri: Ödüller farklı para birimlerinde ise, dönüşüm anını sabitleriz, FX tamponu %1-3.
12) Güvenlik ve gizlilik
Veri: minimizasyon (toplayıcıda PII olmadan takma adlar), "uçuşta've" durakta "şifreleme.
Erişim: en az ayrıcalık ilkesi, KMS'de sırlar, erişim denetimi.
T & C/yargı: kural/sürüm günlükleri, coğrafi bloklar, yaş kısıtlamaları.
13) Gözlemlenebilirlik ve SRE uygulamaları
SLO: UI lag ≤ 300 ms p95, Talep süresi ≤ 10 dakika p95, çalışma süresi ≥ 99. 9%.
Metrikler: olaylar/sn, alma/reddetme oranı, geç oran, üst K yığın büyümesi, akış gecikmesi, tahakkuk hataları, talep oranı.
Tracing: ingest> scoring> cache> UI.
Uyarılar: durdurma düğmesi (ağır deneyleri devre dışı bırak/N en iyi değerini azalt), otomatik bozulma.
Ölüm sonrası: 24-48 saat için RCA, eylem öğeleri listesi, hata bütçesi politikası.
14) Ödüller ve Talep
Otomatik ödül: yakın bir olay durumunda - pozisyonların hesaplanması, ihraç, makbuzlar.
Talep penceresi: ≤ 72 saat, yeniden ödeme teslimatı, ödemelerin deterministik sırası.
Şeffaflık: Profildeki ödüllerin geçmişi: kural, zaman, miktar, kaynak.
Tutar: KYC/AML'den önce nadir/değerli ödüller için.
15) A/B deneyleri ve devre evrimi
Ne test edilir: N en iyi (10/20), spin başına kapak (açma/kapama), çeşitlilik bonusu (0/50/100), toplama türü (miktar/medyan).
Randomizasyon: bölgeye/kanala/kümeye göre - taşmalardan kaçının.
Korkuluklar: RTP, şikayetler/10k, RG sinyalleri - bozulmamış.
Geçişler: depolama şeması uyumluluğu, geçiş süresi boyunca çift yazma.
16) UX-desenleri gerçek zamanlı derecelendirmeler
Değerlendirme merkezi: zafer kuralı, zamanlayıcı, puanınız, kalan girişimler, bir sonraki ödül.
Canlı geribildirim: "X3 için + 40 puan", "20 üzerinden 2 deneme kaldı", "3 sıra tırmandınız".
Vitrinler: genel olarak ilk 100,'benim pozisyonum "," günün/bölümün zirvesi ", takıma katkı.
A11y: kontrast, büyük sayılar, odak durumları, ilerlemeyi dile getirmek.
Yerelleştirme: yerel TZ'de son tarihler/zamanlayıcılar, çok dillilik.
17) Sık karşılaşılan arızalar ve bozulma senaryoları
18) Kontrol listesi başlatma gerçek zamanlı derecelendirmeler
Kurallar/Ekonomi
- Formül, üst N, eşitlik bozucu, bölümler
- RewardRate, ödeme genişliği, bahisler, talep ≤ 72 saat
Ekipman
- Idempotent Yutmak, Geç pencere, Sharding
- Akış Toplayıcı (топ -K/Top-M), Snapshotter
- Sıcak Önbellek/Kenar, Sağlık/Durum API'si, durdurma düğmesi
Güvenlik/RG
- Davranışsal puanlama, bağlantı grafiği, ağız koruyucuları/kotaları
- RG sınırları, hatırlatıcılar, büyük ödüller için KYC/AML
Veri/A/B
- Gösterge tabloları: gecikme, geç oran, çiftler, adalet metrikleri
- Deneysel tasarım ve korkuluklar, göçler sırasında çift yazma
UX
- Derecelendirme merkezi, mikro geribildirim, A11y, yerelleştirme
- 1 ekranda kısa kurallar + tam T&C
Güvenilir bir gerçek zamanlı derecelendirme tek bir hizmet değil, disiplinli bir ekosistemdir: idempotent alımı, sürümlü puanlama, üst-K akışı toplama, hızlı önbellek, durum anlık görüntüleri ve yerleşik sahtekarlık önleme/RG mekanizmaları. Sıkı SLO/SLA, anlaşılır UX ekleyin ve A/B aracılığıyla doğrulamayı değiştirin - ve oyuncuların güvendiği lider tabloları elde edersiniz ve ürün Tutma, Yapışkanlık ve LTV'nin öngörülebilir büyümesini sağlar.