面试笔记

1.自我介绍和技术背景
2.问项目,问聚合支付项目是否做过压力测试,能支持多少QPS。问了项目中的熔断做了什么,怎么实现的
   熔断那里用Hystrix实现,返回保底数据。压力测试我不清楚说多少合适,就说没做过压力测试
3.系统困难点和收获
   困难点我就回答的在一些逻辑设计方面不太完善,有一些设计缺陷导致给后面的开发挖坑需要花时间弥补。
4.是否考虑到高并发的场景,怎么优化
    后续可通过加锁和多级缓存来优化
5.如果系统突然变慢了,应该怎么去排查问题出在哪里  (这里答的不太好因为没考虑过这个问题)
   我回答去分层排查,先看dao层是不是因为某些sql查询时间过长,然后如果是就看情况加索引、优化sql语句。如果是因  为受到攻击导致系统不稳定可进行请求的监控。
6.如果程序运行时,进程突然挂掉,应该怎么排查( 这里也没答上来)
7.说下AOP原理
 通过动态代理,jdk或cglib,我讲了讲我看过源码,讲了讲动态代理实现以及AOP的应用(日志、方法运行时间记录)
8.线程池的参数和工作原理,应用场景
9.做过哪些mysql优化  (我答完后他问我还有吗?可能他想听的我没说出来)
  慢查询、explain分析、选合适的字段加索引(非空、使用频繁且更新不频繁)、避免索引失效(违反最左前缀、使用模糊查询、隐式类型转换、使用函数等)、批量插入代替单个插入,顺序代替乱序,手动控制事务+批处理,更新时where的条件应匹配索引防止行锁升级为表锁等。    
10.如何解决redis和数据库数据不一致(答得不够好)
 我答的更新时先更新数据库再删redis,如果先删除redis的话需要在更新数据库后再删一次。 
11.缓存雪崩或穿透等解决方案
  防止大量数据集中过期(增加随机过期时间),使用布隆过滤器防止大量请求访问数据库,防止缓存穿透可缓存空值,对访问数据库加锁(使用信号量进行配额),使用多级缓存,进行数据预热并监控。
12.未来学习方向,学习新技术是怎么学的
全部评论

相关推荐

评论
点赞
4
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务