GH GambleHub

Olay Akışı ve gerçek zamanlı veriler

(Bölüm: Teknoloji ve Altyapı)

Kısa Özet

Olay Akışı, olayların göründükleri anda işlenmesi ve teslim edilmesidir. Bu, iGaming için bahislere, depozitolara, dolandırıcılık karşıtı sinyallere, sorumlu oyun limitlerine, turnuva masalarına ve kişisel tekliflere anında tepki vermek anlamına gelir. Temel tuğlalar: Olay yolu (Kafka/Pulsar), akış motoru (Flink/ksqlDB/Spark Structured Streaming), işlem veritabanlarından CDC (Debezium), çevrimiçi ML ve gerçek zamanlı analitik için Özellik Mağazası (materyalize görünümler, OLAP)

IGaming'de kritik nerede

Anti-dolandırıcılık ve risk: <100-300 ms'de puanlama işlemleri, davranış kalıplarının korelasyonu, engelleme ve tırmanma.
Sorumlu oyun: sınır kontrolü, kayıp oranı, anormal davranış - uyarılar ve gerçek zamanlı otomatik kısıtlamalar.
Ödemeler: durum valfleri, webhooks PSP, akıllı yeniden deneme, denge projeksiyonları, SLA "cüzdan zamanı".
Oyun etkinlikleri: Turnuva liderlerinin hesaplanması (sürgülü pencereler), canlı oyun turları, CRM/pazarlama için gerçek zamanlı yayınlar.
Kişiselleştirme: çevrimiçi özellikler (RFM, eğilim) - tetikleme kampanyaları, saniyeler içinde itme/e-posta.
Operasyonel analitik: p95/p99 gecikme, huni adım dönüşümü, platform sağlık sinyalleri.

Mimari modeller

Lambda vs Kappa

Lambda: toplu (DWH/ETL) + akış (operatif). Artı - esneklik ve "ucuz" bech; eksi çift mantıktır.
Kappa: Her şey bir dergiden (Kafka) bir akarsu gibidir. Artı - tek bir kod, olay tekrarı; eksi - daha katı altyapı gereksinimleri.

Uygulama: kritik gerçek zamanlı konturlar için - Kappa; Raporlama/ML eğitimi için - ek bir toplu devre.

Olay boru hattı (referans)

1. Üreticiler: bahis/ödeme hizmetleri etki alanı etkinliklerini yayınlar (giden kutusu Kafka).
2. Otobüs: Anahtarlara göre parçaları olan kafka ('player _ id', 'bet _ id').
3. CDC: Debezium, OLTP'den (bakiyeler, limitler) değişiklikleri akışa çeker.
4. Akış: Flink/ksqlDB/Spark - toplamalar, pencereler, CEP, katılma.
5. Projeksiyonlar: Maddeleştirilmiş tablolar (Kafka Streams state store/ksqlDB tables/Redis), OLAP (ClickHouse/Druid).
6. Tüketiciler: Dolandırıcılıkla mücadele, CRM, bildirimler, gösterge panoları, tetikleyici iş akışları.

Veri Sözleşmeleri ve Şemalar

Avro/Protobuf + Schema Registry: sıkı sözleşmeler, geriye uyumlu geçişler.
Sürüm oluşturma: 'domain. olay. v {n} '; Değişiklikleri kırmayı yasaklar.
PII: tokenization/encryption, maskeleme, amaç sınırlaması (GDPR).

Teslimat semantiği ve idempotency

En az bir kez fiili bir standarttır (kopyalar mümkündür) - idempotent kullanımı gereklidir.
Akışta tam olarak bir kez: Flink/Streams'de Kafka + EOS işlem üreticileri; daha pahalı, nokta (para/denge) uygulayın.
Outbox + CDC: hizmet veritabanından tek bir gerçek kaynağı, çift yazma koruması.
Dedup: anahtar ('idempotency _ key'), TTL ile veri tekilleştirme tablosu, uppert/merge.

