GH GambleHub

Message Broker we Wakalary ugrukdyrmak

(Bölüm: Tehnologiýalar we infrastruktura)

Gysgaça gysgaça

Message Broker - iGaming-de integrasiýalaryň we waka tekerleriniň esasy gatlagy. Ol nyrhlaryň, tölegleriň, antifrod, KYC, CRM we analitikleriň mikroservisleriniň arasynda habarlaryň iberilmegini, buferleşdirilmegini we marşrutlaşdyrylmagyny amala aşyrýar. Başarnykly dizaýn edilen alyş-çalyşlar (exchanges), nobatlar, marşrutlaşdyryş açarlary we gaýtadan eltmegiň düzgünleri pes gijikdirmegi, traffigiň ýokarlanmagyna garşylygy we öňünden aýdyp boljak SLO-lary üpjün edýär.

iGaming platformasynda dellalyň roly

Hyzmatlary aýyrmak: gaty sinhron jaňlaryň ýerine wakalary çap etmek.
Çeýe marşrut: bir waka → köp sarp ediji (CRM, töwekgelçilik, analitika).
Ýüküň dolandyrylyşy: nobatlar, prefetch/QoS, arka.
Ygtybarlylyk we dikeldiş: tassyklamalar, retralar, DLQ, köpeltmek.
Audit we laýyklyk: wakalary yzarlamak, PII-ni gizlemek, saklamak syýasaty.

Habarlaşma modelleri

Point-to-Point (Wezipe nobaty): Bir sarp ediji meseläni dolandyrýar (KYC, e-mail, PSP webhook).
Pub/Sub (domen wakalary): janköýer alyş-çalşygynda birnäçe gezek çap etmek.
RPC broker arkaly: baglanyşyk bilen haýyş/jogap ("gyzgyn" ýollarda seýrek, ýöne integrasiýa üçin peýdaly).

Marşrutlaşdyryş düşünjeleri (AMQP-klassika)

Exchanges we bindings habaryň haýsy nobata düşjekdigini kesgitleýär:

1. direct - 'routing _ key' -iň takyk gabat gelmegi.

2. topic - "a" şablonlary. b. c's "(bir söz) we '#' (0 + söz). Ähliumumy saýlaw.

3. fanout - ähli baglanyşykly nobatlara giň ýaýlym.

4. headers - baş sözbaşy (açar/baha), çylşyrymly syýasatlar üçin peýdaly.

Açarlaryň we topologiýalaryň mysallary:
  • `payments. psp. stripe. succeeded`, `payments. psp..failed`, `bets. live. #`, `rg. limit. breach`.
  • Domen çalşyjylary: 'payments. topic`, `bets. topic`, `risk. topic`; aýratyn - ulgam wakalary üçin 'platform. audit`.
Teklipler:
'Domain' düwmesini standartlaşdyryň. subdomain. verb. status` (snakedot case - birmeňzeş).
Baglanyşygy azaldyň - bir çalşyjy → köp nobat, zerurlyk bolmazdan "köp çalşyjy" däl.
Köp tenantlyk üçin: müşderi üçin vhost/namespace, açar prefiksleri: 'tenantX. payments. psp…`.

Nobatlar we syýasatlar

Iş nobaty: işewürler tarapyndan sarp edilýär.
Retry-nobatlar: TTL (delay) we DLX bilen eksponensial arka gaplar üçin (mysal üçin '5s → 1m → 5m → 1h').
DLQ (Dead-Letter Queue): retraýlar gutarandan soň gutarnykly "zibil".
Priorities: gyssagly meseleler üçin (netijeler> hatlar).
Lazy/Quorum: lazy - uly beloglarda RAM tygşytlamak; quorum - konsensus esasynda HA.

