REST و gRPC و Webhooks في iGaming: الأنماط والأنماط المضادة
مقالة كاملة
1) خريطة البروتوكول: من المسؤول عما
REST - طلبات متزامنة عالمية على HTTP/JSON. مخبأ شفاف، تصحيح بسيط، مناسب لدمج B2B وواجهة برمجة التطبيقات الإدارية.
gRPC - RPC ثنائي عالي الأداء على مدى HTTP/2: زمن انتقال منخفض، تيارات، دوائر صلبة. جيد لمسارات المال الساخن (المحفظة/الاستقرار) والخدمات الداخلية والتدفقات طويلة العمر (مباشر).
خطافات الويب هي إعادة الاتصال من المستلم إلى المرسل. يستخدم في الأحداث («سقط المال»، «عمل الحد»)، حيث لا يكون البادئ دائمًا هو الذي ينتظر النتيجة.
القاعدة الذهبية:- يذهب المال إلى RPC المتزامن (REST/gRPC) مع الثوابت الصلبة والغباء. القياس عن بعد والأحداث التجارية - بشكل غير متزامن (خطابات الويب + حافلة الأحداث).
2) المسارات النموذجية والقنوات الموصى بها
3) التصميم الموجه نحو التعاقد
3. 1 راحة (شظايا)
POST/v1/الرهانات/الإذن
الرؤوس: X-Idempotency-Key: bet_r_8c12_1، X-Trace-Id: tr_a1b2
{
"session_id":"s_456," "bet_id":"b_001," round_id":"r_8c12, "" مبلغ ": {" مبلغ ": 2. 00، «العملة»:» اليورو»}
}
→ 200 {«الحالة «: «المأذون به»،» عقد _ معرف»:» h _ zz1»}
409
{«code «: «DUPLICE»،» message»:» Bet accelled «، «retryable «: false،» trace _ id»:» tr _ a1b2»}3. 2 gRPC (protobuf، مبسط)
التركيب الأولي = «proto3» ؛
حزمة المحفظة. v1;
Missage money {int64 minor_units = 1; العملة الوترية = 2 ؛ }//سنت رسالة ArginizeBetReq {سلسلة session_id=1; bet_id=2 الوترية ؛ round_id=3 الوترية ؛ المبلغ النقدي = 4 ؛ idempotency_key=5 الوترية ؛}
MessagePetRes {status = 1; hold_id=2 الوترية ؛}
محفظة الخدمة {
rpc ArginizeBet (ArginizeBetReq) ترجع (ArginizeBetRes) ؛
يعود rpc SettleBet (SettleReq) (SettleRes) ؛
}3. 3 شبكات ويب (مثال الاشتراك)
POST https ://مزود. مثال/خطابات شبكية
{
"الموضوع ":" المحفظة. الائتمان. حسنا،» «callback_url":"https://rgs. مثال/يومية، "سر": "،" نسخة ":" 1 ". 2"
}
POST https ://rgs. مثال/مجلة
الرؤوس: X-Signature: sha256 =...، X-Trace-Id: tr_a1b2
{
"event_type":"wallet. الائتمان. حسنا،» «schema_version":"1. 2. 0، "event_id":"uuid"، "الحمولة": {"player _ id": "p _ 19f3"، "المبلغ": {"minor _ units': 1460،" العملة ":" EUR "}}
}4) الخصوصية والاتساق
يتطلب دائمًا «X-Idempotency-Key» في عمليات الكتابة (البيانات الوصفية REST/gRPC). الإعادة → نفس الإجابة.
يرتبط التكوين الرئيسي بمعايير الأعمال (على سبيل المثال، «الرهان _ معرف + مبلغ»).
Sagas للعمليات الطويلة (الترخيص → الالتزام/القفل → تسوية → الائتمان).
Outbox/CDC: يتم التقاط الأحداث ذريًا بالقرب من الصفقة ويتم نشرها خارجيًا.
5) الحرث والتوافق
الراحة - '/v1/... '+' Deprecation/Sunset' - heads; gRPC - 'حزمة المحفظة. v1 '؛ الأحداث - «مخطط _ نسخة» في الهيئات + سجل المخطط.
SemVer: مجالات نقاط نهاية ثانوية - اختيارية/جديدة ؛ رائد - مسار/حزمة جديدة، «حرف مزدوج» من الأحداث المتعلقة بالهجرة.
لا تغير أبدًا دلالات الأوضاع النقدية بدون نسخة رئيسية.
6) سلامة وسائل النقل
MTLS على جميع S2S ؛ للخطافات الشبكية - توقيع الجسم (HMAC/EdDSA) + الطابع الزمني ونوافذ الصلاحية.
تقييد النطاق (OAuth2 CC) لكل تجزئة رئيسية للعلامة التجارية/المنطقة.
الثقة الصفرية: سياسات الشبكة، الرموز القصيرة الأجل، Vault/HSM، تدقيق WORM للإجراءات الحاسمة.
7) إمكانية الرصد و SLO
'1' 'التتبع من طرف إلى طرف في البيانات الوصفية والبيانات الوصفية (gRPC) والخطابات الشبكية.
المقاييس: زمن الانتظار p50/p95/p99، معدل الخطأ بالرموز، الإنتاجية، قوائم الانتظار المتأخرة.
الحد الأدنى (المعالم):- Wallet p95 '<150 ms' (إذن/تسوية)، REST public B2B p95' <300 ms'، تسليم Webhooks '<5 min' 99 cencentile، "Lost/Dupliced Settlems' = 0.
8) Retrai، التراجع وأمر التسليم
REST/gRPC: تراجع أسي، نفث، حد المدة (الموعد النهائي/المهلة).
خطوط الويب: التسليم القابل للتكرار إلى '2xx' ؛ حفظ الترتيب حسب المفتاح ('player _ id/round _ id') أو التفريغ في جهاز الاستقبال.
مضاد للعواصف: حد التراجع الموازي، قاطع الدائرة، حد السعر.
9) أنماط التكامل
النمط أ: «متزامن المال، أحداث غير متزامنة»
1. RGS → Wallet (gRPC/REST) «يأذن» → «الاستقرار/الائتمان».
2. بالتوازي، تم نشر الرهان. إلى الحافلة، ويتلقى المزود إيصال شبكة ويب.
بالإضافة إلى: المال السريع، إمكانية الملاحظة. ناقص: أنت بحاجة إلى محددين.
النمط ب: «البث المباشر»
جسر ↔ النواة الحية عبر بث gRPC (حالات الجدول، نافذة الرهان).
المعاملات النقدية - شركة البترول الإقليمية المستقلة ؛ الأحداث - في خطوط الحافلة/الويب.
بالإضافة إلى: الحد الأدنى من التأخير في الحالات الحية.
النمط C: "B2B public RESt'
الكتالوجات/المكافآت/الشركات التابعة/التقارير - REST مع استعداد المؤشر، المرشحات، ETag.
بالإضافة إلى: تكامل بسيط مع الشريك.
10) الأنماط المضادة (الأعلام الحمراء)
المعاملات النقدية فقط من خلال الشبكات الشبكية (بدون تأكيد متزامن).
لا يوجد «مفتاح الخصوبة» → الديون/الاعتمادات المزدوجة.
أحداث النشر التي تتجاوز outbox/CDC (الأحداث ضائعة).
خطوط شبكية غير موقعة/مخططة زمنيا → استبدال.
مزج مؤشر الاستثمار الاستثماري/الأموال في مناطق مختلفة في قناة واحدة بدون علامات «منطقة/مستأجر».
حمولة ثنائية كبيرة في خطوط الويب (استعادة وحدود كسر).
التدهور الصفري: يؤدي سقوط الخطابات الشبكية إلى منع حساب الأموال.
gRPC بدون موعد نهائي وبدون تراجع - اتصالات عالقة، استنفاد للموارد.
11) القوائم المرجعية
المهندس المعماري/المنصة
- المال من gRPC/REST مع الخصوصية والأحداث - خطافات الويب/الحافلة.
- Outbox/CDC على جميع مسارات الأموال.
- سجل مخطط '/vN 'и ؛ عملية الاستنكار/الغروب.
- MTLS + التوقيعات الشبكية ؛ لكل علامة تجارية/منطقة.
- SLO-dashboards p95/p99، معدل الخطأ، webhook-lag.
- تمارين DR/xaoc: التسليم المزدوج، خارج الطلب، تفريغ المنطقة.
المزود/RGS
- إرسال «X-Trace-Id» و «X-Idempotency-Key».
- التراجع والتفريغ ؛ جاهزة لإعادة تقديم خطوط الويب.
- تحديث نسخ العقود ؛ الرد على «الاستنكار/غروب الشمس».
- السجلات/المقاييس برمز الخطأ والوقت.
12) حلول صغيرة للحالات الحادة
Safari/ITP وقيود الطرف الثالث: المال - في المضيف (REST/gRPC)، يتواصل محتوى iFrame عبر «Post Message» ؛ من مضيف آخر غير iFrame.
العلامة التجارية المتعددة: «مستأجر/معرف/علامة تجارية _ معرف/رخصة» في العناوين والأحداث ؛ المفاتيح/الشهادات منفصلة.
رشقات نارية كبيرة (بطولات): قبل خطوط الويب - عازلة/قائمة الانتظار مع DLQ ؛ عند التحميل الزائد - «لا جلسات جديدة «/» إيقاف الخطافات غير الأساسية مؤقتًا ».
13) أمثلة على التنبيهات الموجهة إلى SLO
المحفظة. إذن p95> 150 ms 5 دقيقة على التوالي.
أخطاء «مكررة/IDEMPOTENCY _ MISMATCH»> 0. 5٪ في 10 دقائق.
Webhook lag p99> 180 c on theme 'bet. settled'.
تأخر المستهلك في كافكا> 30 ث لـ 'wallet. الائتمان. '.
14) الانسحاب
REST و gRPC وخطافات الويب في iGaming ليست تقنيات قابلة للتبديل، ولكنها أجزاء من نفس نموذج التشغيل.
يحتفظ الثوابت النقدية بـ REST/gRPC: زمن الانتقال المنخفض، والخصوصية، واتفاقات SLAs الصارمة.
توفر خطوط الويب/الحافلة الشفافية والنطاق: الأحداث والقياس عن بعد والتكامل.
أضف صندوق الخروج/مراكز السيطرة على الأمراض والوقاية منها، والإصدار، والتوقيعات وإمكانية الملاحظة - واحصل على بنية يتحرك فيها المال بسرعة وأمان، ولا تضيع الأحداث، والترقيات غير مؤلمة.
