為什麼要擴展基礎架構
為什麼企業需要擴展
沒有「上限」的收入。高峰賽事(德比,決賽,主要插槽發布)會增加RPS的倍數。可擴展性將流量激增轉換為GGR增長而不是5xx錯誤。
穩定SLO。在任何在線情況下,我們在目標框架中保持p95關鍵路徑潛伏期(投註,資產負債表更新,輸出)。
成本得到控制。彈性=為「熱時鐘」而不是「恒定最大值」付費。
監管和品牌。可用性和可預測的收銀機/錢包操作是審核和玩家信任的主題。
縮放類型
水平(尺度)
我們添加服務實例。stateless-API的基礎,通往提供商的橋梁,Web網關,操作員。優點:容錯性,彈性。缺點:需要等效性和外部狀態。
垂直(尺度)
增加節點資源。適合DB和OLAP集群,但每單位收益的極限和成本更高。
地理位置
Multi-AZ和必要時的multi-Region:更接近玩家→較低的投註/流延遲和更容易發生事故。
究竟是什麼在賭場縮放
邊緣和API:網關,WAF,GraphQL/REST,WebSocket樞紐(投註/事件)。
通往提供商的橋梁: 直播/RNG適配器與HPA通過RPS和時間到'bet。accepted`.
錢包/ledger:靜態內核-通過副本進行縮放以進行讀取、散列和事務優化。
收銀員:付款提供商/加密/越位,付款隊列的各個池。
事件隊列/總線:帶有自動計算消費者的Kafka/NATS群集。
緩存/目錄:Redis/Memory熱鍵緩存,用於靜態asset的CDN。
流媒體:WebRTC/LL-HLS邊緣筆記,帶有自動回程和QoS自動軌跡。
工程原理
1.錢的相等性。通過'bet的任何轉發。place`/`payout.request'正好被處理一次(等效鍵)。
2.隊列和背景。關鍵路徑不會被阻止:如果提供者/DB猶豫不決,則請求會以受控的「李子」進入緩沖區,次要仙女首先降級。
3.緩存首先。重讀查詢(平衡,大廳)-通過緩存/實例化視圖;殘疾-通過事件。
4.硬化。共享數據/線程(通過「playerId」,國家/地區,提供商,貨幣)。
5.金錢所在的一致性。嚴格的ACID 僅適用於錢包/ledger;剩下的就是事件。
6.發布前的可觀察性。度量/軌跡是服務合同的一部分,否則自動軌道「盲目」。
指標和目標(SLO/SLA)
p95/p99潛伏期:- `bet.地方「≤ 150-250毫秒(區域內),」wallet。debit/credit` ≤ 50–100 мс, `payout.quote/submit` ≤ 500–800 мс.
- 錯誤分數:'5xx' <0。1–0.API的3%,博彩的「reject_rate」 <0。2%的正常工作。
- 吞吐量:每個API/bridge的RPS;總線上的活動/sec。
- 隊列:長度和等待時間(例如,高峰時段支付≤ 2-5分鐘)。
- 流式QoS:下垂的框架,RTT投註信號,流產回合。
- 快取熱門:熱門>85-95%。
- Cost/Revenue: 基礎架構成本/GGR、查詢成本(每通話$)。
跨域縮放模式
錢包和Ledger
Reader-replicas用於閱讀;作家-一對一。
CQRS:記錄(嚴格)與閱讀(實例化切片)分開。
Batch對賬和「調整」交易-嚴格通過僅附錄日誌。
橋梁/遊戲集成
靜態適配器,帶有「bet」後綴自動軌跡。accepted`.
每個提供商的電路斷路器,降級時-暫時降解UI和關閉桌子。
付款/加密
webhook和PSP/鏈聽眾下的專用池;重復處理idempotency。
基於SLA/成本/國家/地區的提供商路由器。
負載操作
Workers/jobs(獎金,任務,錦標賽)-排隊;按隊列長度和截止日期進行縮放。
流媒體
邊緣池到區域,WebRTC → LL-HLS自動返還;比特率/質量的垂直限制,以保持QoS。
建築解決方案
HPA/VPA/Cluster Autoscaler: HPA — на API/bridge;VPA-在ETL/報告上;節點是多類型的池(CPU-heavy,memory-heavy,network-optimized)。
PodDisruptionBudget和優先級:資金核心不受擠壓。
Feature flags和金絲雀發行版:按流量百分比擴展新的fici。
Geo-routing: Anycast/DNS和區域註入網關-更接近用戶。
成本和效率
資源配置文件。Requests/limits設置並對應於實際配置文件(在關鍵路徑上沒有CPU-throttling)。
分析/ETL和背景跳的現貨池。
自動實現工作窗口外圍環境的測試/站臺。
緩存代替內核。添加Redis命中比將CPU乘以DB便宜。
擴展時的安全性
服務之間的mTLS/mesh隨著呼叫圖的增長。
網絡細分(NetworkPolicy):金錢/PII域是獨立的信任區域。
保密輪換和圖像簽名-更多節點=更多風險位置。
blast-radius控制:硬化和查詢限制可防止級聯。
反模式
用全球鎖定來擴展整體:pod增長=沖突增加。
永久加熱集群「達到頂峰」,代替HPA和「次要」幻想降解。
將OLTP和OLAP混合到一個數據庫上-任何報告都會殺死賭註延遲。
缺乏冪等性-在回避中(尤其是在高峰期)出借。
CPU上的盲人自動軌道-忽略實際指標(時間'bet。地點,隊列長度)。
一個國家的支付提供者-當它「躺著」時沒有什麼可擴展的。
擴展實施支票清單
二.戰略
- 定義了SLO (p95潛伏期、錯誤、RPS)和錯誤預算。
- 領域細分:金錢/投註/結賬-與次要信息分開。
數據
- 硬化/復制副本,CQRS讀取,實例化視圖。
- 具有清晰殘障政策的緩存層。
基礎設施
- HPA/VPA,不同的節點池,PDB和優先級。
- Geo-routing, multi-AZ, DR準備就緒。
應用程序
- IdempotencyKey 現金/付款/webhooks。
- 巡回賽決勝局和決勝局;backpressure/隊列。
- 特色旗和金絲雀。
可觀察性
- Traces是端到端(ingress → API → →提供商→ webhook)的錢包。
- Dashbords RPS/latency/errors/queues/QoS流。
- Alerta成長"reject_rate"和退化"round。settle`.
成本
- 正確的請求/限制,背景任務的Spots,自動睡眠非證明。
擴展基礎架構與「更多服務器」無關。這是關於可控的彈性:在需要硬一致性(金錢)的地方-我們設計硬核和快速交易;您可以攜帶到事件、隊列和緩存。加上可觀察性,地理位置和發布紀律-並且該平臺將在SLO,P&L和玩家信心方面保持任何高峰,而無需妥協。