跳转至

8年,双非一本,车企区块链项目(溯源、NFT商城-订单)

面试者背景

:::warning 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要实现事务消息,需要哪些配置和代码?本地事务监听器?

分布式锁怎么实现的?redissontryLock,有啥好处。

介绍下订单表是怎么设计的?订单号、买卖家id、商品id、快照、金额、数量、支付单号???状态怎么设计的。(INIT CONFIRM TIMEOUT CLOSED PAID),退款怎么办?

Confirm状态,同时来了TIMEOUTPAID的操作,怎么避免出问题?怎么检测状态?SQL 中加当前转态

支付成功之后都需要干啥。发藏品、订单状态。藏品的序列号如何生成的?提前生成好。为啥要这么做?

项目做过压测么?介绍下。单机800。压测都关注哪些指标?RT、错误率、CPU、内存。

CPUload什么范围算正常?

限流做过么?技术选型做过?考虑哪些因素?学习成本、社区&支持、性能、

AI接触过么?用过哪个AI编程工具?TRAEcursor。知道代码补全的原理是啥么?什么是大模型,大在哪里?数据集,成本大,


:::

题目解析

:::color4 定时任务为啥单独搞个服务?xxl-job分片任务的实现原理?

多节点同时执行如何避免并发问题?分布式锁?如何避免状态不重复?能做优化么?

Xxl-job如何避免多个节点同时执行同一个任务?怎么加的锁?该状态?

:::

8_✅xxl-job 支持分片任务吗?实现原理是什么?

7_✅xxl-job如何保证一任务只会触发一次?

:::color4 NFT项目上线了么,现在还能访问么?主要卖啥?最多的藏品发行了多少份?

藏品还有哪些功能?转增,空投,空投你做了?订单量有多少?

**项目的技术栈?spring cloud Alibaba, **

:::

他这个是包装的我的数藏项目,具体介绍如下:

[[20_🧣🧣🧣项目实战课介绍&老用户福利]]

:::color4 下单这部分有啥亮点吗?流量集中,有并发问题。QPS最高有多少?6000 QPS,商品详情接口。

下单的QPS 1000,单个商品最高多少?

下单这部分你觉得有瓶颈么?redis预扣减+数据库扣减,为啥不直接扣数据库。

最开始就是这个方案么?这不是过度设计么?为啥数据库热点行扛不住?加行锁,慢。两次扣减不更慢么?redis扣减完就创建订单,再发MQ,数据库再扣减。

Redis扣减成功,但是订单没创建成功怎么办?订单实际创建成功但是返回给你失败了怎么办?

超卖怎么解决?redis的库存和数据库库存的一致性怎么确保?

:::

31_✅MySQL热点数据更新会带来哪些问题?

57_✅MySQL怎么做热点数据高效更新?

9_✅库存扣减如何避免超卖和少卖?

其他的几个问题,很难通过八股来讲清楚,在项目课中有具体方案落地。

:::color4 旁路验证是什么介绍一下?库存扣减流水,对比。如果对比不一致,怎么办。

Redis中的流水是如何设计的?key:事件类型+幂等号(uuid?),value

怎么保证redis的流水写入成功?lua脚本,

有什么情况会需要加库存的么?业务一般不加库存,哪些异常情况会调加库存方法?关单的时候,取消订单时候。

:::

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

91_✅秒杀场景下,怎么加库存?

:::color4 用户取消订单流程,数据一致性方案?关单并发加分布式锁,检查流水,加库存。

介绍下事务消息的原理?本地事务。还没来得及发第二个半消息,挂了怎么办?回查

RocketMQ要实现事务消息,需要哪些配置和代码?本地事务监听器?

:::

2_✅RocketMQ的事务消息是如何实现的?

:::color4 分布式锁怎么实现的?redisson,tryLock,有啥好处。

:::

6_✅分布式锁有几种实现方式?

:::color4 介绍下订单表是怎么设计的?订单号、买卖家id、商品id、快照、金额、数量、支付单号???状态怎么设计的。(INIT CONFIRM TIMEOUT CLOSED PAID),退款怎么办?

Confirm状态,同时来了TIMEOUT和PAID的操作,怎么避免出问题?怎么检测状态?SQL 中加当前转态

支付成功之后都需要干啥。发藏品、订单状态。藏品的序列号如何生成的?提前生成好。为啥要这么做?

:::

项目问题。

:::color4 项目做过压测么?介绍下。单机800。压测都关注哪些指标?RT、错误率、CPU、内存。

CPUload什么范围算正常?

限流做过么?技术选型做过?考虑哪些因素?学习成本、社区&支持、性能、

:::

5_✅什么是压测,怎么做压测?

5_✅什么是限流?常见的限流算法有哪些?

:::color4 AI接触过么?用过哪个AI编程工具?TRAE,cursor。知道代码补全的原理是啥么?什么是大模型,大在哪里?数据集,成本大,

:::

1_✅怎么理解大模型?