Zaman pencereleri ve "geç" veriler

Windows:
  • Yuvarlanma - sabit yuvalar (örneğin, bir dakikalık devrim).
  • Atlama - artışlarla kayma (örneğin, 1 dakikalık artışlarla 5 dakikalık bir pencere).
  • Oturum - hareketsizlikle (oyuncu oturumları).
  • Filigranlar: olay zamanı işleme, gecikme, DLQ/yan çıkış tahliyesi.
  • CEP (Complex Event Processing - Karmaşık Olay İşleme): "A sonra B in 3 min", "N events in M seconds", "cancellation/compensation".

Durum ve ölçeklendirme

Durumsal operatörler: toplama/joyne tutma durumu (RocksDB durum arka ucu).
Changelog konuları: güvenilirlik ve durum kurtarma.
Geri basınç: otomatik hız kontrolü, sistem sink/外 sınırları.
Anahtar dağılımı: ağır vurucular - anahtar tuzlama, çarpıklık azaltma.

İzleme ve SLO

Akış SLO: p99 uçtan uca gecikme (örneğin, ≤ 2 s), geçerli tüketici gecikmesi, kullanılabilirlik ≥ 99. 9%.
Metrikler: verim, tarafa göre gecikme, filigran gecikmesi, düşme/gecikme oranı, geri basınç, meşgul zaman operatörleri, GC/JVM.
Uyarılar: DLQ büyümesi, filigran gecikmesi, EOS kontrol noktası arızaları, çevrimiçi/çevrimdışı rassinh özellikleri.
İzleme: Bir üretici-akış-tüketici aracılığıyla korelasyonel kimlikler ('trace _ id', 'message _ id').

Güvenlik ve uyumluluk

TLS/MTLS, konular/tablolar üzerinde ACL/RBAC, hassas alanların bölümlendirilmesi (ödemeler/CCM).
Transit/diskte PII şifreleme; Vault/SOP sırlar.
Veri saklama ve yerellik: bölgeye göre depolama (AB, Türkiye, LatAm), kaldırma politikası.
Denetim: Kim yayınladı/okudu, komut dosyalarının tekrarlanabilirliği.

Yüksek Kullanılabilirlik ve DR

Kafka: 'çoğaltma. Faktör ≥ 3 ', min. insync. DR için replikalar ',' acks = all ', bölgeler arası replikasyon (MM2)

Flink/Akışlar: kontrollü sürümler için periyodik kontrol noktası + savepoint; HA-JobManager.
OLAP: parça çoğaltma, okuma kopyaları; Failover (oyun günü) testleri.

Performans ve ayarlama

Yapımcılar: butching ('linger. ms ',' toplu. Boyut '), sıkıştırma (lz4/zstd).
Tüketiciler: doğru 'max. anket. Ara, geri çekilme sırasında partilerin duraklaması.
Bölümleme: Partileri hedef TPS ve paralellikten sayma.
Durum: RocksDB seçenekleri (blok önbellek/yazma arabelleği), NVMe/IOPS, sabitleme.
Ağ: 10/25G, TCP ayarı, n + 1 lavabo isteği muhafazası.

Uygulama: Anahtar Teknolojiler

Shina: Apache Kafka (alternatifler: Pulsar, Redpanda).

Akış: Apache Flink, Kafka Akışları, ksqlDB, Spark Yapılandırılmış Akış

CDC: Debezium (MySQL/Postgres), Outbox konnektörleri.
Projeksiyon depoları: ksqlDB tabloları, Kafka Streams devlet mağazası, düşük gecikme süresi için Redis, OLAP için ClickHouse/Druid/Pinot.
Fichestor: Bayram veya kendi - çevrimiçi (Redis) + çevrimdışı (Parke/BigQuery), tutarlılık garantisi.

Tasarım desenleri