Mini-syýasatlar (düşünje):
  • `work. q` → `x-dead-letter-exchange=retry. ex`
  • `retry. 1m. q` → `x-message-ttl=60000`, `x-dead-letter-exchange=work. ex`
  • `dlq. q '→ gözegçilik we el bilen remediasiýa

Eltmegiň kepillikleri we tertibi

At-least-once - defolt: dublikatlar bolup biler → idempotentlik hökmanydyr.
At-most-once - iň az gijä galmak, ýöne ýitgi töwekgelçiligi ("möhüm däl" signallar üçin).
Exactly-once - brokerlerde seýrek amaly; has kyn we has gymmat gazanylýar. Pul üçin: at-least-once + gaty idempotentlik.

Tertip:
  • Bir nobatda we ýekeje sarp edijide tertip saklanýar; parallelizm + retralarda tertip bozulyp biler.
  • Tertibi talap edýän zatlar üçin akymy seriýallaşdyryň (açar üçin ýeke-täk işjeň ulanyjy) ýa-da "gämi" tekerlerine geçiriň (akym).

Idempotentlik we geleşik çap

Habardaky Idempotency-Key (ULID/UUID), açar boýunça TTL ýa-da upsert bilen depozit.
Outbox-pattern: iş amalynyň çäginde wakany "outbox" tablisasyna ýazmak, konnektor dellalda çap edýär → "goşa ýazgyny "/ýitgini aradan aýyrýar.
Habarlaşma meta maglumatlary: 'message _ id', 'trace _ id', 'causation _ id', 'tenant _ id'.

RPC broker arkaly (zerur bolanda)

Haýyş 'reply _ to' i 'correlation _ id' bilen çap edilýär, jogap - görkezilen nobatda.
Çäkli derejede ulanmak (daşarky üpjün edijiler, sinhron barlaglar), wagtlary we söhbetdeşlik tendensiýasyna gözegçilik etmek (başgaça - paýlanan monolitde pese gaçmak).
Gyzgyn ulanyjy ýollary üçin asinxron hadysalar + ýagdaý proýeksiýasy has gowudyr.

Maglumatlaryň şertnamalary we shemalary

Formatlar: Euro/Protobuf/JSON-Schema. JSON üçin - wersiýa we hökmany meýdanlary düzüň.
Ewolýusiýa syýasaty: backward-compatible üýtgeşmeler; migrasiýa bolmazdan bozýan üýtgeşmeler gadagan edilýär.
PII - meýdanlary bellemek/şifrlemek; maksady (purpose) we saklanyş möhleti.

Hatalary bejermek, retralar, DLQ

Klassifikasiýa: wagtlaýyn (tor/5xx) → retralar; phatal (tassyklama/shema) → DLQ.
Exponential backoff + jitter, synanyşyklaryň sanyny çäklendirmek, "poison-pill" bellikleri.
Gijikdirilen eltip bermek: TTL/Delayed-exchange arkaly.
Sebäp fiksinden soň DLQ-den "reinjekt işe" guraly.

Synlamak we SLO

Prodýuseriň ölçegleri: çap etmegiň tizligi, ýalňyşlyklar/tassyklamalar.
Nobatlaryň metrikleri: uzynlygy, sarp ediş tizligi, retraýlaryň göterimi, nobatdaky wagt p99.
Konsumerler: lag, throughput, gaýtadan işlemek wagty, NACK paýy.
SLO: p99 E2E-wakanyň gizlinligi ≤ X sekunt; elýeterlilik ≥ 99. 9%; DLQ-rate ≤ Y%.
Trace: 'trace _ id '/' span _ id' üsti bilen, 'message _ id' logleri.
Alertler: DLQ/laglaryň ösüşi, kworumyň peselmegi, NACK-iň köpelmegi, retry-tapgyrlaryň "ýapyşmagy".

Howpsuzlyk we elýeterlilik

tranzitde TLS/MTLS; hemişelik nobatlar saklanylanda diskde şifrlemek.
RBAC/ACL: vhost/namespace/topika boýunça publish/consume hukuklary.
Segmentasiýa: duýgur domenler (tölegler/KUS) - aýry-aýry çalşyjylar/toparlar.
Vault/SOPS-daky syrlar; neşirleriň/abuna ýazylmalaryň audit-log.
Maglumatlaryň lokalizasiýasy: sebitler boýunça saklamak we retenşn (EUB, Türkiýe, Latam).

Ýokary elýeterlilik we DR

Kworum nobatlary/replikasiýa, nodyň tagtaly sany, AZ boýunça anti-affiniti.
Kritiki domenler üçin sebitara köpeltmek (federation/shovel).
Geçiş düzgünleri (runbook), döwürleýin DR-maşklar (game day).
Topologiýalary kod hökmünde wersiýalaşdyrmak (IaC) - gaýtalanýan deploi we çalt resink.

Öndürijilik we sazlama

Öndüriji: batch-tassyklamalar (publisher confirms), kanallary gaýtadan ulanmak, asinhron neşirler.
Nobatlar: meseläniň ortaça dowamlylygy üçin prefetch; çuňňur bellikler üçin lazy; "gyzgyn" nobatlaryň ýaýramagy.
Tor/OS: 10/25G, file descriptors, TCP-sazlama. JVM/GC - ýük profiliniň aşagynda.
Burst-ýükler üçin synaglar (oýunlar, ýaryşlar, iň ýokary tölegler).

iGaming üçin marşrutlaşdyryş nusgalary

1. Töleg hadysalary (topic):

Exchange: `payments. topic`

Keys:
  • `payments. psp. stripe. succeeded`
  • `payments. psp..failed`
  • `withdrawal. requested. #`
Sarp ediji nobatlar:
  • `ledger. writer. q '(bind:' payments. #`)
  • `crm. triggers. q '(bind:' payments... succeeded ')
  • `risk. reviews. q '(bind:' withdrawal. #`)

