Java服務器端學習路線總綱

前言:本人立下規劃,三年內成爲一個能搭建DAU(日活躍人數)達到千萬級別的高併發和高性能的服務器端的男人。主要是先學習Java SSM框架,然後用當下很火的SpringBoot+SpringMVC+MyBatis重構自己的社交APP的服務端程序代碼,然後再學學Redis緩存和ngnix高併發容器,最後再使用阿里分佈式框架Dubbo和微服務框架Spring Cloud。並在這過程中熟悉Maven項目管理工具和Git項目版本管理工具等等開發利器的使用。

第一階段:Java的精華部分知識複習

多線程併發編程、網絡編程、泛型、反射機制和註解,還有設計模式中的“工廠模式”(DI)和“代理模式”(AOP)等等

第二階段:JDBC連接Mysql和數據庫SQL基礎(包括增刪改查操作以及多表查詢)

在學校時,《數據庫系統》這門課+課程設計,已經學習並多次實驗練習,忽略

第三階段:HTML+CSS+JavaScript基礎簡單瞭解,還有ajax技術

在學校時,《Web網站設計與建設》這門課+課程設計,已經寫過自己社交項目的萌土官網,去看看ajax異步加載技術即可

這是Web前端網頁開發的基礎,不熟悉的話有必要了解一下,以便B/S交互。

第四階段:Servlet/JSP開發,還有MVC模式的設計理念

Servlet/JSP開發,從此開始踏入JavaWeb開發的第一步,包括Servlet API,XML文件,Tomcat服務器的部署和使用,瞭解HTTP協,Json數據格式傳輸。這是Java Web開的基礎,可以幫助我們瞭解C/S(客戶端和服務器端)的交互過程,SpringMVC就是基於Servlet實現的。

而MVC模式用於應用程序的分層開發,MVC要實現的目標是將數據、業務邏輯和軟件用戶界面分離以提高代碼的可擴展性和可維護性。

 

第五階段:Java三大框架,Spring+SpringMVC+MyBatis

Java服務器端開發的精華部分,重點學習。(重要)

第六階段:SpringBoot

它基於Spring4.0設計,不僅繼承了Spring框架原有的優秀特性,而且還通過簡化配置來進一步簡化了Spring應用的整個搭建和開發過程。另外SpringBoot通過集成大量的框架使得依賴包的版本衝突,以及引用的不穩定性等問題得到了很好的解決。

其設計目的是用來簡化新Spring應用的初始搭建以及開發過程。該框架使用了特定的方式來進行配置,從而使開發人員不再需要定義樣板化的配置。通過這種方式,Spring Boot致力於在蓬勃發展的快速應用開發領域成爲領導者。(重要)

第七階段:Linux發行版Centos系統部署服務器環境,瞭解常用linux命令和shell腳本

Centos系統是當前互聯網公司普遍採用的高穩定性的服務器系統。我們要了解常用的Linux命令,並在上面安裝好Tomcat和Mysql等服務端運行環境。

第八階段:Redis緩存

NoSQL技術,泛指非關係型的數據庫。隨着大數據時代的到來,越來越多的網站、應用系統需要支撐海量數據存儲,高併發請求、高可用、高可擴展性等特性要求,傳統的關係型數據庫在應付這些調整已經顯得力不從心,暴露了許多能以克服的問題。由此,各種各樣的NoSQL(Not Only SQL)數據庫作爲傳統關係型數據的一個有力補充得到迅猛發展。

Redis和MongoDB是當前使用最廣泛的NoSQL數據庫,NoSQL技術是針對傳統關係數據庫的補充和升級。Redis作爲基於內存的緩存系統,常用來和服務端關係型數據庫搭配使用,解決互聯網應用高併發難題。

爲了運行一個優化熱門查詢性能的Redis緩存,首先應確定你希望緩存的查詢結果,應重點關注最常用的和最耗時的查詢。

Reids往內存中存儲最常用的查詢數據備份,當數據沒有發生本質改變的時候不去數據庫中查詢,而是去內存中取數據,這樣就可以降低數據庫的讀寫次數,從而提高了網站效率。

第九階段:ngnix高併發和負載均衡

在大型網站高併發處理的情況下,Nginx是Apache服務器容器不錯的替代品,其特點是佔有內存少,併發能力強,能夠支持高達 50,000 個併發連接數的響應。Nginx還可以作爲負載均衡服務,將請求/數據【均勻】分攤到多個操作單元上執行。

Nginx—大型網站高併發處理

 

第十階段:Shiro權限安全框架

Apache Shiro是一個強大且易用的Java安全框架,用來執行身份驗證、授權、密碼和會話管理。簡單來說,Shiro就是一個鑑權框架,鑑(Authentication)是指用戶登錄驗證,權(Authorization)是指用戶權限控制。

第十一階段:ElasticSearch搜索服務器

ElasticSearch是一個基於Lucene的搜索服務器。它提供了一個分佈式多用戶能力的全文搜索引擎,基於RESTful web接口,是一種流行的企業級搜索引擎。

ElasticSearch 是一個分佈式、高擴展、高實時的搜索與數據分析引擎。它能很方便的使大量數據具有搜索、分析和探索的能力,可以運用於雲計算中。

第十一階段:NIO知識和Netty異步高性能的通信框架

java.nio全稱java non-blocking IO,是指JDK 1.4 及以上版本里提供的新api(實際上是 New IO) ,爲所有的原始類型(boolean類型除外)提供緩存支持的數據容器,使用它可以提供非阻塞式的高伸縮性網絡。所以,nio就是爲高併發請求而誕生。

netty 是一個基於nio的客戶端和服務器端編程框架,netty提供異步的,事件驅動的網絡應用程序框架和工具,可以快速開發高可用的客戶端和服務器。

阿里的開源分佈式框架Dubbo就是採用netty作爲基礎通信組件。

第十三階段:Dubbo分佈式框架

高併發,高可用,海量數據,沒有分佈式的架構知識肯定是玩不轉的。

Dubbo是阿里集團開源的一個極爲出名的開源 RPC框架,在很多互聯網公司和企業應用中廣泛使用。協議和序列化框架都可以插拔是極其鮮明的特色。

第十四階段:微服務框架SpringCloud

業務越來越複雜,服務分層,微服務架構是架構升級的必由之路,

第十五階段:Docker與虛擬化

虛擬化是通過軟件的方式模擬實體服務器,其初衷是爲了解決“一種應用佔用一臺服務器”模式所帶來的服務器數量劇增的問題,從而降低數據中心複雜度,簡化管理難度。

所以,虛擬化的目的是爲了在同一個主機上運行多個系統或應用,從而提高系統資源的利用率,並帶來降低成本、方便管理和容錯容災等好處。

對了,還有Restful風格API的設計和WebService這種遠程調用技術可以簡單瞭解一下。

 

Java服務端開發利器

工欲善其事必先利其器,不管是小白,還是資深開發,玩Java技術體系,選擇好的工具,提升開發效率和團隊協作效率,是必不可少的。

Maven,項目管理工具

Git,項目版本控制管理工具

Swagger, 規範的API接口文檔自動生成工具(springfox-swagger2)

Jenkins ,持續集成工具

Log4j,    強大的日誌記錄工具

Junit,  單元測試框架

Alibaba Java Coding Guidelines ,代碼代碼規範檢查工具

這些工具不用特別去學,直接去使用,用多了自然而言就熟悉了。
 

參考鏈接:

這些年,JavaWeb開發技術演進過程

走向架構師——1~3年java程序員面試必備的技能

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章