🧪 Flash Sale High-Concurrency Lab
Mô phỏng 100 đến 500 khách hàng cùng bấm nút mua cùng 1 phần nghìn giây cho 1 sản phẩm chỉ có 10 chiếc. Chứng minh tính ưu việt của Redis Distributed Lock chống tình trạng Race Condition (âm kho) chuẩn doanh nghiệp.
⚙️ Cấu Hình Mô Phỏng Đặt Hàng
IPHONE-16-PM-256
SETNX lock:inventory:1 [UUID] PX 5000. Chỉ có thread giữ Lock mới được trừ tồn kho trong DB bằng SELECT ... FOR UPDATE.
📊 Kết Quả Kiểm Thử Thực Tế
Redis Lock: SẴN SÀNG🔄 Saga Pattern & Distributed Transactions
Minh họa cơ chế điều phối giao dịch phân tán (Choreography Saga) qua RabbitMQ giữa Order Service và Payment Service cùng hành động bồi hoàn khi thanh toán thất bại.
Khách hàng tạo đơn hàng (Order Creation)
API Gateway -> Order Service: Tạo đơn hàng trạng thái PENDING, đồng thời khóa và giữ kho bằng Redis Distributed Lock.
Phát sự kiện OrderCreatedEvent lên RabbitMQ
Order Service gửi event tới Topic Exchange ecommerce.exchange (Routing Key: order.created). Notification Service và Payment Service tự động nhận diện.
Xử lý thanh toán cổng VNPay Sandbox (Payment Step)
Payment Service nhận event và tạo giao dịch thanh toán. Người dùng xác nhận thanh toán thành công hoặc giả lập hủy/thất bại.
Hành động Bù (Compensating Transaction) nếu Thanh toán Thất bại
Nếu thanh toán bị hủy -> Payment Service phát payment.failed -> Order Service tự động HOÀN TRẢ TỒN KHO và chuyển đơn sang CANCELLED.
🌐 Giám Sát Trạng Thái Microservices
📦 Quản Lý Đơn Hàng & Thử Nghiệm Thanh Toán
| Mã Đơn | Khách Hàng | Sản Phẩm | Tổng Tiền | Trạng Thái | Thời Gian | Hành Động Saga |
|---|---|---|---|---|---|---|
| Đang tải danh sách đơn hàng... | ||||||