GH GambleHub

Event-Streaming և real-time տվյալներ

(Բաժին ՝ Տեխնոլոգիաներ և ենթակառուցվածքներ)

Live ռեզյումե

Event-Streaming-ը նրանց հայտնագործման պահին իրադարձությունների վերամշակումն ու առաքումն է։ IGaming-ի համար դա նշանակում է ակնթարթային արձագանք տոկոսադրույքների, դեպոզիտների, հակաֆրոդ ազդանշանների, պատասխանատու խաղի սահմանափակումների, մրցույթների և անձնական օֆերի վրա։ Հիմնական աղյուսները ՝ իրադարձությունների անվադողերը (Kafka/Pulsar), հոսքի վերամշակման շարժիչը (Flink/ksqlDB/Spark Structured Streaming), CDC գործարքային BD (Debezae), Feature Store-ը առցանց Ml-ի և real-time վերլուծություն (նյութականացված ներկայացումներ, OLAP)։

Որտե՞ ղ է դա քննադատական iGaming-ում

Antifrod & ռիսկը 'գործարքների արագացումը <100-300 մզ, վարքագծային պաթոգենների հարաբերակցությունը, արգելափակումը և էսկալացիան։

Պատասխանատու խաղը 'սահմանների վերահսկումը, արագությունը, անոմալ վարքագիծը' ալտերտերը և իրական ժամանակում մեքենայի սահմանափակումները։

Վճարումները 'ստատիկ օդեր, webhooks PSA, smart-retry, հավասարակշռությունների կանխատեսում, SLA «time-to-wallet»։

Խաղային լիմենտներ 'մրցույթների առաջնորդների հաշվարկը (sliding պատուհաններ), խաղային փուլերը, CRM/մարքեթինգի համար ժապավենի իրական-ժամանակը։

Նիշալիզացիան 'առցանց ֆիչին (RFM, propertity) մեջբերում է ձգողական արշավները, push/email վայրկյանում։

Հիբրիդային վերլուծություն ՝ p95/p99 latency, ձագերի քայլերի փոխակերպումը, պլատֆորմի health ազդանշանները։

Ճարտարապետական մոդելներ

Lambda vs Kappa

Lambda: batch (MSH/ETL) + streaming (1934)։ Գումարած 'ճկունություն և «էժան» բախ։ մինուս կրկնակի տրամաբանություն է։

Kappa 'ամեն ինչ ամսագրի հոսքն է (Kafka)։ Գումարած 'մեկ կոդ, իրադարձությունների ռեգա; մինուսը ենթակառուցվածքի պահանջն է։

Պրակտիկա 'կրիտիկական real-time կոնտուրների համար' Kappa; / ML ուսուցման համար ավելացված batch-2019 է։

Իրադարձությունների փոխակրիչ (հանրաքվե)

1. Արտադրողները 'ծառայության/վճարման ծառայությունները հրապարակում են հիբրիդային իրադարձություններ (www.box.Kafka)։

2. Շինա 'Kafka-ը բեկորների խմբաքանակներով («player _ id», «bet _ id»)։

3. CDC: Debez.ru-ն ձգում է փոփոխությունները OLTP (հավասարակշռություններ, լիմիտներ) հոսանքի մեջ։

4. Հոսքի վերամշակում ՝ Flink/ksqlDB/Spark - միավորումներ, պատուհաններ, CEP, join։

5. Պրոյեկտներ ՝ նյութականացված սեղաններ (Kafka Streams state/ksqlDB tables/Redis), OLAP (ClickHouse/Druid)։

6. Սպառողները ՝ հակաֆրոդ, CRM, ծանուցումներ, dashbords, stuger workflow։

Տվյալների և սխեմայի պայմանագրերը

Avro/Disobuf + Schema Registry: Խիստ պայմանագրեր, backward-compatible 2019։

Տարբերակումը '"domain. event. v{n}`; արգելել կոտրող փոփոխությունները։

PII 'թունավորում/կոդավորում, դիմակավորում, purpose limitation (GDPR)։

Առաքման իմաստները և գաղափարախոսությունը

At-least-once-de-facto-ը (հնարավոր է կրկնօրինակներ) պարտական է idempotent-handling-ին։

Exactly-once-ում 'Kafka + EOS գործարքային վաճառողները Flink/Streams-ում; ավելի թանկ, օգտագործեք կետային (գումար/հավասարակշռություն)։

