电子商城面试

1 总体架构与技术选型

  1. 整体形态:你的商城是单体应用还是按业务(用户、商品、订单等)拆分成子模块/服务?拆分的依据是什么?
  2. 技术栈:Spring Boot、Vue、MyBatis、Redis 之外,还有没有使用消息队列、搜索引擎、对象存储等组件?为什么(不)用?
  3. 系统边界:列举与外部系统/第三方(支付、物流、短信、OAuth 等)的接口,并说明如何解耦与降级。

2 数据库模型与事务

  1. 核心表设计:商品、库存、订单、用户这几张表的主键、索引设计思路是什么?
  2. 事务隔离级别:下单流程中用到的事务隔离级别是什么?如何避免幻读或死锁?
  3. 分库分表:当订单量增大到 1 亿条时,你会怎么做水平拆分?如何保证跨库事务一致性?

3 缓存与一致性

  1. 缓存策略:商品详情和库存量分别使用什么缓存模式(读写策略、TTL)?
  2. 缓存双写一致性:你用“一主两从 + 哨兵”Redis 时,如何处理主库写成功、缓存写失败或反之的场景?
  3. 缓存穿透:你用布隆过滤器 + 工厂/策略模式实现的具体流程是怎样的?误判如何兜底?
  4. 缓存雪崩 / 击穿:做了哪些限流或热点预热措施?

4 并发与超卖

  1. 乐观锁:库存扣减具体用了哪些字段来做版本控制?失败后如何重试或回滚?
  2. 线程安全:高并发下,Redis 凭什么能够保证“原子扣减 + 业务逻辑”不被打断?
  3. 秒杀场景:如果出现瞬时 10 万 QPS,你的限流和排队实现思路是什么?

5 安全与鉴权

  1. JWT 设计:Token 里存哪些 Claim?如何防止重放攻击和 CSRF?
  2. ThreadLocal 优化鉴权:用 ThreadLocal 保存了什么上下文?如何避免内存泄漏?
  3. 数据加密与敏感信息:密码、支付信息如何存储?接口是否全部走 HTTPS?
posted @ 2025-04-22 13:02  哒令,哒哒哒哒哒~令  阅读(5)  评论(0)    收藏  举报