Skip to content

面试速答(先看这里)

**一句话结论:**电商平台做了多久?

60秒标准回答:

19年毕业,Java开发,国企,做电商平台

电商平台做了多久? 2 年,系统多大体量,日活 5-6 万。你负责了哪些业务?订单、库存、交易、

介绍下这个系统的架构?分布式架构, springcloud Alibaba , nacos 、 dubbo 、 sentinel

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

回答主线:

  • **要点1:**19年毕业,Java开发,国企,做电商平台
  • **要点2:**介绍下这个系统的架构?
  • **要点3:**交易模块和订单模块的区别是啥?
  • **要点4:**除了 TCC 还用过其他的分布式事务方案吗?
  • **要点5:**除了TCC还用过其他的分布式事务方案吗?

**记忆锚点:**TCC → Confirm → hash → shardingjdbc → ShardingJdbc → sentinel

易错提醒:

  • Hutool 的 workerid 不能超过 32 ,如果超过了 32 台机器怎么办?

加分表达:

  • 时钟回拨、如果没有时钟回拨还可能重复么?
  • shardingjdbc 如果没有分表键,怎么查的?

追问准备:

  • (本面经实战的内容来自我的 数藏项目 ,该候选人是拿我的项目做了包装,里面涉及的所有问题项目课中都有详细讲解,可以在项目课中和我们一起学) 19年毕业,Java开发,国企,做电商平台 电商平台做了多久?
  • 你负责了哪些业务?
  • 订单、库存、交易、 介绍下这个系统的架构?
  • 分布式架构, springcloud Alibaba , nacos 、 dubbo 、 sentinel 分了哪些微服务?

(本面经实战的内容来自我的数藏项目,该候选人是拿我的项目做了包装,里面涉及的所有问题项目课中都有详细讲解,可以在项目课中和我们一起学) ​

面试者背景 ​

> 19年毕业,Java开发,国企,做电商平台 > > 电商平台做了多久?2年,系统多大体量,日活5-6万。你负责了哪些业务?订单、库存、交易、 > > 介绍下这个系统的架构?分布式架构,springcloud Alibaba,nacos、dubbo、sentinel > > 分了哪些微服务?支付、订单、交易、用户,营销有吗?么有营销???商品模块有吗? > > 交易模块和订单模块的区别是啥?订单-订单生命周期管理,交易-聚合模块。 > > 一次下单流程都需要哪些模块的配合?交易、库存、订单。 > > 商品上的库存是怎么设计的?可售库存数、冻结库存、库存总量。 > > **冻结库存是干嘛的?TCC的try做冻结。订单、库存等模块在TCC**的不同步骤中分别做了啥? > > TRY**:库存做冻结、订单创建(用户看不到),Confirm:库存冻结转化成扣减,订单确认。** > > Cancel**:库存解冻、订单废弃。Confirm之后的cancel呢?事务表、** > > 先操作库存还是订单?如何解决的TCC的空回滚和悬挂问题?怎么知道有空回滚过? > > TCC过程中,还没来得及confirm****服务挂了怎么办? > > 自己实现的TCC吗,为啥不用seata中的? > > TCC和XA相比区别,优缺点?效率。为啥TCC****是最终一致性?中间状态、 > > 除了TCC还用过其他的分布式事务方案吗?事务消息、RocketMQ,为啥不用本地消息表。 > > 项目中做了分库分表,订单表多大数据量?为啥不用分布式数据库? > > 分库分表后主键ID是怎么生成的?介绍下雪花算法。雪花算法什么时候会重复?时钟回拨、如果没有时钟回拨还可能重复么?如何解决时钟回拨的问题?抛异常、等待?切换机器码、提前准备一批id? > > 代码中雪花算法是用框架做的吗?hutool,机器码是怎么设置的?redis自增。Hutool的workerid不能超过32,如果超过了32台机器怎么办? > > 分库分表后,如何做扫表?没有分表字段,怎么查询?shardingjdbc如果没有分表键,怎么查的? > > ShardingJdbc是你选的吗。知道其他的框架么?为啥不用mycat**,你在做技术选型的时候怎么考虑的** > > 订单号的生成逻辑是怎么样的?基因法,你怎么知道订单能分到哪张表? > > 分表算法怎么实现的?uid hash **取余,为啥要先hash**再取余? > > 项目中解决过哪些线上问题?CPU高问题,arthas、获取数据库链接?连接失效?keep-alive,防火墙。 > > 如果让你设计一个点赞系统,你会考虑哪些问题,难点可能是什么。你的方案是怎样的?并发、多少并发算高?如果是直播间点赞会有其他方案吗? > > Free看到机器上内存还有很多,但是有频繁的fullgc,可能的原因是什么?JVM分配的内存少、

