美团后端一面面经
- 自我介绍
项目相关
- 讲一下实习期间的做的事情?
- 回答:使用消息队列kafka进行削峰
- 追问:
- 如何解决消息漏发,消息重复问题?
- 如何解决消息多次消费的问题?
- 当你将消息读取到内存且还没处理完,服务这时候宕机了,该怎么办?如何保证消息只被消费一次呢?
- 关键点:
- 了解 Kafka 生产的和消费消息的过程
- 了解 Kafka 幂等性
- 谈谈你对kafka的理解和认识
- 谈谈kafka的消费者和消费组?
- 讲讲实习另一个使用,基于zookeeper的分布式定时器?
- 定时器定期检查,还有什么方法解决你这个问题嘛?
- 面试官:可以考虑用消息队列
- 谈谈zookeeper的认识?
- zookeeper核心提供了什么样的能力呢?
- zookeeper如何实现分布式一致性?
- 面试官建议:再深入了解一下这些框架的原理
- 聊聊其他的项目。【此时进入到SSM】
- 为什么在分布式情况就要用redis存储session
- session使用redis存储,还有什么解决方案嘛?
- 小声回答:感觉DB可以实现功能,但性能不好吧
- DB的大概性能是多少?Redis的大概性能是多少?两者相差多少?
Redis
- 谈谈你对Redis的理解?
- 为什么单线程它会快?
- 为什么多路复用会快?
- poll和epoll的区别?
- 说一下五种IO模型,以及如何区别它们?
- redis的缓存淘汰机制?
- LRU如何实现?
Java
- 你比较了解Java的哪一块知识?
- hashmap的底层数据结构?
- 为什么要用红黑树?插入性能如何?
- concurrentHashMap了解嘛?
- 谈谈对线程池的认识?
- 常见的线程池?
- 这四个常用的线程池各自的应用场景?
- cached线程池,在大量请求下会有什么问题?
Spring
- 谈谈对spring的认识
- Ioc是什么?Ioc的作用?
- aop是什么?它的动态代理用什么实现的?
TCP
- TCP连接经历什么阶段?
- TCP和UDP的区别?
- 面向连接和无连接的区别?
- 在物理层,TCP和UDP有区别嘛?
反问
问:面试官所属部门?
问:校招,比较看重应聘者哪些能力?
答:解决问题,学习能力,基础知识,价值观
问:面试官,觉得自己在哪方面还需要提高的?
答:
- 一些知识需要更深入学习
- 设计的技术方案多进行横向对比
- 多思考,不同场景下,不同的解决方案
总结
- Kafka和zookeeper要更加深入了解一些原理
- 自己实现的技术方案,要考虑到一些异常场景,多进行横向对比
- 动态代理,IO模型等基础知识牢固一点