Իրական ժամանակում վարկանիշները 'տեխնոլոգիական ճարտարապետություն
Real-Time-ի վարկանիշը ծառայությունների կապն է, որը միլիոնավոր խաղային իրադարձություններ վերածում է հարյուրավոր միլիոնավոր միլիոնավոր մարդկանց նորարարված դիրքերի 'պահպանելով ազնվությունը, աուդիրացիան և տնտեսական կառավարումը։ Ներքևում գործնական կառուցվածք է պահանջներից մինչև շահագործումը։
1) Պահանջներ և ցուցանիշներ
Լատենտությունը մինչև UI: 24200-300 ms p95-ից մինչև դիրքի նորարարումը։
Ճշգրտությունը '«լավագույն N «/լոկոմոտիվների/tai-breaks ճիշտ դասակարգումը բեռի և ձախողումների ժամանակ։
Հասանելիություն ՝ 3699։ Մրցույթի ժամանակահատվածի 9 տոկոսը; քայքայումը առանց ամբողջականության կորստի։
Idempotention: «Ուղիղ մեկ անգամ» հաշվարկների մակարդակում, «առնվազն մեկ անգամ» տեղափոխության վրա։
Մասշտաբը 'հորիզոնական աճը տարածաշրջաններում/կառավարական/թիմերում (top-K շարդի վրա)։- Աուդիտ 'կանոնների, իրադարձությունների, հաշվարկների և հաշվարկների անփոփոխ կարգախոսներ։
2) Համակարգային սխեմա (10,000 ֆտ մակարդակ)
Клиент → Event Ingest → Scoring Engine → Stream Aggregator (Top-K/Top-M) → Write-Optimized Store → Hot Cache/Edge → UI/Comms → Rewards/Claim
Фоново: Snapshotter, Anti-Fraud/RG, Analytics & A/B, Audit/Observability.
3) Իրադարձությունների ընդունումը (Event Ingest)
Առաջադրանքներ 'պաշտպանություն դուբլներից, բարձրացումներից, ցանցային ցանցերից։
Idempotention: Յուրաքանչյուր իրադարձություն ունի «event _ uid»; «տեսանք/սկսեցինք»։
Առաքման սեմանտիկան 'տրանսպորտը' at-leport-once, ակնոցները 'exactly-once։- Backpressure: գծեր դինամիկ կուսակցություններով; ծանրաբեռնվածության դեպքում «ակտիվ» շրջագայությունների գերակայությունն է։
- Ժամանակավոր պատուհաններ 'թույլ ենք տալիս late events (օրինակ, մինչև 90 վայրկյան), մենք ուղղորդում ենք «թռիչքի պատուհանի» մեջ։
- Ժամանակը 'սերվերային UTC, կլիենտում միայն լոկալի քարտեզագրումն է։
4) Ակնոցների հաշվարկը (Scoring Engine)
Սկզբունքները 'տարբերակված կանոնները, հակա-ռուսական-to-win, թեթև արձագանքը։
Տարբերակումը '"rule _ բանաձև _ id' + feature-flags per-region/division։- Մոդելներ ՝ multiplier («Score = round (100log2 (Win/Bet + 1)»), win-based լոգ կորից, wager-based (միայն որպես ֆոնային meta)։
- «Լավագույն N «-ը, մենք պահում ենք top-N կառուցվածքը խաղացողի/օրվա/շրջագայության վրա։ ամփոփում/միջնորդություն ձևաչափով։
- Բացառություններ 'բոնուսային միջոցներ' coef _ bonus 240։ 5 'կամ' 0 '; cap spin/day; քվոտաներ պրովայդերի վրա։
Թայ-բրեյք: 1) ավելի վաղ հասանելիությունը, 2) ավելի մեծ բազմազանություն։ 3) դետերմինացված seed.
5) Սթրիմ ագրեգացիան և լավագույն K-ը
Նպատակը 'արագ հաշվել դիրքերը առանց ամբողջ բազմության սկանավորման։
6) Պահեստավորում ՝ write vs read
Write-optimized store: Հաշվարկների լոգ, «best-N», tai-breks, մետատվյալներ (միայն ձայնագրություններ/apdeits)։
Read-optimized store (Query): UI-ի համար դենորմալիզացված «վիտրինները» 'լավագույն 100-ը, «իմ դիրքը», «լավագույն օր/2019», թիմի ներդրումը։
Նկարները (Snapshotter) 'առաջնորդի ժամացույցի «երազանքները»; արագ rollback/replay, զեկույցներ և աուդիտ։
Համաձայն 'eventium լայն ցուցակների, read-your-writes-ի համար «իմ դիրքի» համար։
7) Քեշը և Էդգեն
Տաք քեշը 'վերջին դիրքերը և խաղացողների հաշիվը շարդի վրա։ TTL 1-5 վայրկյան; հաշմանդամություն ունեցող անձանց համար։
Edge շերտը/CDN 'ստատիկ բլոկներ, «սառը» արդյունքների էջեր, բայց ոչ հաշվարկման տրամաբանությունը։- Fallback: դեգրադացիայի ժամանակ «բրոնզի ռեժիմը» 'UI-ի նորարարությունը յուրաքանչյուր X վայրկյանում + ծանր vijete բլոկը։
8) Ժամանակը, պատուհանները և թայմզոնները
Միակ «իրական» ժամանակը 'UTC ծառայությունների վրա։ UTC-ում։- Տեղայնացում 'ժամանակի փոխակերպումը կլիենտում (օգտագործողի ժամային գոտի)։
- Սահմանները '«փափուկ պատուհանը» փակելու 1-3 րոպե ցանցային բայերի համար (T&C)։
- Մենք գնում ենք word դասը 'clock-ew skom, NTP-alerts, dreaft չափում։
9) Ուշ և կրկնվող իրադարձությունների դեմ պայքարը
Late events: Մենք պահպանում ենք «reconciliation 112»; հատում է տեղական + «հանգիստ» դիրքերը ծանուցման ժապավենից։
Դուբլի ՝ "event _ uid '+ (player, game, bet, ts) նեղ պատուհանում։ «seen» ամսագիրը։- Հաշվարկների համադրելիությունը 'գործարքներ «իրադարձությունը փոփոխվում է», որը ունի appied/rolled _ back կարգավիճակը։
10) Anti-frod և RG (ներկառուցված է pline)
Վարքագծային սկորինգը 'միատեսակ ընդմիջումներ, գերզգայուն, «առանց աղմուկի» դրոշներ։- Կապերի գրաֆիկը 'ընդհանուր dewiss/IP/վճարումներ ռուսական կլաստերներ; հոլդներ մրցանակներ, ձեռքով ստուգում։
- Քվոտաներ և գլխարկներ ՝ N լավագույն փորձեր/օր, քվոտաներ մեկ փղի/պրովայդերի, per spin/day ակնոցների համար։
- Բոնուսային միջոցները 'գործակիցները/բացառությունները։
- RG 'ակնոցները հաշվարկվում են միայն կամավոր սահմանների սահմաններում (ժամանակը/դեպոզիտները/կորուստները); ընդմիջումների հիշեցումներ։
11) Մոլթիի տարածաշրջանը և անկայունությունը
Ռուսական-2019 տարածաշրջաններով 'տարածաշրջանային շարանդներ + գլոբալ կամար; մոտակա երթուղին։
RTO/RPO: RTO <15 րոպե (ֆոլբեկ ձնաբքի վրա), RPO = 0 հաշվարկների համար (idempotent հատիկ)։
Partair-toler.ru: Ցանցային ընդմիջման ժամանակ տեղական առաջնորդն է, հաջորդ համախմբումը և դիրքի փափուկ ուղղումը։
FX և արժույթ. Եթե մրցանակները տարբեր արժույթներում, մենք ամրագրում ենք փոխակերպման պահը, FX-bufer 1-3 տոկոսը։
12) Անվտանգությունն ու գաղտնիությունը
Տվյալները ՝ նվազագույնի (կեղծանուններ, առանց PII ագրեգատորի), «թռիչքի» և «հանգստի» կոդավորումը։- Հասանելիությունը 'ամենափոքր արտոնությունների սկզբունքը, KFC-ի գաղտնիքները, հասանելիության աուդիտը։
- T & C/իրավասություն 'կանոնների/տարբերակների լոգներ, գեո բլոկներ, տարիքային սահմանափակումներ։
13) Դիտողությունն ու MSE պրակտիկան
SLO: UI-lag 35300 ms p95, Claim-ժամանակը 10 րոպե p95, aptaim 3699։ 9%.
Metrics: events/sec, կաղնու/հեռացված, late-rate, առաջին K-ի heap աճը, strima լագը, հաշվարկման սխալները, claim-rate-ը։
Թրեյսինգը 'միջով (ingest www.coring www.UI)։- Alerty: stop կոճակ (Altable ծանր փորձարկումներ/նվազեցնել N լավագույնը), avto-դեգրադացիա։
- Post-mortem: RCA 24-48 ժամ, action items, error-budget policy։
14) Rewards & Claim
Ավտոնագրադա 'close-իրադարձության ժամանակ, փակցնում է դիրքերը, ֆորումը, քվիտանիան։- Claim-պատուհանը ՝ 2472 ժամ, առաքման ռետրո, դետերմինացված ընթացակարգ։
- Թափանցելիություն 'մրցանակների պատմությունը օրինագծում' կանոն, ժամանակ, գումար, աղբյուրը։
- Հոլդները 'հազվագյուտ/արժեքավոր մրցանակների համար մինչև KYC/AML։
15) A/B փորձարկումներ և սխեմաների էվոլյուցիա
Ինչ փորձարկել 'N լավագույնը (10/20), cap per spin (on/off), բոնուսը բազմազանության համար (0/50/100), ագրեգացիայի տեսակը (գումար/միջին)։
Ռանդոմիզացիան 'տարածաշրջաններով/108/կլաստերներով, խուսափում ենք հոսանքներից։
Guardrails: RTP, բողոքներ/10k, RG ազդանշանները չեն վատանում։
Գրանցումը 'պահեստային սխեմաների համատեղելիությունը, կրկնակի ձայնագրությունը (dult-write) ժամանակի ընթացքում։
16) UX-patterns real-time վարկանիշների
Վարկանիշային կենտրոն 'հաղթանակի կանոն, թայմեր, ձեր հաշիվը, մնացած փորձերը, next reward-ը։- Կենդանի ֆիբեկը '«+ 40 ակնոցներ x3-ի համար», «մնացել է 20-ից երկու փորձեր», «դու բարձրացել ես 3-րդ տեղում»։
- Վիտրիններ ՝ ընդհանուր 100-ը, «իմ դիրքը», «լավագույն օր/ֆուտբոլ», թիմի մեջ ներդրումը։
- A1y 'հակադրություն, մեծ թվեր, ֆոկուս-սթեյտներ, առաջընթացի բարձրաձայնումը։
- Տեղայնացումը 'dedline/timers տեղական TZ-ում, բազմալեզու։
17) Հաճախակի ձախողումներ և քայքայման սցենարներ
18) Չեքլիստը, որը սկսել է real-time վարկանիշները
Կանոնները/Տնտեսագիտություն
- Բանաձևը, N լավագույնը, թայ-բրեյքը, աղբավայրերը,
- Rewault Rate, լայնությունը, waigers, claim 2472 ժամ։
Տեխնիկան
- Idempotent Ingest, Late-2019, շարդինգ
- Stream-Aggregator (топ-K/Top-M), Snapshotter
- Hot Cache/Edge, Health/Status API, stop կոճակ
Անվտանգություն/RG
- Վարքագծային կարբինգ, կապի գրաֆիկ, գլխարկներ/քվոտաներ/քվոտաներ
- RG-limits, հիշեցումներ, KYC/AML մեծ մրցանակների համար
Տվյալները/A/B
- Dashbords: lag, late-rate, դուբլի, fairness-metrike
- Փորձարկումների պլանը և guardrails, dult-write, երբ կատարվում են
UX
- Վարկանիշի կենտրոն, միկրո ֆիբեկ, A1y, տեղայնացում
- 1 էկրանի կարճ կանոնները + ամբողջական T&C
Իրական ժամանակում հուսալի վարկանիշը ոչ թե մեկ ծառայություն է, այլ կարգապահական էկոհամակարգ 'գաղափարական ընդունումը, տարբերակված կարբինգը, լավագույն K-ի հոսքի միավորումը, արագ քեշը, կարգավիճակի նկարները և ներկառուցված հակա-ֆրոդ/RG մեխանիզմները։ Ավելացրեք խիստ SLO/SLA, հասկանալի UX-ը և A/B-ի միջոցով փոփոխությունների ստուգումը, և կստանաք առաջնորդներ, որոնք վստահում են խաղացողներին, իսկ ապրանքը ստանում է կանխատեսելի աճ Retention, Stickiness և LTV-ի միջոցով։