Giden Kutusu - Kafka: DB işlemindeki her etki alanı olayı.
Destanlar: Olaylar Üzerinden Telafiler; akarsu ile orkestrasyon.
Fan-out: Bir olay - anti-dolandırıcılık, CRM, analitik, bildirimler.
Materyalize Görünümler: Lider tabloları, denge, sınırlar - akıştan güncellenen tablolar şeklinde.
Yeniden işleme: agregaların/retro analizlerin yeniden hesaplanması için topikallerin çoğaltılması.

Örnekler (kavramlar)

ksqlDB: turnuva liderleri (sürgülü pencere)

sql
CREATE STREAM bets_src (
bet_id VARCHAR KEY,
player_id VARCHAR,
amount DOUBLE,
ts BIGINT
) WITH (KAFKA_TOPIC='bets. placed. v1', VALUE_FORMAT='AVRO', TIMESTAMP='ts');

CREATE TABLE leaderboard AS
SELECT player_id,
SUM(amount) AS total_stake,
WINDOWSTART AS win_start,
WINDOWEND  AS win_end
FROM bets_src
WINDOW HOPPING (SIZE 10 MINUTES, ADVANCE BY 1 MINUTE)
GROUP BY player_id
EMIT CHANGES;

Flink (pseudocode): Geç olaylarla dolandırıcılık karşıtı puanlama

java stream
.assignTimestampsAndWatermarks(WatermarkStrategy. forBoundedOutOfOrderness(Duration. ofSeconds(10)))
.keyBy(e -> e. playerId)
.window(SlidingEventTimeWindows. of(Time. minutes(5), Time. minutes(1)))
.aggregate(scoreFunction, processWindow)
.sideOutputLateData(lateTag)
.addSink(riskTopic);

İplik kalitesi testi

Şemaların ve evrimin sözleşme testleri (Schema Registry).
Yükleme: hedef TPS, p99, lavabo bozulması davranışı.
Başarısızlık/kaos: brokerlarda/düğümlerde düşüş, ağ gecikmeleri, bölünmüş beyin.
Deterministik tekrarlar-Konuları yeniden çalıştırır - aynı sonuçlar.
Kanarya akışları: gecikme ve bütünlüğü kontrol etmek için döngü.

Uygulama kontrol listesi

1. SLO'yu tanımlayın (p99 E2E ≤ X c, Y ≤ gecikme, kullanılabilirlik ≥ Z).
2. Şemaları ve anahtarları standartlaştırmak (player_id/bet_id).
3. Mimari'yi seçin (kritik döngüler için Kappa).
4. Giden kutusu + CDC'yi yapılandırın ve PII'yi izole edin.
5. Pencereler, filigran, geç ilke ve DLQ/yan çıkışları ayarlayın.
6. Para yollarında EOS/idempotency özelliğini etkinleştirin.
7. Gecikme, filigran, DLQ için izleme ve uyarıları tanıtın.
8. HA/DR ve yeniden işleme prosedürlerini sağlayın.
9. Feature Store'u dağıtın ve çevrimiçi/çevrimdışı olarak senkronize edin.
10. Oyun gününü geçirin: başarısızlıkları ve iyileşmeyi çalışın.

Anti-desenler

Bilinçli politika olmadan olay zamanı ve işlem zamanını karıştırma.
Şema yönetişimi eksikliği - "kırma" sürümleri.
Geç veriler ve kısayol tuşları yok sayılıyor.
Tekrarlama stratejisi eksikliği ve konuların sürümü.
Idempotency ve EOS olmadan oranlar/ödemeler.

Özet

Gerçek zamanlı akış "başka bir ulaşım'değil, bir düşünme şeklidir: etki alanı olayları, açık SLO'lar, veri sözleşmeleri, pencereler ve durum, güvenlik ve gözlemlenebilirlik. IGaming için sürdürülebilir set Kafka + Flink/ksqlDB + Debezium + Materialized Views + Feature Store'dur. Yük büyüdükçe milisaniye reaksiyonları, çevrimiçi/çevrimdışı analitik tutarlılığı ve kontrollü karmaşıklık sağlar.

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.