最近有朋友去阿里面试回来和我聊天,他的简历之前我看过,在一家传统企业做后端开发的,有3年的工作经验,但是对于分布式相关的经验不是很足。
在看过他的简历之后,我建议他看一些和分布式有关的东西,但是他并没有听,回来之后找我吐槽:"我都明确说了自己没有分布式经验,但是面试官还是抓着我问了很多分布式相关的问题..."
然后说:"早知道我就听你的多看一些分布式相关的知识了..."
"可是我真的没有经验那,看了理论知识真的有用吗?"
对于他的这一连串问题,我只能说:早就告诉你了你不听,我能怎么办。
但是其实他的困惑,也是很多人都有的一些困惑。我尝试着回答一下,如果你没有分布式相关的经验,那么你应该准备哪些理论知识?
首先需要强调的是,如果你没有相关经验,面试官还问你,这很正常!因为如果接触不到就可以完全不知道,或者完全不想办法去了解,那这种开发可能也正好不是大厂想要的人!Java学习圈子
首先,关于分布式,有些纯理论的知识需要开发有个基本的概念:
1、什么是分布式,什么是集群,二者有什么区别?
2、分布式的 CAP理论、BASE理论?
3、什么是分布式的数据一致性?
4、2PC、3PC、TCC等
画重点:这部分的理论要有些基本的掌握,至少CAP要知道,包括CAP的证明等。
还有就是和分布式相关的一些工具、框架、中间件等,如:
1.消息队列:Kafka、ActiveMQ、RabbitMQ、RocketMQ
2.RPC框架:Dubbo、gRPC
3.分布式缓存:Redis、Memcached
4.分布式搜索:elasticsearch5、分布式协调:Zookeeper
画重点:这部分要知道如何进行技术选型,技术选型要考虑哪些因素,同类中间件之间的横向比较等。
还有就是一些分布式问题的解决方案:
1、分布式事务
2、分布式锁
3、分库分表
4、限流、降级
画重点:一个问题有多个解决方案的时候,要考虑各个方式的优缺点。
总之不管你有没有用过,就算没有使用的场景,也要饱含热情的去了解这些东西。
有分布式场景的大厂,就像一个围墙。外面的人都没有经验,里面的人才有经验。但是大厂招人又需要人有这样的经验。
其实,只要方法得当,准备面试并不难,也不会浪费太多的时间。
最后,在这里分享一些源码和框架的直播和视频资源,希望可以在金九银十助你一臂之力!
粉丝福利
上图中的资料都是我精心录制视频,感兴趣的可以加入我的Java学习圈子: 免费获取。希望能够在你接下来即将应对的的面试过程中能够尽到一份绵薄之力。