去阿里面試,說了沒分散式經驗,面試官還是抓著這個問
最近有朋友去阿里面試回來和我聊天,他的簡歷之前我看過,在一家傳統企業做後端開發的,有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學習圈子: 免費獲取。希望能夠在你接下來即將應對的的面試過程中能夠盡到