Skip to content

面试速答(先看这里)

**一句话结论:**负责交易和订单模块,平台用户量多少?

60秒标准回答:

专升本,24年毕业,数字藏品项目,文化&IP数字化藏品,售卖&展示,spring clo ud Alibaba(nacos、dubbo、sentinel、redis、mysql、shardingjdbc、es),高并发

负责交易和订单模块,平台用户量多少?注册用户100万,交易用户60万,订单量多少?5000万存量。最近半年卖的最火的是哪一款?河南博物馆陶土小狗,预定量7W

下单前都需要预定吗? VIP 先购买,开启预定,预定后正常售卖。如何做的购买权限控制?布隆过滤器?刚开通 vip 还没来得及进入布隆过滤器怎么办?为啥这里要用布隆过滤器?才 100 万用户,直接查数据库不就行了么?过滤恶意攻击流量,布隆过滤器是基于内存的还是 redis 的?

**答题顺序:**结论 → 原理/机制 → 关键流程 → 场景与取舍 → 易错点

回答主线:

  • **要点1:**下单前都需要预定吗?
  • **要点2:**如果用户的 vip 到期了,布隆过滤器没办法删除怎么办?
  • **要点3:**Redis 和数据库库存不一致问题怎么解决?
  • **要点4:**如何判断一个商品是否走秒杀链路,网关检查商品过热,如何切流?
  • **要点5:**藏品的持有编号(顺序)高并发情况下怎么生成的?

**记忆锚点:**redis → lua → AOP → Redis → vip → releaseTime

易错提醒:

  • redis , set ,如何避免一个用户预约多次?
  • lua 脚本 执行过程中失败了咋办、 lua 会回滚吗?

加分表达:

  • 如果用户的 vip 到期了,布隆过滤器没办法删除怎么办?
  • redisTemplate ,各自适合什么场景?

追问准备:

  • 注册用户100万,交易用户60万,订单量多少?
  • 最近半年卖的最火的是哪一款?
  • 下单前都需要预定吗?
  • 如何做的购买权限控制?

面试者背景 ​

> 专升本,24年毕业,数字藏品项目,文化&IP数字化藏品,售卖&展示,spring clo****ud Alibaba(nacos、dubbo、sentinel、redis、mysql、shardingjdbc、es),高并发 > > 负责交易和订单模块,平台用户量多少?注册用户100万,交易用户60万,订单量多少?5000万存量。最近半年卖的最火的是哪一款?河南博物馆陶土小狗,预定量7W。 > > 下单前都需要预定吗?VIP先购买,开启预定,预定后正常售卖。如何做的购买权限控制?布隆过滤器?刚开通vip还没来得及进入布隆过滤器怎么办?为啥这里要用布隆过滤器?才100万用户,直接查数据库不就行了么?过滤恶意攻击流量,布隆过滤器是基于内存的还是redis的? > > 如果用户的vip到期了,布隆过滤器没办法删除怎么办?预约怎么做的?redis,set,如何避免一个用户预约多次? > > 抗500 qps的方案介绍下?redis做流量拦截?lua扣减、创建订单、500QPS算高并发么?同一个商品抗3000-4000,阿里云数据库,订单创建为啥要搞2步?要一个订单号 > > 订单的状态是怎么设计的?INIT,confirm,paid, > > 上链,链是自己开发的吗?以太坊 > > 下单过程什么情况会出现数据不一致,redis扣成功,应用挂了。旁路验证, > > Redis和数据库库存不一致问题怎么解决?核对告警,人工操作。核对任务怎么做的?redis流水存储什么数据结构?如何扫描同一个商品的流水?为啥不搞个hash****结构, > > 如何判断一个商品是否走秒杀链路,网关检查商品过热,如何切流? > > 藏品的唯一编号?雪花算法?不需要给用户展示吗? > > 藏品的持有编号(顺序)高并发情况下怎么生成的?编号生成好,写库失败了怎么办?藏品id加分布式锁。分布式锁怎么做的?注解**+aop切面+redisson****,** > > 分布式锁的自定义注解是你自己写的吗?怎么设计的?key&keyExpression(el表达式),waitTime,releaseTime。AOP拦截,如何确保解锁成功?finally, > > 注解的AOP顺序问题如何解决(锁和事务)?加锁了还是有重复数据(事务还没提交,锁就释放了),怎么解决的?order注解。 > > 介绍下AOP的原理?代理的注册过程, > > 分表算法怎么选的?自定义算法,取模,分了多少表?4张??? > > 介绍下redis的线程模型?单线程执行命令,为什么?原子性,为啥单线程也能很快? > > Redis如何实现多个命令以原子性方式执行?lua脚本为啥能保证原子性?lua脚本执行过程中失败了咋办、lua会回滚吗?不回滚咋保证原子性?redis支持事务吗?不支持。 > > 代码中写lua有什么缺点吗?不好debug**。Redisson框架,jedis用过吗?redisTemplate,各自适合什么场景?** > > AI熟吗?RAG的原理是什么?向量库是怎么做检索的?怎么判断相似度?用过哪个向量数据库,FAISS。知道混合检索吗?如何判断一个rag效果好不好?

