面试记录2019/09/16

2 篇文章 0 订阅
1 篇文章 0 订阅

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

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

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

MQ保证分布式事务一致性

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.mysql索引实现原理?俩种索引的区别?索引为什么要用B+树?调优技巧体现在哪些方面?

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

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

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

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

16.dubbo或者springCloud有了解吗?

17.spring事务传播机制&隔离级别知道吗?

CSDN链接:https://blog.csdn.net/HUXU981598436/article/details/82702308

18.hashMap的底层结构(说的越多越好)?与hashTable的区别?

19.多线程了解多少?

 

 

 

 

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值