GH GambleHub

इवेंट-स्ट्रीमिंग और रियल-टाइम डेटा

(धारा: प्रौद्योगिकी और बुनियादी ढांचा)

संक्षिप्त सारांश

इवेंट-स्ट्रीमिंग उस समय की घटनाओं का प्रसंस्करण और वितरण है। IGaming के लिए, इसका मतलब है दांव, जमा, धोखाधड़ी-विरोधी संकेतों, जिम्मेदार गेम सीमाओं, टूर्नामेंट तालिकाओं और व्यक्तिगत प्रस्तावों पर त्वरित प्रतिक्रिया। बेस ईंटें: इवेंट बस (काफ्का/पल्सर), स्ट्रीमिंग इंजन (फ्लिंक/ksqlDB/स्पार्क स्ट्रीमिंग), ट्रांजेक्शनल डेटाबेस (डेबेज़ियम) से सीडीसी, ऑनलाइन एमएल और रियल-टाइम एनालिटिक्स के लिटिक्स

iGaming में यह महत्वपूर्ण कहाँ है

धोखाधड़ी और जोखिम: <100-300 एमएस में लेनदेन स्कोरिंग, व्यवहार पैटर्न का सहसंबंध, अवरुद्ध और वृद्धि।

जिम्मेदार खेल: सीमा नियंत्रण, हानि दर, असामान्य व्यवहार - अलर्ट और वास्तविक समय ऑटो-प्रतिबंध।

भुगतान: स्थिति वाल्व, वेबहूक पीएसपी, स्मार्ट-रीट्री, बैलेंस अनुमान, एसएलए "टाइम-टू-वॉलेट"।

खेल की घटनाएं: टूर्नामेंट के नेताओं की गणना (फिसलने वाली खिड़कियां), लाइव गेम के दौर, सीआरएम/मार्केटिंग के लिए वास्तविक समय फ़ीड।

निजीकरण: ऑनलाइन सुविधाएँ (RFM, प्रवृत्ति) → ट्रिगर अभियान, सेकंड के भीतर पुश/ईमेल।

ऑपरेशनल एनालिटिक्स: p95/p99 लेटेंसी, फ़नल स्टेप रूपांतरण, प्लेटफ़ॉर्म हेल्थ सिग्नल।

वास्तुशिल्प मॉडल

लैम्ब्डा बनाम कप्पा

लैंबडा: बैच (DWH/ETL) + स्ट्रीमिंग (ऑपरेटिव)। इसके अलावा - लचीलापन और "सस्ता" बीच; शून्य से दोहरा तर्क है।

कप्पा: सब कुछ एक पत्रिका (काफ्का) से एक धारा की तरह है। इसके अलावा - एक एकल कोड, घटना रीप्ले; शून्य से - सख्त बुनियादी ढांचे की आवश्यकता

अभ्यास: महत्वपूर्ण वास्तविक समय के लिए आकृति - कप्पा; रिपोर्टिंग/एमएल प्रशिक्षण के लिए - एक अतिरिक्त बैच सर्किट।

इवेंट पाइपलाइन (संदर्भ)

1. निर्माता: सट्टेबाजी/भुगतान सेवाएं डोमेन इवेंट्स (आउटबॉक्स → काफ्का) प्रकाशित करती हैं।

2. बस: कुंजियों द्वारा भागों के साथ काफ्का ('player _ id', 'bet _ id').

3. सीडीसी: डेबेजियम ओएलटीपी (शेष, सीमा) से स्ट्रीम में परिवर्तन करता है।

4. स्ट्रीमिंग: फ्लिंक/ksqlDB/स्पार्क - एकत्रीकरण, खिड़कियां, CEP, शामिल हों।

5. अनुमान: भौतिक तालिकाएं (काफ्का स्ट्रीम्स स्टेट स्टोर/ksqlDB टेबल/Redis), OLAP (क्लिकहाउस/Druid)।

6. उपभोक्ता: धोखाधड़ी विरोधी, सीआरएम, सूचनाएं, डैशबोर्ड, ट्रिगर वर्कफ़्लो।

डेटा अनुबंध और स्कीमा

एवरो/प्रोटोबुफ + स्कीमा रजिस्ट्री: सख्त अनुबंध, पिछड़े-संगत प्रवासन।

वर्शनिंग: 'डोमेन। घटना। v {n} '; परिवर्तनों को तोड़ ने पर प्

PII: टोकन/एन्क्रिप्शन, मास्किंग, उद्देश्य सीमा (GDPR)।

डिलीवरी शब्दार्थ और पहचान

कम से कम-एक बार एक वास्तविक मानक है (डुप्लिकेट संभव हैं) → आइडेम्पोटेंट-हैंडलिंग की आवश्यकता होती है।

स्ट्रीमिंग में बिल्कुल एक बार: फ्लिंक/स्ट्रीम में काफ्का + ईओएस लेनदेन निर्माता; अधिक महंगा, लागू बिंदु (धन/शेष)।