Dibox + CDC 'BD-ի ճշմարտության միակ աղբյուրը, պաշտպանությունը կրկնակի գրառումից։

Dedup: բանալին («idempotency _ key»), TTL-ի, ups.ru/merge-ի հետ դեդուպլիզացիայի լուծումը։

Ժամանակավոր պատուհանները և «ուշ» տվյալները

Պատուհաններ

Tumbling-ը ֆիքսված արցունքներ են (օրինակ, մեկ րոպե 108)։

Hopping-ը քայլ առ քայլ սայթաքող է (օրինակ, 5 րոպե պատուհան 1 րոպե)։

Session-ը ինքնաբերաբար (խաղացողի նստաշրջան)։

Watermarks: event-time-ի մշակում, «ուշ» (lateness), DLQ/side-put։

CEP (Complex Event Processing) '«A հետո B 3 րոպե», «N իրադարձություններ M վայրկյանում», «/փոխհատուցում »։

Վիճակը և մեծացումը

Stateful օպերատորները 'ագրեգացիան/ջոինները պահում են վիճակը (Rocult DB state backend)։

Changelog top.ru: 108 և state վերականգնումը։

Backpressure: Արագության կարգավորումը, sink/wwww.orld համակարգերը։

Մրցույթի բաշխումը 'տաք բանալիներ (heavy hitters) www.key-salting, skew mitigation։

Windows և SLO

SLO հոսքը ՝ p99 end-to-end latency (օրինակ ՝ 242 s), թույլատրելի consumer lag, հասանելիությունը 3699։ 9%.

Մետրիկները ՝ throughput, lag կուսակցություններով, watermark delay, drop/lation ratio, backpressure, time, GC/JVM։

Alerta: DLQ-ի աճը, watermark-ը, EOS chekpoints-ի ձախողումները, առցանց/ofline-ը։

Treising: Կորեացիոն ID («trace _ id», «բանաձև _ id») երկարաժամկետ հոսքի միջոցով։

Անվտանգություն և ընկերակցություն

TFC/MTSA, ACL/RBAC տոպիկի/աղյուսակի վրա, զգայուն վճարումների հատվածը (վճարումներ/KUS)։

PII-ի կոդավորումը տրանզիտում/n-ում; գաղտնիքները Vox/SOPS-ում։

Euretention & entality: Պահպանումը տարածաշրջաններով (ԵՄ, Թուրքիա, LatAm), պոլիս։

Աուդիտ ՝ ով է հրատարակել/կարդալ, վերարտադրություն։

Բարձր հասանելիություն և DR

