GH GambleHub

تجزیه و تحلیل جریان و جریان

1) هدف و ارزش

مدار جریان تصمیم گیری در پرواز را فراهم می کند:
  • Antifraud/AML: شناسایی ساختار سپرده ها، حملات سرعت، ناهنجاری های ارائه دهندگان.
  • بازی مسئول (RG): بیش از محدودیت، الگوهای خطر، خود حذفی.
  • عملیات/SRE: تخریب SLA، انفجار خطا، سیگنال های حادثه اولیه.
  • محصول/بازاریابی: رویدادهای شخصی سازی، مأموریت/مأموریت، تقسیم بندی در زمان واقعی.
  • گزارش نزدیک به زمان واقعی: ویترین GGR/NGR، پانل های عملیاتی.

ویژگی های هدف: p95 پایان به پایان 0. 5-5 ثانیه، تکمیل ≥ 99. 5٪، ارزش مدیریت شده.

2) معماری مرجع

1. مصرف/لبه

'/events/batch '(HTTP/2/3), gRPC, OTel collector.
اعتبار سنجی طرح ها، ضد تکراری، مسیریابی جغرافیایی.

2. اتوبوس رویداد

Kafka/Redpanda (تقسیم بر 'user _ id/tenant/market').
نگهداری 3-7 روز، فشرده سازی، DLQ/» قرنطینه« برای پیام های »شکسته«.

3. جریان جریان

Flink/Spark Structured Streaming/Beam.
اظهارات stateful، CEP، علامت، تاخیر مجاز، deduplication.
غنی سازی (Redis/Scylla/ClickHouse-Lookup)، I/O ناهمزمان با وقفه.

4. نمایش خدمت/عملیاتی

ClickHouse/Pinot/Druid برای تجمع دقیقه/ثانیه و داشبورد.
فروشگاه ویژگی (آنلاین) برای مدل های به ثمر رساند.
موضوعات هشدار → SOAR/ticketing/webhooks.

5. ذخیره سازی طولانی مدت (دریاچه)

برنز (خام)، نقره (تمیز)، طلا (خدمت) - پارکت + دلتا/کوه یخ/هودی.
پخش/backtests، سفر در زمان.

6. قابل مشاهده بودن

معیارهای خط لوله، ردیابی (OTel)، سیاهههای مربوط، اصل و نسب.

3) طرحها و قراردادها

Schema-first: JSON/Avro/Protobuf + Registry، «schema _ version» در هر رویداد.
تکامل: سازگار با عقب - زمینه های جدید nullable ؛ شکستن - '/v2 '+ انتشار دوگانه.
فیلدهای مورد نیاز عبارتند از 'event _ time' (UTC), 'event _ id', 'trace _ id', 'user. pseudo_id'، «بازار»، «منبع».

4) ویندوز، علامت های سفید و داده های دیررس

پنجره ها:
  • غلت زدن، پرش، جلسه.
  • علامت گذاری به عنوان: آستانه «دانش» رویداد زمان ؛ به عنوان مثال 2-5 دقیقه.
  • داده های دیررس: تنظیمات قبل از صدور، «late = true»، DLQ با تاخیر قوی.
مثال Flink SQL (سرعت سپرده 10 دقیقه):
sql
SELECT user_id,
TUMBLE_START(event_time, INTERVAL '10' MINUTE) AS win_start,
COUNT() AS deposits_10m,
SUM(amount_base) AS sum_10m
FROM stream. payments
GROUP BY user_id, TUMBLE(event_time, INTERVAL '10' MINUTE);

5) تجمع Stateful و CEP

کلید: 'user _ id'، 'device _ id'، 'پرداخت. account_id' است.
وضعیت: مبالغ کشویی/شمارنده، جلسات، فیلتر شکوفه برای deduplication.
الگوهای CEP: ساختار (<آستانه، ≥N بار، در هر پنجره T)، سوئیچ دستگاه، خستگی RG.

کد شبه CEP:
python if deposits. count(last=10MIN) >= 3 and deposits. sum(last=10MIN) > THRESH and all(d. amount < REPORTING_THRESHOLD):
emit_alert("AML_STRUCTURING", user_id, window_snapshot())

6) دقیقا یک بار، سفارش و idemotence

Bus: کلیدهای پارتیشن حداقل یک بار + سفارش محلی را ارائه می دهند.
Idempotence: 'event _ id' + حالت dedup (TTL 24-72 ساعت).
غرق شدن: تعهدات معاملاتی (2 فاز) یا upsert/merge-idempotency.
Outbox/Inbox: تضمین انتشار رویدادهای دامنه از OLTP.

7) غنی سازی در زمان واقعی

