架构设计

应用层设计

应用层的能力组合方式。

应用层设计

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());
        }
    }
}