忍者ブログ

liakegds4

Bài 4: Hạ Tầng Cơ Sở Dữ Liệu Phân Tán, CockroachDB & Cân Bằng Tải Transaction Trong TT789

Lời Mở ĐầuTiếp nối Bài 3 về hạ tầng Real-Time Gateway, WebSocket & Protobuf, Bài 4 sẽ đi sâu vào lớp lưu trữ cốt lõi của hệ thống TT789: Cơ sở dữ liệu phân tán CockroachDB & Cơ chế cân bằng tải Transaction.Trong một hệ thống phục vụ hàng chục ngàn giao dịch nạp/rút, cược và trả thưởng mỗi giây, việc đảm bảo tính toàn vẹn dữ liệu ACID (Atomicity, Consistency, Isolation, Durability) ở quy mô phân tán là thách thức hàng đầu. TT789 đã giải quyết bài toán này bằng cách triển khai cụm CockroachDB đa vùng (Multi-Region Cluster) kết hợp cùng kỹ thuật https://tt789.id/ phân tầng dữ liệu Hot/Cold và Caching Redis.Phần 1: Sơ Đồ Kiến Trúc Cơ Sở Dữ Liệu Phân Tán & Luồng Giao DịchLớp lưu trữ của TT789 kết hợp giữa bộ nhớ tạm thời (In-Memory Hot Data) cho tốc độ tức thời và cụm cơ sở dữ liệu phân tán (Distributed SQL) cho tính an toàn tuyệt đối.┌─────────────────────────────────────────────────────────────────────────────┐
│ MICROSERVICES LAYER (Wallet Service, Game Engine, Settlement Service)       │
└──────────────┬──────────────────────────────────────┬───────────────────────┘
               │ (gRPC / Read-Write Queries)          │ (Read Hot Cache)
               ▼                                      ▼
┌──────────────────────────────────────┐ ┌────────────────────────────────────┐
│ COCKROACHDB ROUTER (HAProxy / Envoy) │ │ REDIS CLUSTER (HOT DATA CACHE)     │
│ • Connection Pooling                 │ │ • In-Memory Balance & Active Bets  │
│ • Transaction Load Balancing         │ │ • Fast Read Sub-Millisecond        │
└──────────────┬───────────────────────┘ └────────────────────────────────────┘
               │ (Distributed SQL Protocol)
               ▼
┌─────────────────────────────────────────────────────────────────────────────┐
│ COCKROACHDB MULTI-REGION CLUSTER (Distributed Ledger & Persistence)         │
│ ┌────────────────────────┐ ┌────────────────────────┐ ┌──────────────────┐ │
│ │ Node 1 (Region A)      │ │ Node 2 (Region B)      │ │ Node 3 (Reg C)   │ │
│ │ • Raft Consensus Core  │ │ • Raft Consensus Core  │ │ • Raft Core      │ │
│ │ • Range Leases & Keys  │ │ • Range Leases & Keys  │ │ • Lease Holder   │ │
│ └────────────────────────┘ └────────────────────────┘ └──────────────────┘ │
└──────────────┬──────────────────────────────────────────────────────────────┘
               │ (CDC - Change Data Capture)
               ▼
┌─────────────────────────────────────────────────────────────────────────────┐
│ COLD DATA WAREHOUSE & ANALYTICS (ClickHouse / Amazon S3 Parquet)            │
│ • Long-term Transaction History & Fraud Detection                           │
└─────────────────────────────────────────────────────────────────────────────┘
 (ClickHouse/S3): Lịch sử cược cũ ($> 30\text{ ngày}$) được đẩy qua Change Data Capture (CDC) về Olap Engine để phục vụ báo cáo và kiểm toán.Phần 2: Bảng So Sánh Các Mô Hình Cơ Sở Dữ Liệu Trong Hệ Thống Giao DịchTiêu Chí Kỹ ThuậtPostgreSQL Single / Master-SlaveMongoDB ClusterCockroachDB Phân Tán (TT789)Tính Toàn Vẹn (Acid Guarantee)Rất cao trên Master, yếu trên Read-Replicas.ACID cấp độ Document, rủi ro khi Sharding.Serializable ACID hoàn hảo trên toàn cụm phân tán.Khả năng Mở Rộng Ghi (Write Scaling)Giới hạn bởi phần cứng máy chủ Master.Mở rộng tốt nhưng hi sinh tính nhất quán.Mở rộng tuyến tính (Horizontal Scaling) bằng cách thêm Node.Tự Động Phục Hồi (Auto Failover)Cần công cụ ngoài (Patroni/Keepalived), mất vài giây/phút.Tự bầu cử Primary ($2\text{--}10\text{ giây}$).Tự phục hồi tức thì ($< 3\text{ giây}$) nhờ Raft Consensus.Xử Lý Transaction Cao ĐiểmDễ nghẽn Lock Table khi xử lý ví cược.Dễ xung đột Write Conflict trên Shard Key.Tối ưu nhờ Range Partitioning & Dynamic Lease Steering.Phần 3: Tiến Trình Thực Thi Transaction Ví Cược (Atomic Wallet Settlement)1.Khởi tạo Transaction & Tra cứu Leaseholder:Độ trễ < 1ms.Wallet Service gửi câu lệnh cập nhật số dư dạng Distributed Transaction đến CockroachDB Router. Router định tuyến trực tiếp yêu cầu đến Node giữ Range Leaseholder chứa User ID tương ứng.2.Xác nhận Đồng thuận Raft (Raft Quorum):Độ trễ < 3ms.Node Leaseholder ghi nhận thay đổi vào Write-Ahead Log (WAL) và gửi bản sao đến các Node Replicas. Khi đa số Node ($N/2 + 1$) phản hồi xác nhận, Transaction đạt trạng thái Committed.3.Đồng bộ Hot Cache & Hoàn tất Session:Độ trễ < 1ms.Sau khi CockroachDB Commit thành công, hệ thống cập nhật đồng bộ lại số dư mới lên Redis Cluster và phản hồi trạng thái giao dịch thành công về Microservice.
PR

コメント

プロフィール

HN:
No Name Ninja
性別:
非公開

カテゴリー

P R