字节提前批后端开发一、二、三面面经,已意向书
一面:
1、因为项目做了基于netty的rpc框架,针对这个进行展开提问
2、Reactor线程模型
3、netty怎么实现reactor线程模型的
4、rpc调用的时候调用远程方法像调用本地方法一样是用了什么(这里我回答了网络连接的底层,结果面试官问的代码层面的动态代理)
5、动态代理怎么实现的?有哪两种动态代理(JDK、cglib)?有什么区别?
6、IO多路复用
7、select、poll、epoll
8、由于自己简历上写了看过rocketmq源码,接下来对mq展开提问
9、rocketmq和市面上常见的mq有什么区别,都有什么优缺点
10、rocketmq事务消息底层
11、一个数组,从输入中找一个数看看在不在这里面(开放题,任何你想到的都能说):我回答了排序二分、遍历、用set、用hashmap、hashcode、用布隆过滤器。比较开放题
12、自增id有什么好处(我回答了和uuid相比,节省磁盘空间,作为聚簇索引提升查询效率)
13、select * from user where id >= 多少 order by phone 这个sql有什么问题可以优化的
14、算法题:选定一个链表,返回环的入口节点,没有则返回空节点
二面:
1、怼项目(支付宝实习项目)
2、rocketmq延时消息底层实现,应用场景
3、epoll 水平触发和边缘触发
4、常见的json序列化工具有哪些?
5、看到你写netty ,知道protobuf吗?和json比有什么好处呢?
6、那你能说说dubbo是怎么实现的吗?
7、dubbo的序列化方式是什么呢?
8、微服务zookeeper、eureka、consul、nacos对比
9、zookeeper讲讲?CP还是AP?eruka呢? 服务调用需要ap还是cp?分析一下场景?
10、为什么mysql单表最多不放超过2000w行数据呢?
11、算法题:两个字符串找最长公共子串
三面:
1、怼项目(商汤实习项目、数学建模项目)
2、认证、授权、熔断、限流都是怎么实现的?
3、常见的限流算法?(令牌桶等)
4、常见的限流方式?(nginx、网关)
5、JWT了解吗?
6、进程通信方式?哪种通信方式最快?
7、开发中怎么解决线程安全问题?
8、如果你在浏览器上输入一个网址返回error怎么排查?(ping对应的ip)
9、如果你ping出来的ip是128.0.0.1怎么办?(肯定是对应的浏览器缓存映射、或者本级host被修改,面试官说就是这个)
10、你前面两面还有没被问到的吗?(不知道没有,别问了)
11、算法题:两个有序数组找中位数