题目解析 ​

> **介绍下这个系统的架构?分布式架构,springcloud Alibaba,nacos、dubbo、sentinel > > 分了哪些微服务?支付、订单、交易、用户,营销有吗?么有营销???商品模块有吗? > > 交易模块和订单模块的区别是啥?订单-订单生命周期管理,交易-**聚合模块。 > > 一次下单流程都需要哪些模块的配合?交易、库存、订单。

📄 ✅能不能介绍下你项目的整体架构情况

打开文档:✅能不能介绍下你项目的整体架构情况

> 商品上的库存是怎么设计的?可售库存数、冻结库存、库存总量。 > > 冻结库存是干嘛的?TCC的try做冻结。订单、库存等模块在TCC的不同步骤中分别做了啥? > > TRY**:库存做冻结、订单创建(用户看不到),Confirm:库存冻结转化成扣减,订单确认。** > > Cancel**:库存解冻、订单废弃。Confirm之后的cancel呢?事务表、** > > 先操作库存还是订单?如何解决的TCC的空回滚和悬挂问题?怎么知道有空回滚过? > > TCC过程中,还没来得及confirm****服务挂了怎么办? > > 自己实现的TCC吗,为啥不用seata中的? > > TCC和XA相比区别,优缺点?效率。为啥TCC****是最终一致性?中间状态、 > > 除了TCC还用过其他的分布式事务方案吗?事务消息、RocketMQ,为啥不用本地消息表。

📄 ✅库存扣减、创建订单,如何拆成TCC?

打开文档:✅库存扣减、创建订单,如何拆成TCC?

📄 ✅TCC的空回滚和悬挂是什么?如何解决?

打开文档:✅TCC的空回滚和悬挂是什么?如何解决?

📄 ✅什么是TCC,和2PC有什么区别?

打开文档:✅什么是TCC,和2PC有什么区别?

📄 ✅常见的分布式事务有哪些?

打开文档:✅常见的分布式事务有哪些?

> 项目中做了分库分表,订单表多大数据量?为啥不用分布式数据库? > > 分库分表后主键ID是怎么生成的?介绍下雪花算法。雪花算法什么时候会重复?时钟回拨、如果没有时钟回拨还可能重复么?如何解决时钟回拨的问题?抛异常、等待?切换机器码、提前准备一批id? > > 代码中雪花算法是用框架做的吗?hutool,机器码是怎么设置的?redis自增。Hutool的workerid不能超过32,如果超过了32台机器怎么办? > > 分库分表后,如何做扫表?没有分表字段,怎么查询?shardingjdbc如果没有分表键,怎么查的? > > ShardingJdbc是你选的吗。知道其他的框架么?为啥不用mycat**,你在做技术选型的时候怎么考虑的** > > 订单号的生成逻辑是怎么样的?基因法,你怎么知道订单能分到哪张表? > > 分表算法怎么实现的?uid hash 取余,为啥要先hash再取余?

📄 ✅如果单表数据量大,只能考虑分库分表吗?

打开文档:✅如果单表数据量大,只能考虑分库分表吗?

📄 ✅什么是雪花算法,怎么保证不重复的?

打开文档:✅什么是雪花算法,怎么保证不重复的?

📄 ✅什么是雪花算法的时钟回拨问题,如何解决?

打开文档:✅什么是雪花算法的时钟回拨问题,如何解决?

📄 ✅基于XXL-JOB的分片实现分库分表后的扫表

打开文档:✅基于XXL-JOB的分片实现分库分表后的扫表

📄 ✅让你设计一个订单号生成服务,该怎么做?

打开文档:✅让你设计一个订单号生成服务,该怎么做?

> 项目中解决过哪些线上问题?CPU高问题,arthas、获取数据库链接?连接失效?keep-alive,防火墙。

📄 ✅日志打印导致CPU飙高问题排查

打开文档:✅日志打印导致CPU飙高问题排查

> 如果让你设计一个点赞系统,你会考虑哪些问题,难点可能是什么。你的方案是怎样的?并发、多少并发算高?如果是直播间点赞会有其他方案吗?

📄 ✅如何实现一个点赞系统?

打开文档:✅如何实现一个点赞系统?

> Free看到机器上内存还有很多,但是有频繁的fullgc,可能的原因是什么?JVM分配的内存少、

📄 ✅假设还有很多内存,有什么情况还会频繁fullgc?

打开文档:✅假设还有很多内存,有什么情况还会频繁fullgc?

(本面经实战的内容来自我的数藏项目,该候选人是拿我的项目做了包装,里面涉及的所有问题项目课中都有详细讲解,可以在项目课中和我们一起学) ​