1 总体架构与技术选型
- 整体形态:你的商城是单体应用还是按业务(用户、商品、订单等)拆分成子模块/服务?拆分的依据是什么?
- 技术栈:Spring Boot、Vue、MyBatis、Redis 之外,还有没有使用消息队列、搜索引擎、对象存储等组件?为什么(不)用?
- 系统边界:列举与外部系统/第三方(支付、物流、短信、OAuth 等)的接口,并说明如何解耦与降级。
2 数据库模型与事务
- 核心表设计:商品、库存、订单、用户这几张表的主键、索引设计思路是什么?
- 事务隔离级别:下单流程中用到的事务隔离级别是什么?如何避免幻读或死锁?
- 分库分表:当订单量增大到 1 亿条时,你会怎么做水平拆分?如何保证跨库事务一致性?
3 缓存与一致性
- 缓存策略:商品详情和库存量分别使用什么缓存模式(读写策略、TTL)?
- 缓存双写一致性:你用“一主两从 + 哨兵”Redis 时,如何处理主库写成功、缓存写失败或反之的场景?
- 缓存穿透:你用布隆过滤器 + 工厂/策略模式实现的具体流程是怎样的?误判如何兜底?
- 缓存雪崩 / 击穿:做了哪些限流或热点预热措施?
4 并发与超卖
- 乐观锁:库存扣减具体用了哪些字段来做版本控制?失败后如何重试或回滚?
- 线程安全:高并发下,Redis 凭什么能够保证“原子扣减 + 业务逻辑”不被打断?
- 秒杀场景:如果出现瞬时 10 万 QPS,你的限流和排队实现思路是什么?
5 安全与鉴权
- JWT 设计:Token 里存哪些 Claim?如何防止重放攻击和 CSRF?
- ThreadLocal 优化鉴权:用 ThreadLocal 保存了什么上下文?如何避免内存泄漏?
- 数据加密与敏感信息:密码、支付信息如何存储?接口是否全部走 HTTPS?
posted @
2025-04-22 13:02
哒令,哒哒哒哒哒~令
阅读(
5)
评论()
收藏
举报