Thiết kế: Machine Management
Tài liệu này mô tả thiết kế hệ thống quản lý và đồng bộ trạng thái máy gắp gấu.
1. Lưu trữ và Truyền tải
1.1 Redis Persistence
Trạng thái máy được lưu dưới dạng Hash trong Redis để tối ưu việc đọc/ghi đồng thời từ nhiều service (ControlServer, Backend).
| Field | Type | Description |
|---|---|---|
| id | String | ID duy nhất của máy |
| status | Enum | ONLINE, GAMING, FAULT, OFFLINE |
| lastMsg | Instant | Thời gian cuối cùng nhận được packet từ máy |
| ip | String | IP của máy gắp gấu |
1.2 JMS Communication
Sử dụng ActiveMQ Artemis với các Virtual Topics để điều phối tập trung.
- Upstream (Machine -> Backend):
- queue-control-server-gameplay
- queue-control-server-health-check
- Downstream (Backend -> Machine):
- Queue tên: queue-control-server-{machineId}
2. Luồng xử lý Heartbeat
- Máy gửi heartbeat packet mỗi 5-10 giây.
ConnectedClientcập nhậtlastMsgvào Redis.- Nếu quá timeout,
PhysicMachineThreadsẽ đánh dấu máy là OFFLINE và đóng socket.
3. Quản lý lỗi phần cứng
Các tin nhắn ErrorReport từ máy được dịch thành các cảnh báo (Alerts) và gửi về hệ thống Admin thông qua JMS.