Kafka: `replication. factor ≥ 3`, `min. insync. replicas ', «acks = all», cross-հիբրիդային կրկնօրինակումը (MM2) DR-ի համար։

Flink/Streams: compoint + savepoint վերահսկվող ածխաջրերի համար; HA-JobManager.

OLAP 'հատվածների կրկնօրինակումը, read replicas; failover թեստեր (game day)։

Արտադրողականություն և թյունինգ

Վաճառողները 'բատչինգը ("linger. ms`, `batch. size '), (lz4/zstd)։

Կոնսուումերները 'ճիշտ' max։ poll. interval ', becofe կուսակցության դադար։

Կուսակցությունը 'կուսակցության հաշիվը TPS և զուգահեռ։

State: RocksDB options (block cache/write buffer), NVMe/IOPS, pinning.

Network: 10/25G, TCP-tuning, n + 1 sink հարցումներ։

Մոսկվա ՝ հիմնական տեխնոլոգիաներ

Շինա 'Apache Kafka (այլընտրանքներ ՝ Pulsar, Redpanda)։

Հոսքային բուժումը 'Apache Flink, Kafka Streams, ksqlDB, Spark Structured Streaming։

CDC: Debez.ru (MySQL/Postgres), Disbox-կոնեկտորները։

Պրոյեկտների իրականացումը ՝ ksqlDB tables, Kafka Streams state store, Redis ցածր լատենտության համար, ClickHouse/Diuid/Pinot OLAP-ի համար։

Ֆիչեստորը ՝ Feast-ը կամ սեփական 'առցանց (Redis) + օֆլինը (Parquet/BigQuery), կոնսիստենտության երաշխավորը։

Դիզայնի արտոնագրերը

Medbox-ը Kafka-ն է 'յուրաքանչյուր հիբրիդային իրադարձություն BD գործարքից։

Սագի 'փոխհատուցում իրադարձությունների միջոցով։ նվագախումբը սթրիմ է։

Fan-out 'մի իրադարձություն է հակաֆրոդ, CRM, վերլուծություն, նոտացիա։

Materialized Views: առաջնորդներ, հավասարակշռություն, լիմիտներ 'աղյուսակների տեսքով, որոնք նորարարվում են սթրիմից։

Reprocessing 'տոպիկների վերարտադրումը ագրեգատների/ռետրո վերլուծաբանների փոխպատվաստման համար։

Օրինակներ (հասկացություններ)

ksqlDB 'մրցույթի առաջնորդներ (սահուն պատուհան)

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 (կեղծ) 'հակաֆրոդ սկորինգ c late-events

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);

Հոսքերի որակի փորձարկումը

Corract-թեստեր սխեմաների և էվոլյուցիայի (Schema Registry)։

Բեռները ՝ TPS, p99, վարքագիծը sink քայքայման ժամանակ։

Failure/chaos 'բրոկերների/հանգույցների անկում, ցանցային ուշացումներ, split-brain։

Deterministic replays: Topiks-ի կրկնվող պրոթոնը նույն արդյունքն է։

Canary-հոսքերը 'հետաձգման և ամբողջականության ստուգման ստանդարտ։

Ներդրման թուղթ

1. Որոշեք SLO (p99 E2E 35X, lag no Y, հասանելիությունը 4Z)։

2. Ստանդարտացնել սխեմաները և բանալիները (player _ id/bet _ id)։

3. Ընտրել ճարտարապետությունը (Kappa քննադատական կոնտուրների համար)։

4. Տեղադրել wwww.box + CDC-ը և մեկուսացնել PII-ը։

5. Տեղադրել պատուհաններ, watermark, late-policy և DLQ/side puts։

6. Ներառել EOS/idempotention դրամական ուղիների վրա։

7. Ներմուծել արտադրանքներ և ալերտներ lag, watermark, DLQ-ում։

8. Ապահովել HA/DR և reprocessing։

9. Տեղադրել Feature Store-ը և առցանց/օֆլինի համաժամացումը։

10. Անցկացնել game-day 'ձախողումներ և վերականգնում։

Antipatterns

Event-time-ի խառնուրդը և processing-time-ը առանց գիտակցված քաղաքականության։

Schema governae-ի բացակայությունը բացատրում է «կոտրող» օրինակները։

Անտեսել late-ը և «տաք բջիջները»։

Replay ռազմավարության և տոպիկների տարբերակման բացակայությունը։

Տոկոսադրույքներ/վճարումներ առանց idempotency և EOS։

Արդյունքները

Real-time striming-ը ոչ թե «մեկ այլ տեղափոխություն» է, այլ մտածողության մեթոդը 'հիբրիդային իրադարձություններ, հստակ SLO, տվյալների պայմանագրերը, պատուհանները և վիճակը, անվտանգությունը և դիտարկումը։ iGaming-ի համար կայուն հավաքածու 'Kafka + Flink/ksqlDB + Debez.ru + Materialized Views + Feature Store։ Այն տալիս է միլիոնավոր արձագանքներ, առցանց/օֆլայնային վերլուծաբաններ և վերահսկվող բարդություն բեռի աճի ժամանակ։

Contact

Կապ հաստատեք մեզ հետ

Կապ հաստատեք մեզ հետ ցանկացած հարցի կամ աջակցության համար։Մենք միշտ պատրաստ ենք օգնել։

Սկսել ինտեգրացիան

Email-ը՝ պարտադիր է։ Telegram կամ WhatsApp — ըստ ցանկության։

Ձեր անունը ըստ ցանկության
Email ըստ ցանկության
Թեմա ըստ ցանկության
Նամակի բովանդակություն ըստ ցանկության
Telegram ըստ ցանկության
@
Եթե նշեք Telegram — մենք կպատասխանենք նաև այնտեղ՝ Email-ի дополнение-ով։
WhatsApp ըստ ցանկության
Ձևաչափ՝ երկրի կոդ և համար (օրինակ՝ +374XXXXXXXXX)։

Սեղմելով կոճակը՝ դուք համաձայնում եք տվյալների մշակման հետ։