आउटबॉक्स + सीडीसी: सेवा डेटाबेस से सत्य का एक एकल स्रोत, डबल राइट सुरक्षा।

Dedup: कुंजी ('idempotency _ key'), TTL के साथ deduplication तालिका, upsert/merge.

समय विंडो और "देर से" डेटा

विंडोज़:
  • टंबलिंग - निश्चित स्लॉट (उदाहरण के लिए, क्रांति का एक मिनट)।
  • वेतन वृद्धि में फिसलना (उदाहरण के लिए, 1 मिनट की वेतन वृद्धि में 5 मिनट की विंडो)।
  • सत्र - निष्क्रियता से (खिलाड़ीसत्र)।
  • वाटरमार्क: इवेंट-टाइम प्रोसेसिंग, विलंबता, डीएलक्यू/साइड-आउटपुट निकासी।
  • CEP (कॉम्प्लेक्स इवेंट प्रोसेसिंग): पैटर्न "ए फिर बी इन 3 मिनट", "एम सेकंड में एन इवेंट्स", "रद्द/मुआवजा"।

स्थिति और स्केलिंग

राज्यपूर्ण ऑपरेटर: एकत्रीकरण/जॉयनेस राज्य (RockDB राज्य बैकएंड)।

चेंजेलॉग विषय: विश्वसनीयता और राज्य वसूली।

Backpressure: ऑटो-स्पीड कंट्रोल, सिस्टम पर सीमा।

प्रमुख वितरण: भारी हिटर - कुंजी-नमकीन, तिरछा शमन।

निगरानी और एसएलओ

स्ट्रीम एसएलओ: p99 एंड-टू-एंड लेटेंसी (उदाहरण के लिए, ≤ 2 एस), वैध उपभोक्ता अंतराल, उपलब्धता ≥ 99। 9%.

मेट्रिक्स: थ्रूपुट, पार्टी द्वारा अंतराल, वॉटरमार्क देरी, ड्रॉप/लेट अनुपात, बैकप्रेशर, व्यस्त समय ऑपरेटर, जीसी/जेवीएम।

अलर्ट: डीएलक्यू ग्रोथ, वॉटरमार्क लैग, ईओएस चेकपॉइंट विफलताएं, ऑनलाइन/ऑफ़लाइन रैसिन सुविधाएँ।

ट्रेसिंग: उत्पादक-स्ट्रीम-उपभोक्ता के माध्यम से कोरेलेशनल आईडी ('ट्रेस _ आईडी', 'मैसेज _ आईडी')।

सुरक्षा और अनुपालन

टीएलएस/एमटीएलएस, एसीएल/आरबीएसी विषयों/तालिकाओं पर, संवेदनशील डोमेन का विभाजन (भुगतान/सीसीएम)।

पारगमन/डिस्क पर पीआईआई एन्क्रिप्शन; तिजोरी/SOPS में रहस्य।

डेटा प्रतिधारण और स्थानीयता: क्षेत्र द्वारा भंडारण (यूरोपीय संघ, तुर्की, लैटम), हटाने की नीति।

लेखा परीक्षा: जिसने प्रकाशित/पढ़ा, लिपियों की प्रजनन योग्यता।

उच्च उपलब्धता और डीआर

काफ्का: 'प्रतिकृति। कारक ≥ 3 ',' मिनट। Insync। प्रतिकृतियाँ ',' acks = all ', DRS के लिए क्रॉस-रीजन प्रतिकृति (MM2)।

फ्लिंक/स्ट्रीम: नियंत्रित रिलीज के लिए आवधिक चेकपॉइंट + सेवपॉइंट; एचए-जॉब मैनेजर।

OLAP: खंड प्रतिकृति, प्रतिकृतियां पढ़ें; असफल (खेल दिवस) परीक्षण।

प्रदर्शन और ट्यूनिंग

निर्माता: कसाई ('linger। ms ',' बैच। आकार '), संपीड़न (lz4/zstd)।

उपभोक्ता: सही 'अधिकतम। सर्वेक्षण। अंतराल ', बैकऑफ के दौरान पार्टियों का ठहराव।

विभाजन: लक्ष्य TPS और समानतावाद से पार्टियों की गिनती।

राज्य: RockDB विकल्प (ब्लॉक कैश/राइट बफर), NVMe/IOPS, पिनिंग।

नेटवर्क: 10/25G, TCP ट्यूनिंग, n + 1 सिंक अनुरोध नियंत्रण।

कार्यान्वयन: प्रमुख प्रौद्योगि

शिना: अपाचे काफ्का (विकल्प: पल्सर, रेडपांडा)।

स्ट्रीमिंग: अपाचे फ्लिंक, काफ्का स्ट्रीम्स, ksqlDB, स्पार्क स्ट्रीमिंग

सीडीसी: डेबेजियम (MySQL/Postgres), आउटबॉक्स कनेक्टर।