题目解析 ​

> 如何做的购买权限控制?布隆过滤器?刚开通vip还没来得及进入布隆过滤器怎么办?为啥这里要用布隆过滤器?才100万用户,直接查数据库不就行了么?过滤恶意攻击流量,布隆过滤器是基于内存的还是redis的? > > 如果用户的vip到期了,布隆过滤器没办法删除怎么办?预约怎么做的?redis,set,如何避免一个用户预约多次?

📄 ✅什么是布隆过滤器,实现原理是什么?

打开文档:✅什么是布隆过滤器,实现原理是什么?

📄 ✅布隆过滤器无法删除的问题如何解决?

打开文档:✅布隆过滤器无法删除的问题如何解决?

> 抗500 qps的方案介绍下?redis做流量拦截?lua扣减、创建订单、500QPS算高并发么?同一个商品抗3000-4000,阿里云数据库,订单创建为啥要搞2步?要一个订单号

本方案在项目实战课中:

> 订单的状态是怎么设计的?INIT,confirm,paid, > > 上链,链是自己开发的吗?以太坊

📄 ✅基于状态机+乐观锁解决订单支付和关单的并发问题

打开文档:✅基于状态机+乐观锁解决订单支付和关单的并发问题

> 下单过程什么情况会出现数据不一致,redis扣成功,应用挂了。旁路验证, > > Redis和数据库库存不一致问题怎么解决?核对告警,人工操作。核对任务怎么做的?redis流水存储什么数据结构?如何扫描同一个商品的流水?为啥不搞个hash结构, > > 如何判断一个商品是否走秒杀链路,网关检查商品过热,如何切流?

本方案在项目实战课中:

> 藏品的唯一编号?雪花算法?不需要给用户展示吗? > > 藏品的持有编号(顺序)高并发情况下怎么生成的?编号生成好,写库失败了怎么办?藏品id加分布式锁。分布式锁怎么做的?注解+aop切面+redisson,

藏品编号适合用redis自增id,而不是雪花算法,因为用户要看到顺序的序号,如1 2 3 4。

失败的问题解决方式是加分布式锁,避免并发情况下出现序号乱序的问题。

> 分布式锁的自定义注解是你自己写的吗?怎么设计的?key&keyExpression(el表达式),waitTime,releaseTime。AOP拦截,如何确保解锁成功?finally, > > 注解的AOP顺序问题如何解决(锁和事务)?加锁了还是有重复数据(事务还没提交,锁就释放了),怎么解决的?order注解。 > > 介绍下AOP的原理?代理的注册过程,

📄 ✅用了一锁二查三更新,为啥还出现了重复数据?

打开文档:✅用了一锁二查三更新,为啥还出现了重复数据?

📄 ✅介绍一下Spring的AOP

打开文档:✅介绍一下Spring的AOP

> 分表算法怎么选的?自定义算法,取模,分了多少表?4张???

📄 ✅分表算法都有哪些?

打开文档:✅分表算法都有哪些?

> 介绍下redis的线程模型?单线程执行命令,为什么?原子性,为啥单线程也能很快? > > Redis如何实现多个命令以原子性方式执行?lua脚本为啥能保证原子性?lua脚本****执行过程中失败了咋办、lua会回滚吗?不回滚咋保证原子性?redis支持事务吗?不支持。 > > 代码中写lua有什么缺点吗?不好debug。Redisson框架,jedis用过吗?redisTemplate,各自适合什么场景?

📄 ✅为什么Redis设计成单线程也能这么快?

打开文档:✅为什么Redis设计成单线程也能这么快?

📄 ✅为什么Lua脚本可以保证原子性?

打开文档:✅为什么Lua脚本可以保证原子性?

> AI熟吗?RAG的原理是什么?向量库是怎么做检索的?怎么判断相似度?用过哪个向量数据库,FAISS。知道混合检索吗?如何判断一个rag效果好不好?