1. 程式人生 > >成為java架構師需要具備哪些技能

成為java架構師需要具備哪些技能

最近一直想整理一些架構師方面的內容,所以參考各位大神的經驗,梳理一些東西以備後需。

java架構師,首先你要是一個高階java工程師,熟練使用各種框架,並知道它們實現的原理。

jvm虛擬機器原理、調優,懂得jvm能讓你寫出效能更好的程式碼;

池技術,什麼物件池,連線池,執行緒池,java反射技術,寫框架必備的技術,但是有嚴重的效能問題,替代方案java位元組碼技術;

nio,值得注意的是“直接記憶體”的特點,使用場景;

java多執行緒同步非同步;

java各種集合物件的實現原理,瞭解這些可以讓你在解決問題時選擇合適的資料結構,高效的解決問題。

熟練使用各種資料結構和演算法,陣列、雜湊、連結串列、排序樹...,就是一句話要麼是時間換空間要麼是空間換時間。


熟練使用linux作業系統,必備。

熟悉tcp協議,建立連線三次握手和斷開連線四次握手的整個過程,不瞭解的話,無法對高併發網路應用做優化;

熟悉http協議,尤其是http頭,我發現好多工作五年以上的都弄不清session和cookie的生命週期以及它們之間的關聯。

系統叢集、負載均衡、反向代理、動靜分離,網站靜態化。

分散式儲存系統nfs,fastdfs,tfs,Hadoop瞭解他們的優缺點,適用場景。

分散式快取技術memcached,redis,提高系統性能必備,一句話,把硬碟上的內容放到記憶體裡來提速,順便提個演算法一致性hash。

工具nginx必備技能超級好用,高效能,基本不會掛掉的伺服器,功能多多,解決各種問題。

資料庫的設計能力,mysql必備,最基礎的資料庫工具,免費好用,對它基本的引數優化,慢查詢日誌分析,主從複製的配置,至少要成為半個mysqldba。其他nosql資料庫如mongodb。

還有佇列中介軟體。如訊息推送,可以先把訊息寫入資料庫,推送放佇列伺服器上,由推送伺服器去佇列獲取處理,這樣就可以將訊息放資料庫和佇列裡後直接給使用者反饋,推送過程則由推送伺服器和佇列伺服器完成,好處非同步處理、緩解伺服器壓力,解藕系統。