10个必备面试技巧

1. 以前做过什么项目?

答:商城项目、商城秒杀系统,整个商城项目中秒杀是其中最关键的一个营销活动,所以独立出来成为一个系统。秒杀系统就是我主做的。

2. 项目上线了吗?外网能否访问?

答:已经上线了,但是我们是外包公司,项目开发完之后布署到哪里不太清楚,所以不知道如何访问。

3. 项目收益是多少?

答:由于是开发人员,收益这一块都是产品那边在管,所以对于开发人员来说这个不太清楚

4. 项目团队中有多少人?怎样分工?

答:团队中有10个人,1个设计师,6个java开发,1个前端,2个测试。我在6人的开发团队中负责整体架构及部分代码,一般都是设计师写好概要设计,其中包含需求调研说明,项目背景,操作流程,使用技术架构,架构图。我们开发再完善详细设计,其中包含表结构,每个微服务能处理的业务,甚至还会写一些伪代码。前端负责页面开发,我们开发出来的版本交给测试人员进行测试,最终交付。

5. 项目中遇到了什么样的问题?是怎么解决的?

答:

1、技术架构方面:刚开始的时候本来使用的是数据库来控制超买超卖,但是效率上有很大的问题,因为我们在压力测试的时候,数据库会造成很多死锁,前端页面就会没有响应。后来我们采用了redis缓存技术来解决超买超卖的问题,将秒杀的商品及库存全部存到redis里,然后秒杀一个减一个,都在缓存里处理,这样就有效的解决了效率问题。

2、开发方面:我在开发库存那一块代码的时候,库存总是减不成功,于是我先查看控制台日志,看是否有报错,然后分析,最后打断点,一行一行跟踪代码找到问题。

3、与前端的交互方面:我们提供的接口,前端那边接收到的数据解析不出来,这就需要我们输出一下我们提供接口返回的数据,看是否是有乱码,或者格式不对,字段不对等问题,也需要和前端一起联调。

4、测试方面:测试人员在提供测试报告之后,有一些问题很难重现,首先需要用他们的数据进行模拟,看是否是数据问题,其次是用他们的环境进行跟踪代码,看能否找到问题。

6. 分布式事务是如何处理的?

答:分布式事务是通过 TCC 模式进行处理,比如订单和库存服务,订单服务和库存服务在开启事务之后先是执行 try 的逻辑,大家都没问题了,订单服务执行业务代码,然后执行confirm的逻辑,库存也执行业务代码,然后执行comfirm的逻辑,大家一起提交。如果库存服务 try 的逻辑执行失败时,会通知订单服务执行 cancel 的逻辑。

在大家都没问题的情况下,try要进行一次交互,然后 confirm 再进行一次交互,所以协调完两个服务会有成本。量小的时候没问题,但是量一旦很大的时候,这样就会造成排队现象。

所以我们没有使用分布式事务处理多个微服务之间的事务问题,我们先是通过redis来处理前端的请求,然后把业务进行拆分,拆分的业务使用消息队列中间件来解决,每个服务都开启自己的事务处理业务,这样可以更加高效的解决并发。

7. 项目开发用了多久?

答:前期的调研加概要设计大概用了10天,我们补充详细设计大概是5天,开发用时在20天左右的时间,加上测试,联调,解决bug,复测,上线应该在1个半月左右。

8. 项目中用到了哪些技术?

答:用的是SpringCloud微服务架构,主要解决后台服务压力过大的问题,所以根据不同模块进行拆分,每个开发小组负责一个微服务,缓存用的redis中间件,处理业务拆分用到的是RabbitMQ。

9. 项目中的数据都是通过SQL查询的吗?

答:不完全是,比如商品取到的秒杀政策就是在redis里取的,不是通过SQL查询,而商品列表和商品详情都是通过SQL查询的。还有控制秒杀的数量都是在redis里进行控制的,而不是实时用SQL查询库存。

10. 项目中你觉得哪个模块最难?

答:处理业务模块上我觉得库存模块最难,由于库存是敏感数据,操作都要非常谨慎,一旦库存出错,会给商家带来具大的损失。

如何处理大并发量是这个项目的难点,我们是通过redis控制超买超卖,通过消息队列RabbitMQ来对业务进行拆分。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值