प्रक्षेपण भंडार: ksqlDB टेबल, काफ्का स्ट्रीम्स स्टेट स्टोर, रेडिस कम विलंबता के लिए, ओएलएपी के लिए क्लिकहाउस/ड्र्यूड/पिनोट।

Fichestor: दावत या खुद - ऑनलाइन (Redis) + ऑफ़ लाइन (Parquet/BigQuery), स्थिरता की गारंटी।

डिजाइन पैटर्न

आउटबॉक्स → काफ्का: डीबी लेनदेन से प्रत्येक डोमेन घटना।

सागास: घटनाओं के माध्यम से मुआवजा; धारा द्वारा ऑर्केस्ट्रे

फैन-आउट: एक घटना - धोखाधड़ी-विरोधी, सीआरएम, एनालिटिक्स, सूचनाएं।

भौतिक दृश्य: लीडरबोर्ड, संतुलन, सीमाएं - तालिकाओं के रूप में जो धारा से अद्यतन हैं।

पुनर्संसाधन: समुच्चय/रेट्रो एनालिटिक्स के पुनर्गणना के लिए विषयों का प्रजनन।

उदाहरण (अवधारणाएँ)

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;

फ्लिंक (स्यूडोकोड): देर से होने वाली घटनाओं के साथ धोखाधड़ी विरोधी स्कोरिंग

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

थ्रेड गुणवत्ता परीक्षण

योजनाओं और विकास के अनुबंध परीक्षण (स्कीमा रजिस्ट्री)।

लोडिंग: लक्ष्य TPS, p99, सिंक क्षरण व्यवहार।

विफलता/अराजकता: दलालों/नोड्स में गिरावट, नेटवर्क देरी, विभाजन-मस्तिष्क।

नियतात्मक रिप्ले-फिर से विषयों को चलाता है - समान परिणाम।

कैनरी धाराएँ: देरी और अखंडता की जाँच के लिए लूप।

कार्यान्वयन जाँच सूची

1. SLO को परिभाषित करें (p99 E2E ≤ X c, लैग ≤ Y, उपलब्धता ≥ Z)।

2. योजनाओं और कुंजियों को मानकीकृत करें (player_id/bet_id)।

3. वास्तुकला चुनें (महत्वपूर्ण छोरों के लिए कप्पा)।

4. आउटबॉक्स + सीडीसी कॉन्फ़िगर करें और पीआईआई को अलग करें।

5. विंडो, वॉटरमार्क, लेट-पॉलिसी और डीएलक्यू/साइड आउटपुट सेट करें।

6. धन पथ पर EOS/idempotency सक्षम करें।

7. लैग, वॉटरमार्क, डीएलक्यू के लिए निगरानी और अलर्ट पेश करें।

8. एचए/डीआर और पुनर्संसाधन प्रक्रिया प्रदान करें।

9. फ़ीचर स्टोर तैनात करें और ऑनलाइन/ऑफ़लाइन सिंक करें।

10. खेल-दिवस बिताएं: असफलताओं और वसूली से बाहर काम करना।

एंटी-पैटर्न

सचेत नीति के बिना घटना-समय और प्रसंस्करण-समय का मिश्रण।

स्कीमा गवर्नेंस की कमी - "ब्रेकिंग" रिलीज़।

देर से डाटा और गर्म कुंजियों को अनदेखा किया जा रहा है।

पुनरावृत्ति रणनीति की कमी और विषयों की संस्कृति।

बिना पहचान और ईओएस के दरें/भुगतान।

सारांश

रियल-टाइम स्ट्रीमिंग "एक और परिवहन" नहीं है, बल्कि सोचने का एक तरीका है: डोमेन इवेंट्स, स्पष्ट एसएलओ, डेटा कॉन्ट्रैक्ट, विंडो और स्थिति, सुरक्षा और अवलोकन। IGaming के लिए, टिकाऊ सेट Kafka + Flink/ksqlDB + Debezium + भौतिक दृश्य + फ़ीचर स्टोर है। यह मिलीसेकंड प्रतिक्रियाएं, ऑनलाइन/ऑफ़लाइन एनालिटिक्स स्थिरता और नियंत्रित जटिलता देता है क्योंकि लोड बढ़ ता है।

Contact

हमसे संपर्क करें

किसी भी प्रश्न या सहायता के लिए हमसे संपर्क करें।हम हमेशा मदद के लिए तैयार हैं!

इंटीग्रेशन शुरू करें

Email — अनिवार्य है। Telegram या WhatsApp — वैकल्पिक हैं।

आपका नाम वैकल्पिक
Email वैकल्पिक
विषय वैकल्पिक
संदेश वैकल्पिक
Telegram वैकल्पिक
@
अगर आप Telegram डालते हैं — तो हम Email के साथ-साथ वहीं भी जवाब देंगे।
WhatsApp वैकल्पिक
फॉर्मैट: देश कोड और नंबर (उदा. +91XXXXXXXXXX)।

बटन दबाकर आप अपने डेटा की प्रोसेसिंग के लिए सहमति देते हैं।