一個完美的架構師須要具備如下幾特色:javascript
知識廣度:須要知道主流技術爲何誕生,能解決什麼問題?若是同一種業務用不用的技術來實現,會有什麼哪些優缺點?好比:流行的ORM框架Mybatis 和 hibernate ,他們之間的優缺點是什麼?要有清晰的認識會能在技術造型時作出正確的決定。前端
知識的深度:至少是某個領域的專家,好比消息隊列,activeMQ熟悉其源碼,知道其實現。java
優秀的學習能力:對新的技術和前沿性的技術進行學習,使用它來解決工做中的業務問題。mysql
1、閱讀源碼,分析源碼nginx
深刻的Java學習,經典源碼閱讀和源碼分析不可少:web
- Spring5,作應用必不可少的最新框架
- MyBatis,玩數據庫必不可少的組件
2、分佈式架構ajax
隨着業務愈來愈複雜,數據量愈來愈大,併發量愈來愈大,單體的架構模式顯然再也沒法對應,做爲Java後端架構師,高併發+高可用+海量數據的分佈式架構體系,是必不可少的:redis
- 分佈式架構基礎
- 分佈式通訊框架
- 分佈式協調服務
- 分佈式架構實戰
3、微服務架構體系spring
服務分層,微服務架構是架構升級的必由之路,Java技術體系,和微服務相關的技術有哪須要深刻學習呢?sql
- 微服務框架
- Spring boot
- Spring Cloud
- Docker與虛擬化
- 微服務架構
4、性能優化
做爲後端Java技術專家,解決性能問題才真正體現一個架構師的功力。只有深刻學習JVM底層原理,Mysql底層優化以及Tomcat調優,作到知其然,知其因此然:
- 理解性能優化
- JVM調優
- Mysql調優
- Tomcat調優
5、 架構式工具箱
6、典型業務實戰
閱讀完Java源碼,學習完分佈式與微服務架構體系,掌握了性能調優的方法,僅僅作一個ppt架構師怎麼行?
- 用戶中心,單點登陸怎麼玩
- 商品,店鋪怎麼玩
- 訂單,支付怎麼玩
- 通知,推送怎麼玩
- 數據分析怎麼玩
惟有經過實戰,才能站上華山之巔
加薪必備知識點
- 掌握Java編程語言,包含io/nio/socket/multi threads/collection/concurrency等功能的使用;
- 熟練掌握jvm(sun hotspot和ibm j9)內存模型、gc垃圾回收調優等技能;
- 精通JVM,JMM,MVC架構,熟練使用struts2。
- 熟練使用spring、struts、ibatis構建應用系統。
- 熟練使用Servlet,jsp,freemark等前端技術。
- 熟練使用axis搭建基於SOAP協議的WebService服務接口。
- 熟練使用MAVEN構建項目工程。
- 熟練使用tomcat等web服務。
- 熟練使用mysql等關係型數據庫,熟悉mysql集羣搭建。
- 熟練使用redis等NOSQL技術。
- 熟悉tcp、http協議。
- 熟悉nginx、haproxy等配置。
- 熟悉javascript、ajax等技術。
- 熟悉主流分佈式文件系統FastDFS等。
- 熟悉JMS,可熟練使用ActiveMQ。
底層計算機理解內存管理/數據挖掘系統
可靠性和可用性如何理解
- jsp和sever lap對比
- 數據庫到界面,字符集轉化
- 基棧
- jvm優化cup高的時候若是分析和監控
- java curb突出細節問題
- 分佈式緩存文檔如何分流
- 遷移數據庫垂直分割
- 高併發如何處理前端高併發應用層
- LB設計load balance
- 負載均衡
- 防網絡攻擊
- 數據日誌事件監控後通知
- 數據庫事務實現的底層機制
- 字符串空格輸入的網絡攻擊
- Quartz框架的底層原理
- 數據庫同步中不經過數據庫引擎直接讀日誌等方式同步數據