面试记录2019/09/16

1.主要负责的模块,用什么技术实现的?

商品中心+运营中心模块(后面会涉及到分布式框架问题)

2.项目在拆分过程中有涉及到分布式事务没有?

3.项目中有用到消息吗即MQ?哪些场景?具体怎么实现的?

4.做的电商秒杀,具体用MQ是怎么实现的?怎么处理大流量的访问?怎么削锋下单?

异步处理:下单后会异步发消息,给用户发送订单支付成功的短信以及返回优惠券(降低接口的响应时间)

业务解耦:下单成功后订单系统只需返回订单支付成功的结果,商品的库存更新可以交给库存系统来处理;

削锋:商品的数量为100件

第一步:判断商品的库存,实现redis存,key为商品的ID,如果为0直接返回;

第二步:校验活动是否开始;

第三步:校验商品信息是否存在;

第四步:校验用户是否登录;

第五步:获取商品的数量;

5.下单抢购量用户大怎么处理?

在用户请求过程中加锁,请求结束释放锁。用redis实现分布式锁机制

使用Redis实现分布式锁最简单的方案是在获取锁之前先查询一下以该锁为key对应的value存不存在,如果存在,则说明该锁被其他客户端获取了,否则的话就尝试获取锁,获取锁的方法很简单,只要以该锁为key,设置一个随机的值就行了。比如,我们有一批任务需要由多个分布式线程处理,每个任务都有一个taskId,为了保证每个任务只被执行一次,在工作线程执行任务之前,先获取该任务的锁,锁的key可以为taskId

6.同时有1W用户去参与秒杀,如何处理,不让服务器出现问题?

7.有看过哪个框架的源码?SpringBoot写过滤器和拦截器是怎么写的?

8.springBoot启动项目快是快在哪些方面?默认的日志框架?

默认日志框架Logback

9.springAOP的原理和在项目中的应用?

面向切面编程:底层用到的俩种原理:jdk动态代理、cjlib动态代理;之前提供一个借口需要implements来进行实现,而现在通过Proxy类的静态方法newProxyInstance()方法生成了一个对象,这个对象实现了cs数组中指定的接口,返回实现类

项目中应用:权限控制;Transactions事务等

10.接口的安全性怎么来做的?

用户请求登录页面的时候,服务器生成一个token保存在服务器session中和客户端cookie中,登录时客户端带上此token一起提交到服务器,验证此token是否有效,若有效即登录成功并更新此token,重新赋值到session和cookie中; 
登录后的用户在每一次请求时都判断cookie中的token和session中的token是否一样,若一样即登录有效,并且要更新token,下次请求再进行判断,若不一样即登录无效。

即时前端做了参数限制后端也要进行参数限制

11.网站登录是有什么来控制的?

12.掌握调优技巧?体现在哪些方面?

13.建立索引的是什么类型的?

unique:表示唯一的,不允许重复的索引,如果该字段信息保证不会重复例如身份证号用作索引时,可设置为unique

14.为什么每个表建立索引要控制建立的个数?

15.用solr实现怎么控制返回数据的权重(排名)?

16.dubbo或者springCloud有了解吗?

 

你可能感兴趣的:(javaweb,nqSQL,mysql)