⚡ FLASH SALE CHỊU TẢI CAO (10 SUẤT DUY NHẤT)

iPhone 16 Pro Max 256GB Desert Titanium

Sản phẩm thử nghiệm chịu tải đồng thời: Giới hạn duy nhất 10 chiếc trong kho. Hệ thống sử dụng Redis Distributed Lock đảm bảo không bao giờ bị âm kho khi hàng trăm người cùng bấm mua!

19.990.000₫ 34.990.000₫ -43%
Tồn kho thời gian thực (Redis Lock) 10 / 10 cái
Sự kiện kết thúc sau:
02
:
45
:
18
iPhone 16 Pro Max

🧪 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

▼
Tồn kho hiện tại: 10 cái Giá test: 19.990.000₫ Mã SKU: IPHONE-16-PM-256
🛡️ Cơ chế bảo vệ: Mỗi request gửi đến Order Service sẽ cố gắng acquire 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
0
Đơn hàng thành công
0
Bị từ chối vì hết hàng
10
Tồn kho còn lại trong DB
0
Số sản phẩm bị Âm Kho (Oversold)
Nhật ký thực thi (Live Engine Logs):
[SẴN SÀNG] Hệ thống đã nạp kịch bản kiểm thử tải đồng thời.
[KHO HÀNG] Tồn kho sản phẩm #1 hiện tại: 10 cái. Bấm 'Khởi Chạy' để bắt đầu!

🔄 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.

1

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.

HTTP / REST
2

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.

RabbitMQ Topic
3

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.

Payment Gateway
4

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.

Saga Rollback

🌐 Giám Sát Trạng Thái Microservices

API Gateway
Port 8080
Auth Service
Port 8081
Product Service
Port 8082
Order Service
Port 8083
Payment Service
Port 8084
Notification Service
Port 8085

📦 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...

🔔 Nhật Ký Thông Báo (RabbitMQ Event Stream)