一面
上来直接算法题:
1. 平衡二叉树判断(敲出两种方法)
2. 项目中的难点
1)分布式session
2)一致性hash
3)订单过期(RabbitMQ整体架构)
4)购物车模块(Redis数据存储)
5)分布式锁
3.Zookeeper 一致性协议(ZAB)
4.又来了道算法题:
数组的中位数(快速选择)
5.select * from tableA whereA.a=?order by A.b 加索引优化
这一面问的就比较舒服,算法题也不是很难吧
二面
1.项目(RPC)
2.堆排序,最差时间复杂度
3.1g内存,给10g数据排序(归并,当时没有想出来 多路归并+堆排序)
4.设计hash函数,怎么算hashcode(不太会)
5.设计模式 组合模式、享元模式
算法题:
6.最小覆盖字串
感觉面试官不太了解 PRC,说完项目也没问什么,这一面个人感觉是四面最难的
三面
二面面得不太好,就加面一轮,还是很刺激的。这一面是四轮最舒服的,聊得很开心
1.rpc项目介绍
1)为什么大多数rpc框架都用netty(聊了下Netty的特点)
2)为什么选择zk做注册中心
3)了解过zk的问题吗
4)熔断策略,服务存在容量上限,优化还有什么想法,
5)怎么去记录待执行的异步任务,如果服务器重启了怎么去记录
6)如何集成 Spring 通过注解注册服务、消费服务
7)spring底层前置后置处理等怎么实现的
8)项目中spring的使用机制
2.秒杀
1)redis机器怎样缓解高热点key导致负荷过饱和问题
2)spring事物传播
3)为什么要用分布式事务
4)spring aop
5)代理对象和原对象关系
3.z字形打印二叉树
反问:秒杀那个热点数据导致负载高怎么解决
1)为什么大多数rpc框架都用netty(聊了下Netty的特点)
2)为什么选择zk做注册中心
3)了解过zk的问题吗
4)熔断策略,服务存在容量上限,优化还有什么想法,
5)怎么去记录待执行的异步任务,如果服务器重启了怎么去记录
6)如何集成 Spring 通过注解注册服务、消费服务
7)spring底层前置后置处理等怎么实现的
8)项目中spring的使用机制
2.秒杀
1)redis机器怎样缓解高热点key导致负荷过饱和问题
2)spring事物传播
3)为什么要用分布式事务
4)spring aop
5)代理对象和原对象关系
3.z字形打印二叉树
反问:秒杀那个热点数据导致负载高怎么解决
四面
1.项目亮点(讲了RPC用了 Dubbo SPI机制,大概就是借鉴 Dubbo 的一些东西)
2.BIO、NIO、AIO
3.Netty的IO模型
3.Netty的IO模型
4.讲一下商城项目的整体架构
5.购物车如果出现商品降价怎么做
6.redis访问一个很大的数据会出现什么情况(具体原因)
6.redis访问一个很大的数据会出现什么情况(具体原因)
7.JVM GC
8.段页式取一数据需要访问多少次内存
算法题:
8.段页式取一数据需要访问多少次内存
算法题:
1.跳跃游戏(说了动态规划,然后不让用动归,DFS、图,都不行,就没想出别的办法)
换了道题
2.按照前序中序构建二叉树
HR面
1.实习时间
2.对前几轮面的感受
3.如何学习新的技术
其他的记不太清了
整体面试感受就是基础基本没怎么问,大多数就是给定场景让你给出解决方法,希望能过吧!
全部评论
(2) 回帖