架构设计
应用层设计
应用层的能力组合方式。
应用层设计
nebula-web
职责:提供 Web 应用支持
核心功能: - RESTful API 支持 - 统一返回格式 - 全局异常处理 - 参数验证 - Swagger 文档
架构:
HTTP 请求
↓
Controller (接口层)
↓
Service (业务层)
↓
Repository (数据层)
↓
数据库/缓存
票务场景应用:
@RestController
@RequestMapping("/api/orders")
public class OrderController {
@Autowired
private OrderService orderService;
@PostMapping
public Result<Order> createOrder(@RequestBody @Valid OrderCreateDto dto) {
Order order = orderService.createOrder(dto);
return Result.success(order);
}
@GetMapping("/{id}")
public Result<Order> getOrder(@PathVariable Long id) {
Order order = orderService.getById(id);
return Result.success(order);
}
}
nebula-task
职责:提供定时任务支持
集成方案: - XXL-Job 集成 - 分布式任务调度 - 任务监控 - 失败重试
票务场景应用:
@Component
public class OrderTimeoutJob {
@XxlJob("orderTimeoutHandler")
public void handleTimeout() {
// 1. 查询超时未支付订单
List<Order> timeoutOrders = orderService.findTimeoutOrders();
// 2. 取消订单
for (Order order : timeoutOrders) {
orderService.cancelOrder(order.getId());
}
// 3. 恢复库存
for (Order order : timeoutOrders) {
ticketService.restoreStock(order.getShowtimeId(), order.getSeatCount());
}
}
}