面经详情

Java面试一般,共1轮面试
Q:1.简单自我介绍下以及项目
Q:2.项目中遇到的问题,以及解决方案
Q:3.RocketMQ RocketMQ的消息模式,讲下有什么特点(集群消费模式,和广播模式) 如何保证消息不被重复消费?或者说,如何保证消息消费的幂等性? RocketMQ的延迟消息1条回答
Q:4.ES 生产集群的部署架构是什么?每个索引的数据量大概有多少?每个索引大概有多少个分片? es怎么实现的?
Q:5.redis 为什么那么快。 
 缓存穿透,缓存击穿,缓存雪崩 缓存击穿是指缓存中没有但数据库中有的数据(一般是缓存时间到期),这时由于并发用户特别多,同时读缓存没读到数据,又同时去数据库去取数据,引起数据库压力瞬间增大,造成过大压力 设置热点数据永远不过期。 
 加互斥锁 缓存穿透是指缓存和数据库中都没有的数据,而用户不断发起请求,如发起为id为“-1”的数据或id为特别大不存在的数据。这时的用户很可能是攻击者,攻击会导致数据库压力过大。 
 解决方案: 接口层增加校验,如用户鉴权校验,id做基础校验,id<=0的直接拦截; 从缓存取不到的数据,在数据库中也没有取到,这时也可以将key-value对写为key-null,缓存有效时间可以设置短点,如30秒(设置太长会导致正常情况也没法使用)。
这样可以防止攻击用户反复用同一个id暴力攻击缓存雪崩是指缓存中数据大批量到过期时间,而查询数据量巨大,引起数据库压力过大甚至down机。和缓存击穿不同的是, 缓存击穿指并发查同一条数据,缓存雪崩是不同数据都过期了,很多数据都查不到从而查数据库。 
 解决方案:缓存数据的过期时间设置随机,防止同一时间大量数据过期现象发生。如果缓存数据库是分布式部署,将热点数据均匀分布在不同搞得缓存数据库中。设置热点数据永远不过期。
Q:6.分布式锁有过了解么?让你设计一个分布式锁该考虑哪些?还知道什么锁?1条回答
Q:7.分布式事物?
Q:8.mysql 数据库事物隔离级别?sql 优化? 一个接口很慢,你怎么优化这个接口?1条回答
Q:9.spring(DI,AOP,IOC) mybatis(几个核心类) springBoot(启动过程,starter的原理)
Q:10.多线程,线程池的参数,和线程池的状态1条回答

相关推荐

李明
Java
确定通过确定通过
一面 面试的Java开发组长,首先会填面试信息表和一些面试题,设计模式、还有垃圾回收的一些东西。最后是一个斐波拉契数列的类似的题,都比较简单。大概10分钟左右技术总监进来会会从你的项目过往中问一些问题,我的项目没有讲好,稍微有些紧张。不过面试官也不会为难。1.springcloud框架,几个重要组件底层的实现原理,这个时候不要只聊使用,讲点实际的,用大家都会用。主要都是基础知识的考量。2.设计模式、项目中实际使用。这个时候不要瞎吹,有就是有,没有就是没有,没有你就讲你会使用的就好了,面试官对这个判断很准的。2.然后会问JVM和线上问题排查,这块实际项目中如果遇到的比较少,确实不会太在意,正巧我做的系统前几天遇到过问题。不过表述的也不是太完美/3.后边就是一些常规的mysql的问题,然后也是一些优化方案。大致就是围绕这些方面。 会从粗颗粒度逐步深入,整个面试比较系统感受很好应该不算二面,就是hr姐姐和你聊。不过和我聊的说自己不是专业HR,人很有亲和力。会问一下常规的规划,可能我比较特殊,和我这块没有细聊,后边就关于我的职场经历从前往后说了一遍,从这个过程中我觉得有经验的人事都可以获取到很多信息。最后谈薪资,由于我的疏忽,在面试表中的薪资写的有点问题,最后给我的薪资还待商榷。   ...查看更多
2 年前 发布

进入微信小程序

前往微信小程序,查看更多结果

立即前往
看准网南京华苏科技有限公司南京华苏科技有限公司面试经验南京华苏科技有限公司面试经验:Java面试一般,共1轮面试
正在招聘售前(昭通)52 个岗位