1. 程式人生 > 實用技巧 >通過12天實踐計劃(秒殺Netty、Redis和ZK),我熟練掌握了分散式高併發核心技術棧

通過12天實踐計劃(秒殺Netty、Redis和ZK),我熟練掌握了分散式高併發核心技術棧

移動時代、5G時代、物聯網時代的大幕已經開啟,它們對於高效能、高併發的開發知識和技術的要求抬升了Java工程師的學習臺階面試門檻。就拿面試為例,以前高併發場景面試題只出現在BATJ一線大廠企業,現在覆蓋到了跟Java開發有關的任何行業。

為此,我制定了12天高併發、分散式核心知識實踐學習計劃,以便更快掌握分散式、高併發與高效能之間的核心知識,計劃表如下:

image

實踐12天之後,你會明白原理方面的基礎知識非常重要,是大家在日常開發Java後臺應用時解決實際問題的金鑰匙。而實戰更加促進我們對原理技術核心的理解,雙向相交,能夠更快的讓我們往架構師的方向慢慢靠近。

原理部分:

  1. 熟悉高併發IO的底層原理
  2. 如何讓單體Java應用支援百萬級的高併發
  3. 清晰瞭解Reactor高效能模式
  4. 掌握線性池技術
  5. 明白Java Future和GuavaListenableFuture兩種常用非同步回撥技術

實戰部分

  1. 明白通過Netty來解決網路程式設計中的重點難題, 如ProtoBuf序列化問題半包問題
  2. 關於如何使用ZooKeeper來設計分散式ID生成器的部分會進行詳細介紹並插入實戰銜接
  3. 掌握分散式鎖的基本原理、並完成一個ZooKeeper分散式鎖的實戰專案
  4. 通過springdata-redis來完成兩種方式的資料分散式快取
  5. 最後,通過CrazyIM專案介紹一個億級流量的高併發IM系統模 型。這個高併發架構的系統模型不僅僅限於IM系統,通過簡單的調整和適配,就可以應用於當前主流的Java後臺系統。

適合學習的人群

  1. Java NIO、高效能IO、高併發程式設計感興趣的院校學生。
  2. 需要學習Java高併發技術、高併發架構的初、中級Java工程師
  3. 生產專案中需要用到Netty、Redis、ZooKeeper三大框架的架構師或者專案人員

由於筆記的文件過大,不易全部展示內容,只取得核心圖文並述,已被小編整理成完整的PDF,需要完整筆記的朋友(點選進入暗號:CSDN)

第1天:Java NIO實踐

第一天的目標是必須掌握:Java NIO中ByteBuffer、Channel兩個重要元件的使用、使用檔案Channel通道的ransferFrom方法完成高效率的檔案複製SocketChannel

傳輸通道的read讀取方法、write寫入方法、Selector選擇器的註冊以及選擇器的查詢。

image

image

第2天:Reactor反應器模式實踐

第二天的目標是必須掌握:單執行緒Reactor反應器模式的實現多執行緒Reactor反應器模式

image

第3天:非同步回撥模式實踐

第三天的目標是必須掌握:使用執行緒join方式,通過阻塞式非同步呼叫的方式,實現泡茶喝的例項、使用FutureTask類和Callable介面,啟動阻塞式的非同步呼叫,並且獲取非同步執行緒的結果。

image

第4天:Netty基礎實踐

第四天的目標是必須掌握:Netty中Handler處理器的生命週期ByteBuf的基本使用、使用Netty,實現EchoServer回顯伺服器

image

第5天:解碼器(Decoder)與編碼器(Encoder)實踐

第五天的目標是必須掌握:整數解碼實踐、整數相加的解碼器實踐、基於Head-Content協議的字串分包解碼器、多欄位Head-Content協議資料包解析實踐。

image

第6天:JSON和ProtoBuf序列化實踐

第六天的目標是必須掌握:JSON通訊實踐、ProtoBuf通訊實踐

image

第7~10天:基於Netty的單聊實戰

第7—10天的目標是必須掌握:自定義ProtoBuf編碼器/解碼器登入實踐、單聊實踐。

image

第11天:ZooKeeper實踐計劃

第11天的目標是必須掌握:分散式ID生成器、使用ZK實現SnowFlake ID演算法

image

第12天:Redis實踐計劃

第12天的目標是必須掌握:使用RedisTemplate模板類完成Redis的快取CRUD操作、、使用Spring快取註解,完成Redis的快取CRUD操作。需要完整筆記的朋友(點選進入暗號:CSDN)

image

目錄大綱

image

image