مراجعه: Redis/Scylla (محدودیت RG، وضعیت KYC، BIN → MCC، IP → Geo/ASN).
Asynchronous calls: sanctions/APP API with timeouts and fallback («ناشناخته»).
FX/منطقه زمانی: عادی سازی مقادیر و زمان بازار محلی ('fx _ source'، 'tz').

8) خدمت و فروشگاه های زمان واقعی

ClickHouse/Pinot/Druid: aggregations by minutes/seconds، نمایش های تحقق یافته.
جریان طلا: جداول عملیاتی GGR/RG/AML، SLA برای تاخیر ≤ 1-5 دقیقه.
API/GraphQL: تاخیر کم برای داشبورد و ادغام خارجی.

مثال ClickHouse (GGR دقیقه به دقیقه):
sql
CREATE MATERIALIZED VIEW mv_ggr_1m
ENGINE = AggregatingMergeTree()
PARTITION BY toDate(event_time)
ORDER BY (toStartOfMinute(event_time), market, provider_id) AS
SELECT toStartOfMinute(event_time) AS ts_min,
market,
provider_id,
sumState(stake_base) AS s_stake,
sumState(payout_base) AS s_payout
FROM stream. game_events
GROUP BY ts_min, market, provider_id;

9) قابلیت مشاهده و SLO

SLI/SLO (نشانه ها):
  • p95 → هشدار ≤ 2 s (بحرانی)، ≤ 5 s (تعادل).
  • کامل بودن پنجره T ≥ 99 5%.
  • خطای طرح ≤ 0. 1%; درصد حوادث با «trace _ id» 98٪ ≥.
  • دسترسی به خدمات جریان ≥ 99. 9%.
داشبورد:
  • حزب/موضوع عقب می افتد، اپراتورهای زمان مشغول، اندازه دولت.
  • Funnel «sobytiye → pravilo → keys», نقشه «hot» keys, late-ratio.
  • هزینه: هزینه/GB، هزینه/پرس و جو، هزینه بازرسی/تکرار.

10) حفظ حریم خصوصی و انطباق

به حداقل رساندن PII: نام مستعار ID، پوشش زمینه، نشانه PAN/IBAN.
اقامت داده ها: خطوط لوله منطقه ای (EEA/UK/BR)، کلیدهای رمزگذاری فردی.
عملیات حقوقی: DSAR/RTBF در فروشگاه های پایین دست، نگهداری قانونی برای موارد/گزارش ها.
حسابرسی: دسترسی به سیاهههای مربوط، آرشیو راه حل بدون تغییر.

11) اقتصاد و بهره وری

کلید و شاردینگ: اجتناب از «داغ» کلید (نمک/کلید کامپوزیت).
وضعیت: TTL معقول، عکس های فوری، تنظیم حالت RocksDB/backend.
Preaggregation: کاهش جلو برای جریان های پر سر و صدا.
نمونه برداری: معتبر در معیارهای غیر بحرانی (نه در معاملات/انطباق).
بازپرداخت: بودجه برای موضوعات/مشاغل، سهمیه ها و تخصیص تیم.

12) جریان DQ (کیفیت)

Ingest-validation (schema, enums, size), dedup '(event_id, source)'.
در جریان: کامل بودن/dup-rate/late-ratio، کنترل پنجره (بدون شمارش دوگانه).
سیاست های واکنش: بحرانی → DLQ + هشدار ؛ major/minor → برچسب و سپس روشن است.

حداقل قوانین (به عنوان مثال YAML):
yaml stream: payments rules:
- name: schema_valid type: schema severity: critical
- name: currency_whitelist type: in_set column: currency set: [EUR,USD,GBP,TRY,BRL]
- name: dedup_window type: unique keys: [event_id]
window_minutes: 1440

13) دسترسی به امنیت و کنترل انتشار

RBAC/ABAC: نقش های جداگانه برای خواندن موضوعات، تغییر قوانین/مدل ها.
کنترل دوگانه: اجرای قوانین و مدل ها از طریق «2 کلید».
Canary/A/B: قانون تاریک و مدل اجرا می شود، کنترل دقیق/فراخوانی.
اسرار: KMS/CMK، چرخش منظم، ممنوعیت اسرار در سیاهههای مربوط.

14) فرآیندها و RACI

R (مسئول): پلت فرم جریان (infra/releases)، تجزیه و تحلیل دامنه (قوانین/ویژگی ها)، MLOps (به ثمر رساند).
A (پاسخگو): رئیس داده/ریسک/انطباق توسط دامنه.
C (مشورت): DPO/حقوقی (PII/احتباس)، SRE (SLO/حوادث)، معماری.
I (مطلع): محصول، پشتیبانی، بازاریابی، مالی.

