通過12天實踐計劃(秒殺Netty、Redis和ZK),我熟練掌握了分散式高併發核心技術棧
移動時代、5G時代、物聯網時代的大幕已經開啟,它們對於高效能、高併發的開發知識和技術的要求抬升了Java工程師的學習臺階和面試門檻。就拿面試為例,以前高併發場景面試題只出現在BATJ一線大廠企業,現在覆蓋到了跟Java開發有關的任何行業。
為此,我制定了12天高併發、分散式核心知識實踐學習計劃,以便更快掌握分散式、高併發與高效能之間的核心知識,計劃表如下:
實踐12天之後,你會明白原理方面的基礎知識非常重要,是大家在日常開發Java後臺應用時解決實際問題的金鑰匙。而實戰更加促進我們對原理技術核心的理解,雙向相交,能夠更快的讓我們往架構師的方向慢慢靠近。
原理部分:
- 熟悉高併發IO的底層原理
- 如何讓單體Java應用支援百萬級的高併發
- 清晰瞭解Reactor高效能模式
- 掌握線性池技術
- 明白Java Future和GuavaListenableFuture兩種常用非同步回撥技術。
實戰部分:
- 明白通過Netty來解決網路程式設計中的重點難題, 如ProtoBuf序列化問題半包問題
- 關於如何使用ZooKeeper來設計分散式ID生成器的部分會進行詳細介紹並插入實戰銜接
- 掌握分散式鎖的基本原理、並完成一個ZooKeeper分散式鎖的實戰專案
- 通過springdata-redis來完成兩種方式的資料分散式快取
- 最後,通過CrazyIM專案介紹一個億級流量的高併發IM系統模 型。這個高併發架構的系統模型不僅僅限於IM系統,通過簡單的調整和適配,就可以應用於當前主流的Java後臺系統。
適合學習的人群
- 對Java NIO、高效能IO、高併發程式設計感興趣的院校學生。
- 需要學習Java高併發技術、高併發架構的初、中級Java工程師。
- 生產專案中需要用到Netty、Redis、ZooKeeper三大框架的架構師或者專案人員。
由於筆記的文件過大,不易全部展示內容,只取得核心圖文並述,已被小編整理成完整的PDF,需要完整筆記的朋友(點選進入暗號:CSDN)
第1天:Java NIO實踐
第一天的目標是必須掌握:Java NIO中ByteBuffer、Channel兩個重要元件的使用、使用檔案Channel通道的ransferFrom方法完成高效率的檔案複製、SocketChannel
第2天:Reactor反應器模式實踐
第二天的目標是必須掌握:單執行緒Reactor反應器模式的實現、多執行緒Reactor反應器模式。
第3天:非同步回撥模式實踐
第三天的目標是必須掌握:使用執行緒join方式,通過阻塞式非同步呼叫的方式,實現泡茶喝的例項、使用FutureTask類和Callable介面,啟動阻塞式的非同步呼叫,並且獲取非同步執行緒的結果。
第4天:Netty基礎實踐
第四天的目標是必須掌握:Netty中Handler處理器的生命週期、ByteBuf的基本使用、使用Netty,實現EchoServer回顯伺服器。
第5天:解碼器(Decoder)與編碼器(Encoder)實踐
第五天的目標是必須掌握:整數解碼實踐、整數相加的解碼器實踐、基於Head-Content協議的字串分包解碼器、多欄位Head-Content協議資料包解析實踐。
第6天:JSON和ProtoBuf序列化實踐
第六天的目標是必須掌握:JSON通訊實踐、ProtoBuf通訊實踐。
第7~10天:基於Netty的單聊實戰
第7—10天的目標是必須掌握:自定義ProtoBuf編碼器/解碼器、登入實踐、單聊實踐。
第11天:ZooKeeper實踐計劃
第11天的目標是必須掌握:分散式ID生成器、使用ZK實現SnowFlake ID演算法
第12天:Redis實踐計劃
第12天的目標是必須掌握:使用RedisTemplate模板類完成Redis的快取CRUD操作、、使用Spring快取註解,完成Redis的快取CRUD操作。需要完整筆記的朋友(點選進入暗號:CSDN)