賭場Failover、復制和DR計劃
1)業務目標: RTO/RPO和關鍵漏洞
RTO(服務可能無法提供多長時間):登錄/出價/存款-秒/分鐘;報告是手表。
RPO(可能丟失多少數據):錢包/交易-~ 0-30秒;遙測-分鐘。
關鍵漏洞:登錄,存款/退出,投註/設置,KYC/AML香腸,PSP/遊戲提供商網絡遊戲。
2)體系結構容錯模式
Active-Active(多區域):兩個區域都處理流量;低RTO/RPO,復雜的一致性。
Active-Standby:一個工作區域,第二個熱點;狀態更簡單,RTO分鐘。
基於細胞:隔離在「單元」(市場/品牌),局部事件不會破壞一切。
邊緣派:Anycast CDN/WAF →區域網關→應用程序群集→ DB/緩存復制。
3)流量管理和網絡捕獲器
Anycast+CDN/WAF:L3/4/7吸收,起源健康支票。
DNS收件人(低TTL,多價值),交通經理/GSLB的健康指標。
BGP通過反DDoS提供商發布,以快速改變路徑。
健康支票(邏輯示例):
if p95_latency>threshold 5xx_rate>threshold synthetic_login_fail:
drain(region_A);shift(traffic->region_B, ramp=5min)
4)數據: 錢包,訂單,費率
真理的來源是布線日誌(ledger):只有append,通過「operation_id」的冪等。
配對:ledger,PSP和遊戲提供商之間的定期重新配對喬巴。
反配對:存款/香腸/付款的偶然鑰匙;outbox/inbox中的重復數據消除。
5) DB復制: 選擇和權衡
物理同步(半同步):最小RPO,延遲風險-點點應用(錢包)。
異步:更高的性能/簡便性,RPO秒到分鐘-用於遊戲元數據,參考。
邏輯(CDC →流到另一個區域):靈活的選擇性,方便跨引擎和分析。
緩存(Redis/Memcached):不是真理的來源;復制品/snapshots,溫暖的開始。
PITR:離網存儲上的連續日誌(WAL/redo),恢復窗口≥ 7-30天。
6)一致性和一致性
Saga+Outbox:作為步驟鏈的業務交易,將事件原子地發布到DB中。
唯一的「意義上」:操作的平均性,平衡版本的控制(最佳鎖定)。
Eventual consistency in uncle flow(領導板,分析師);用來賺錢的strong。
7)組件及其捕獲器
API/後端
Statles容器,自動軌道,藍綠色/金絲雀;通過倉庫(通過翻新)。
隊列/流
法定群集(N=3/5),跨AZ復制品;重復和dlt隊列策略。
錢包DB
A區的Praimari,A(其他AZ)的同步副本,B區的異步副本;禁止在split-brain時自動執行promote-僅帶有支票單的手動/腳本。
文件/KUS工件
具有轉換的對象存儲,跨區域副本/CRR,KMS中的密鑰。
WebSocket/Real-time
按鍵(table/game/market),按鍵;在feilover中-帶有rejoin令牌的resubscribe。
8)支付和遊戲提供商: 真相的許多來源
PSP收件人:每種方法(卡、錢包、加密)最少2個提供商。
SLA/成本/BIN利息率;斷開降級的PSP。
遊戲提供商:備用頻道/ASN allow-list、單個區域密鑰、隔離超時。
9)Webhooks和Colbacks: 可持續的接收和復制
收件箱模式:接受webhook → 檢查簽名/NMAS →寫入不可思議的收件箱,→由竊聽者偶然處理。
提供商轉發:「event_id」/「signature」的backoff+ dedup。
在DR中:從inbox進行順序控制(txn →定位)的繼電器。
10)Bacaps: 戰略3-2-1和恢復檢查
3份拷貝/2個媒體/1個離線(1 份用於關鍵日誌的離線/WORM)。
日程安排:每日snapshots+永久期刊;每周在「黑暗」展位進行測試。
恢復目錄:「如何在t- Δ時提高錢包」。
11) DR計劃: 角色、場景、溝通
Роли: Incident Commander, Comms, DB Lead, App Lead, Payments/Game PM, SRE Oncall.
通道:war-room,狀態頁面,sapport/合作夥伴/關聯消息模板。
腳本(最低):- AZ損失,區域損失,PSP不可用,DB群集下降,遊戲提供商退化,密鑰泄漏,質量為5xx。
12) DR腳本矩陣示例
13)運行手冊和自動化
「DR-cutover」按鈕:經過驗證的步驟序列(freeze writes → promote → warm caches → ramp traffic)。
完整性檢查腳本:對賬單/錢包中的金額進行核對,資產負債表的一致性。
功能閃光燈:事故發生時快速無障礙報告/出口/重型行車記錄儀。
14) failover的可觀察性
SLO指標作為觸發因素:登錄,存款,投註,遊戲啟動。
Технические: replication-lag, WAL-shipping, queue-lag, 5xx, p95, SYN backlog, WebSocket disconnects.
來自其他地區的合成腳本:登錄/存款/投註每分鐘。
端到端跟蹤、「區域」、「psp」、「game-provider」標簽。
15)混亂/DR演習
GameDay季度:AZ關閉,PSP降級,DB節點「丟失」,隊列停止。
回顧: 決策時間,缺失,噪音,瓶頸.
根據事實而不是「感覺」調整RTO/RPO和自動化。
16)安全和合規性
KMS/HSM(跨區域),輪換和雙控制中的密鑰/秘密。
WORM/immutability用於審核和事務日誌。
與PSP/提供商簽訂的 SLA/DR承諾和24 × 7聯系點的DPA/合同。
17)最小feilover策略示例(偽代碼)
on Incident(type="REGION_DOWN"):
freeze_non_critical_writes()
promote_db(region=B)
verify_ledger_consistency()
warm_caches(region=B)
route_traffic(region=B, ramp=10%)
for step in [25%, 50%, 100%]:
if SLO_green(): ramp(step) else rollback()
announce_statuspage()
18)準備就緒清單(準備就緒)
- 每個漏洞的RTO/RPO定義;被企業接受。
- Multi-AZ最低;用於錢包,登錄和付款的多區域。
- Ledger+等效性(keys)+outbox/inbox;重新安排時間。
- DB復制:同步在本地,async在DR;PITR已啟用,還原已驗證。
- 每個方法,路由策略和測試密鑰兩個PSP;遊戲提供商是替代品。
- DNS/GSLB/Anycast,健康支票和合成,低TTL。
- Runbook'和「DR-cutover按鈕」,用於降解的特征。
- SLO/Alerta/Tracing;DR狀態面板。
- 季度DR演習+復古;更新的聯系人24 × 7。
二.總結
可靠的iGaming平臺圍繞貨幣回路構建:等效性布線日誌,可預測的偽造者,可驗證的復制和常規DR演習。將系統劃分為單元和區域,自動化cutover,保留兩個PSP和備用遊戲提供商,監視SLO和接收器的完整性-即使是重大事故也將是可管理的事件,不會失去信任和金錢。