空窗1年之 神州信息java岗(外包)——初面回顾
1.看你自学了RPC框架,和Dubbo相比有哪些优点
这个鱼皮的rpc项目面试题里写了,我主要回答了自定义的TCP协议、Etcd注册中心、负载均衡、SPI机制。 其中负载均衡我答的不好,我说我实现了3种算法,然后为了说明项目比Dubbo好在哪我补充了一句Dubbo需要整合其他负载均衡技术,但其实Dubbo是自带的负载均衡器的,如果面试官懂的话感觉很减分。。。 TCP协议其实Dubbo也实现了,所以我说的时候有点没底气,只说相比HTTP减少了网络开销,解决了粘包半包问题这两点。 我感觉说手写RPC框架参考了Dubbo很像在给自己挖坑,面试官很容易顺着问你你比Dubbo强在哪,但实际上很多都不好答。
2.看你简历上写了服务降级、熔断、限流、染色,你项目是怎么实现请求限流的
Api项目中的请求限流是一个课外拓展,不过好在我自己实现了一个并且看了点Gateway的源码,我先答了5种限流算法(明显不是面试官想听的,他想听我怎么用在项目里面的),然后说了Gateway自带了Redis的令牌桶限流,只需要yml配置一下就行,再实现KeyResolver来设置根据什么限流,感觉没答到他的点上,他又问我抢10000张票的情况要怎么做令牌桶,我说设置令牌生成的速度,以及令牌桶的大小。
3.有用Mysql实现过乐观锁和悲观锁吗
这题有点被问到了,不过看过面试鸭对他们定性的描述,我就先讲了什么是悲观锁什么是乐观锁。但面试官显然是更关心我有没有用Mysql实现过,好在之前黑马还是什么项目用过乐观锁,其实就是where后面多加一个条件,判断期望值和实际值相不相等。悲观锁的实现没答出来。然后他又问我具体怎么实现的乐观锁,我想我都说了where后面多加一个条件判断期望值了还能怎么说?于是就举了一个更新name的场景,然后提了一嘴除了比较字段值还可以用版本号,可能这才是他想要的答案。。
4.满分10分,问我给过往的工作经历打几分
因为我空窗了1年,我就说空窗的这年我收货了很多很多知识,可以打9分甚至10分,工作的2年需求实现和部署运维能力可以打7分,实际技术能力提升打5分。
5.看你对新技术比较感兴趣,如果工作的项目技术栈比较老,你是怎么考虑的
这其实就是个送命题,标准的面试造火箭工作拧螺丝,不过我答得还是比较真诚的(可能也很愣头青),有没有大佬说说该怎么答,这种没有特别准备过。 我先说既然你从事了这份工作就要把需求功能都做好,并且保持他的高可用。然后说新技术的设计思想是可以沿用的,比如你缓存不一定非得上Redis,也可以直接用Map。之后我又说如果碰到比较陌生的老技术我也会自学,又举了一个自学模板语法Thymeleaf的经历。
6.评价一下自己的优缺点
优点:主观能动性,自学能力,举了个自学Tomcat Session复制技术搭建主从服务器之类的例子。 缺点:与他人沟通上可能还需要加强 然后面试官追问我具体是怎么个沟通问题,我就说和项目经理、需求之类的要沟通,如果他们不懂技术,要和他们约定好条件和排期、给开发这边争取一些空间和优势(实在没词了,优势这词感觉说的不太好),不要什么需求都接,什么DeadLine都安排,因为我上一家公司有个项目经理就是个传声筒。。
