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