MySQL 8.0(主从分离) + Redis 7.0(缓存/分布式锁) + Elasticsearch 8.x(搜索)
中间件
RabbitMQ(订单超时处理) + Nacos(服务发现) + Seata(分布式事务)
DevOps
Docker + Jenkins + Prometheus(监控) + ELK(日志分析)
三、核心业务流程设计
拼团业务流
graph TD
A[用户发起拼团] --> B{是否新团?}
B -->|是| C[创建团ID并锁定库存]
B -->|否| D[加入已有团]
C --> E[支付定金]
D --> E
E --> F{是否成团?}
F -->|超时未满| G[自动退款]
F -->|成团成功| H[支付尾款并发货]
库存控制方案
Redis预减库存:使用DECR原子操作防止超卖
数据库兜底:通过version字段实现乐观锁
// 伪代码示例
public boolean reduceStock(Long productId, int quantity) {
String key = "stock:" + productId;
Long remain = redisTemplate.opsForValue().decrement(key, quantity);
if (remain < 0) {
redisTemplate.opsForValue().increment(key, quantity); // 回滚
return false;
}
// 异步同步到数据库
mqService.sendStockUpdateMessage(productId, remain);
return true;
}