主题
面试速答(先看这里)
**一句话结论:**8 年,双非一本,非科班,车企区块链项目(溯源、 NFT 商城 - 订单)
60秒标准回答:
8 年,双非一本,非科班,车企区块链项目(溯源、 NFT 商城 - 订单)
车企为啥会有区块链项目?有自己链么?有
这两个项目都做了多久? NFT 1 年,溯源 2 年,合约是自己写的吗?直接用的
**答题顺序:**结论 → 原理/机制 → 关键流程 → 场景与取舍 → 易错点
回答主线:
- **要点1:**这两个项目都做了多久?
- **要点2:**定时任务为啥单独搞个服务 ?xxl-job 分片任务的实现原理?
- **要点3:**多节点同时执行如何避免并发问题?
- **要点4:**Xxl-job 如何避免多个节点同时执行同一个任务?
- **要点5:**Redis 扣减成功,但是订单没创建成功怎么办?
**记忆锚点:**redis → QPS → Redis → NFT → CPU → TIMEOUT
关键取舍:
- 学习成本、社区 & 支持、性能、 AI 接触过么?
易错提醒:
- Xxl-job 如何避免多个节点同时执行同一个任务?
- 多节点同时执行如何避免并发问题?
加分表达:
- 如果对比不一致,怎么办。
追问准备:
- 8 年,双非一本,非科班,车企区块链项目(溯源、 NFT 商城 - 订单) 车企为啥会有区块链项目?
- 有 这两个项目都做了多久?
- NFT 1 年,溯源 2 年,合约是自己写的吗?
- 项目有啥亮点么?
面试者背景
> 8年,双非一本,非科班,车企区块链项目(溯源、NFT商城-订单) > > 车企为啥会有区块链项目?有自己链么?有 > > 这两个项目都做了多久?NFT 1年,溯源 **2**年,合约是自己写的吗?直接用的。 > > 项目有啥亮点么?没亮点干了2年?分布式项目么?架构介绍下。 > > 定时任务为啥单独搞个服务**?xxl-job分片任务的实现原理?** > > 多节点同时执行如何避免并发问题?分布式锁?如何避免状态不重复?能做优化么? > > **Xxl-job如何避免多个节点同时执行同一个任务?怎么加的锁?该状态?** > > NFT****项目上线了么,现在还能访问么?主要卖啥?最多的藏品发行了多少份? > > 藏品还有哪些功能**?转增,空投,空投你做了?订单量有多少? > > 项目的技术栈?spring cloud Alibaba, > > 下单这部分有啥亮点吗?流量集中,有并发问题。QPS最高有多少?6000 QPS,商品详情接口。 > > **下单的QPS**?** 1000**,单个商品最高多少?** > > 下单这部分你觉得有瓶颈么?redis预扣减**+数据库扣减,为啥不直接扣数据库。 > > **最开始就是这个方案么?这不是过度设计么?为啥数据库热点行扛不住?加行锁,慢。两次扣减不更慢么?redis扣减完就创建订单,再发MQ**,数据库再扣减。** > > Redis****扣减成功,但是订单没创建成功怎么办?订单实际创建成功但是返回给你失败了怎么办? > > 超卖怎么解决?redis的库存和数据库库存的一致性怎么确保? > > 旁路验证是什么介绍一下?库存扣减流水,对比。如果对比不一致,怎么办。 > > Redis中的流水是如何设计的?key:事件类型+幂等号(uuid?),value: > > **怎么保证redis**的流水写入成功?lua脚本, > > 有什么情况会需要加库存的么?业务一般不加库存,哪些异常情况会调加库存方法?关单的时候,取消订单时候。 > > 用户取消订单流程,数据一致性方案?关单并发加分布式锁,检查流水,加库存。 > > 介绍下事务消息的原理?本地事务。还没来得及发第二个半消息,挂了怎么办?回查 > > RocketMQ****要实现事务消息,需要哪些配置和代码?本地事务监听器? > > 分布式锁怎么实现的?redisson,tryLock,有啥好处。 > > 介绍下订单表是怎么设计的?订单号、买卖家id、商品id、快照、金额、数量、支付单号???状态怎么设计的。(INIT CONFIRM TIMEOUT CLOSED PAID),退款怎么办? > > Confirm状态,同时来了TIMEOUT和PAID的操作,怎么避免出问题?怎么检测状态?SQL 中加当前转态 > > 支付成功之后都需要干啥。发藏品、订单状态。藏品的序列号如何生成的?提前生成好。为啥要这么做? > > **项目做过压测么?介绍下。单机800。压测都关注哪些指标?RT、错误率、CPU、内存。** > > CPU**、load什么范围算正常?** > > 限流做过么?技术选型做过?考虑哪些因素?学习成本、社区**&支持、性能、 > > **AI接触过么?用过哪个AI**编程工具?TRAE,cursor。知道代码补全的原理是啥么?什么是大模型,大在哪里?数据集,成本大,**
题目解析
> 定时任务为啥单独搞个服务**?xxl-job****分片任务的实现原理?** > > 多节点同时执行如何避免并发问题?分布式锁?如何避免状态不重复?能做优化么? > > Xxl-job如何避免多个节点同时执行同一个任务?怎么加的锁?该状态?
打开文档:✅xxl-job 支持分片任务吗?实现原理是什么?
> NFT****项目上线了么,现在还能访问么?主要卖啥?最多的藏品发行了多少份? > > 藏品还有哪些功能**?**转增,空投,空投你做了?订单量有多少? > > 项目的技术栈?spring cloud Alibaba,
他这个是包装的我的数藏项目,具体介绍如下:
> 下单这部分有啥亮点吗?流量集中,有并发问题。QPS最高有多少?6000 QPS,商品详情接口。 > > 下单的QPS? 1000**,单个商品最高多少?** > > 下单这部分你觉得有瓶颈么?redis预扣减**+数据库扣减,为啥不直接扣数据库。 > > **最开始就是这个方案么?这不是过度设计么?为啥数据库热点行扛不住?加行锁,慢。两次扣减不更慢么?redis扣减完就创建订单,再发MQ**,数据库再扣减。** > > Redis****扣减成功,但是订单没创建成功怎么办?订单实际创建成功但是返回给你失败了怎么办? > > 超卖怎么解决?redis的库存和数据库库存的一致性怎么确保?
其他的几个问题,很难通过八股来讲清楚,在项目课中有具体方案落地。
> 旁路验证是什么介绍一下?库存扣减流水,对比。如果对比不一致,怎么办。 > > Redis中的流水是如何设计的?key:事件类型+幂等号(uuid?),value: > > **怎么保证redis**的流水写入成功?lua脚本, > > 有什么情况会需要加库存的么?业务一般不加库存,哪些异常情况会调加库存方法?关单的时候,取消订单时候。
> 用户取消订单流程,数据一致性方案?关单并发加分布式锁,检查流水,加库存。 > > 介绍下事务消息的原理?本地事务。还没来得及发第二个半消息,挂了怎么办?回查 > > RocketMQ要实现事务消息,需要哪些配置和代码?本地事务监听器?
> 分布式锁怎么实现的?redisson,tryLock,有啥好处。
> 介绍下订单表是怎么设计的?订单号、买卖家id、商品id、快照、金额、数量、支付单号???状态怎么设计的。(INIT CONFIRM TIMEOUT CLOSED PAID),退款怎么办? > > Confirm状态,同时来了TIMEOUT和PAID的操作,怎么避免出问题?怎么检测状态?SQL 中加当前转态 > > 支付成功之后都需要干啥。发藏品、订单状态。藏品的序列号如何生成的?提前生成好。为啥要这么做?
项目问题。
> 项目做过压测么?介绍下。单机800。压测都关注哪些指标?RT、错误率、CPU、内存。 > > CPU**、load什么范围算正常?** > > 限流做过么?技术选型做过?考虑哪些因素?学习成本、社区&支持、性能、
> AI接触过么?用过哪个AI编程工具?TRAE,cursor。知道代码补全的原理是啥么?什么是大模型,大在哪里?数据集,成本大,