15) نقشه راه پیاده سازی

MVP (2-4 هفته):

1. کافکا/ردپاندا + دو موضوع مهم («پرداخت»، «auth»).

2. کار flink با علامت، deduplication و یک قانون CEP (AML یا RG).

3. ویترین ClickHouse/Pinot 1-5 دقیقه، تاخیر/کامل بودن داشبورد.

4. کانال حادثه (webhooks/Jira)، SLO های اساسی و هشدارها.

مرحله 2 (4-8 هفته):
  • غنی سازی آنلاین (Redis/Scylla)، فروشگاه ویژگی، جستجوی ناهمزمان.
  • مدیریت قانون به عنوان کد، انتشار قناری، A/B.
  • جریان DQ، منطقه بندی خطوط لوله، روش DSAR/RTBF.
مرحله 3 (8-12 هفته):
  • چند منطقه فعال فعال، چه اگر شبیه ساز پخش، خودکار کالیبراسیون آستانه.
  • ویترین کامل جریان طلا (GGR/RG/AML)، گزارش تقریبا در زمان واقعی.
  • داشبورد ارزش، بازپرداخت، تمرینات DR.

16) نمونه ها (قطعات)

فلینک CEP - سوئیچ دستگاه:
sql
MATCH_RECOGNIZE (
PARTITION BY user_id
ORDER BY event_time
MEASURES
FIRST(A. device_id) AS d1,
LAST(B. device_id) AS d2,
COUNT() AS cnt
PATTERN (A B+)
DEFINE
B AS B.device_id <> PREV(device_id) AND B.ip_asn <> PREV(ip_asn)
) MR
جریان کافکا - فیلتر idemotent:
java if (seenStore. putIfAbsent(eventId, now()) == null) {
context. forward(event);
}

17) چک لیست پیش فروش

  • طرح ها و قراردادها در رجیستری، آزمون های برگشتی سبز هستند.
  • شامل علامت سفید/اجازه تاخیر، dedup و DLQ.
  • پیکربندی SLO و هشدار (تاخیر/اواخر/dup/اندازه دولت).
  • غنی سازی با انبارها و زمان، عقب نشینی «ناشناخته».
  • RBAC/کنترل دوگانه به قوانین/مدل، تمام تغییرات ثبت شده است.
  • قوانین، فروشگاه ها و مستندات runbook و پخش/برگشت.

18) اشتباهات مکرر و چگونگی اجتناب از آنها

نادیده گرفتن زمان رویداد: بدون علامت، معیارهای «شناور».
بدون deduplication: هشدار نادرست و شمارش دو برابر.
کلید های داغ: اعوجاج احزاب → شور/resarding.
API های جلویی همزمان در مسیر داغ: فقط async + cache.
هزینه های مدیریت نشده: پیش جمع آوری، TTL ایالات، سهمیه ها، داشبورد هزینه.
عدم شبیه ساز: rollouts بدون «پخش» منجر به رگرسیون.

19) واژه نامه (کوتاه)

CEP - پردازش رویداد پیچیده.
واترمارک - محدودیت آمادگی پنجره بر اساس زمان رویداد.
Lateness مجاز - تحمل وقایع اواخر.
اپراتور stateful - یک اپراتور با حالت ذخیره شده.
فروشگاه ویژگی - ویژگی گشت و گذار هماهنگ (آنلاین/آفلاین).

20) خط پایین

تجزیه و تحلیل جریان و جریان یک سیستم مدیریت شده است: قراردادها، پنجره ها و علامت های سفید، منطق stateful و CEP، غنی سازی و فروشگاه های زمان واقعی، SLO و قابلیت مشاهده، حریم خصوصی و ارزش تحت کنترل. با پیروی از شیوه های شرح داده شده، این پلت فرم آشکارسازهای ریسک قابل اعتماد، پانل های عملیاتی و شخصی سازی را با تاخیر و هزینه قابل پیش بینی دریافت می کند.

Contact

با ما در تماس باشید

برای هرگونه سؤال یا نیاز به پشتیبانی با ما ارتباط بگیرید.ما همیشه آماده کمک هستیم!

Telegram
@Gamble_GC
شروع یکپارچه‌سازی

ایمیل — اجباری است. تلگرام یا واتساپ — اختیاری.

نام شما اختیاری
ایمیل اختیاری
موضوع اختیاری
پیام اختیاری
Telegram اختیاری
@
اگر تلگرام را وارد کنید — علاوه بر ایمیل، در تلگرام هم پاسخ می‌دهیم.
WhatsApp اختیاری
فرمت: کد کشور و شماره (برای مثال، +98XXXXXXXXXX).

با فشردن این دکمه، با پردازش داده‌های خود موافقت می‌کنید.