2. Antifrod-skoring (direct + retry):

`risk. work. q` ← `risk. direct` (`routing_key=risk. check`)

`risk. retry. 1m. q '(TTL 60s → DLX yzyna' töwekgelçilige. direct`)

`risk. dlq. q 'ölümler üçin.

3. Bellikler (fanout + prioritet):

`notify. fanout` → `email. q (prio)`, `sms. q`, `push. q`

Ileri tutulýan ugurlar: marketing poçtalaryndan has ýokary netijeler/çäkler.

4. Gözegçilik we yzarlama:

"{" tenant ":" X "", critical ":" true "} '→ aýratyn audit nobaty.

Iň az habar shemasynyň mysaly (JSON)

json
{
"message_id": "01HX8H8Y6D6W0T1S2A3B4C5D6E",
"trace_id": "f4d2a1...e9",
"occurred_at": "2025-11-05T11:20:45. 321Z",
"tenant_id": "eu-1",
"schema_version": 3,
"event": "payments. psp. stripe. succeeded",
"payload": {
"payment_id": "pay_123",
"player_id": "p_987",
"amount": { "currency": "EUR", "value": 50. 00 },
"psp_tx": "tx_456",
"idempotency_key": "ulid_..."
}
}

Beýleki konturlar bilen integrasiýa

Akym/analitika: möhüm mowzuklar retenşn we reprocessing üçin log şinasyna (Kafka/Redpanda) köpeldilip bilner.
Fichestor: wakalar → onlaýn fiçalar (Redis) we oflayn partiýalar (Parquet/OLAP).
Saga orkestrasiýasy: direct/topic arkaly buýruklar, wakalar - pub/sub; öwezini dolmak ädimleri - aýry-aýry habarlar ýaly.

Giriş barlagy

1. Domen çalşyjylaryny we marşrut açarlarynyň standartyny kesgitläň.
2. Her bir möhüm akym üçin work/retry/DLQ dizaýny.
3. Publisher confirms, 'prefetch', ileri tutulýan ugurlary we zerur ýerinde delay goşuň.
4. idempotency-key, outbox we korrelyasiýa şahsyýetnamalaryny giriň.
5. Maglumat shemalaryny we ewolýusiýa düzgünlerini tassyklaň.
6. TLS/RBAC, domen/tenant segmentini sazlaň.
7. SLO we aladalary goýuň (lag, DLQ-rate, p99).
8. DR meýilnamasyny we awtomatlaşdyrylan IaC topologiýalaryny taýýarlaň.
9. Ýüklemek we chaos-synaglary geçiriň.
10. DLQ-den wakalar we re-inject üçin runbook resminamalaryny düzüň.

Antipattern

Açar düzgüni bolmadyk bir "äpet" çalşyjy; tötänleýin bindingler "bolşy ýaly".
Retry/DLQ ýoklugy we wagtlaýyn/ölümli ýalňyşlyklary garyşdyrmak.
Ulanyjynyň gyzgyn ýollarynda brokeriň üstünde sinhron RPC.
Deňsizligiň ýoklugy we outbox → goşa/pul ýitgileri.
PII-ni açyk görnüşde saklamak, hemmeler üçin publish/consume.

Netijeler

Gowy dizaýn edilen Message Broker, marşrutyň öňünden aýdyp boljak we şowsuzlyga çydamlylygy topologiýa derejesinde gurlan wakalaryň ygtybarly arteriýasydyr. Topic alyş-çalyş enjamlaryny, ýeke-täk açar standartyny, her bir möhüm akym üçin work/retry/DLQ, idempotentlik we outbox, berk SLO we syn edilişinden peýdalanyň. Akym tekerleri we ýagdaýyň proýeksiýalary bilen tandemde, bu iGaming-platforma durnukly tizlik, aç-açanlyk we ýüküň artmagy bilen çylşyrymlylyga gözegçilik edýär.

Contact

Biziň bilen habarlaşyň

Islendik sorag ýa-da goldaw boýunça bize ýazyp bilersiňiz.Biz hemişe kömek etmäge taýýar.

Telegram
@Gamble_GC
Integrasiýany başlamak

Email — hökmany. Telegram ýa-da WhatsApp — islege görä.

Adyňyz obýýektiw däl / islege görä
Email obýýektiw däl / islege görä
Tema obýýektiw däl / islege görä
Habar obýýektiw däl / islege görä
Telegram obýýektiw däl / islege görä
@
Eger Telegram görkezen bolsaňyz — Email-den daşary şol ýerden hem jogap bereris.
WhatsApp obýýektiw däl / islege görä
Format: ýurduň kody we belgi (meselem, +993XXXXXXXX).

Düwmäni basmak bilen siz maglumatlaryňyzyň işlenmegine razylyk berýärsiňiz.