一面:
•自我介绍;
•说说项目中用到的redis?
答:缓存下拉框和弹出框数据,和生成编号。
•追问了下数据量,如果用String去装载有什么问题?
•问了缓存穿透和雪崩;
•redis线程模型,这样设计的优缺点。
•看了zookeeper源码,你的收获是什么?
•了解协议吗?比如tcp,http;
•纸上画一下tcp三次握手和四次挥手的过程。
•tcp第三次握手的作用?挥手后连接是直接断开吗?
•平时用到http协议的地方,我说DubboX框架的rest协议。说到了http协议版本,如果优化的话怎么考虑?
•说说生产环境遇到的问题,以及如何解决的。
•如何快速定位生产问题?假如一个http请求突然响应时间从几十ms,变为几秒,怎么排查问题,已经如何优化。
•了解netty吗?
•思维发散题:微信群,最多500人变为5000人,可能会导致什么问题,如何解决?
二面
•自我介绍
•在板上画出之前项目的架构图,结合架构图问了些问题;
•让你设计一个RPC框架,你会从哪几个方面考虑?
答:我说首先是通信,服务提供者(provider)和消费者(consumer)直接要建立连接,比如TCP,连接方式是长连接或者短连接,这是基础。然后是寻址,要约定好URI格式,比如IP+端口+接口名+方法,让consumer知道去哪里找的到对应的provider。其次是序列化和反序列化协议,因为网络传输都是二进制的。最后是异常处理。
•最近看了哪本书,聊了聊。
•实际性能优化方面。实际性能优化方面。
•在项目中做出的贡献等。
•其他记不得了,主要二面聊大的思维方面比较多,还有实际遇到的问题难点。
HR面:
离职原因、期望薪酬、职业规划等。如实说就行。