netty學習路線(轉載)

netty學習路線(轉載)

轉載於https://www.cnblogs.com/snifferhu/p/7337425.htmlhtml

目前做爲學習路線。git

Netty學習路線總結

以前開過品味性能系列、Mysql學習系列,頗爲曲高和寡。都是講理論,不多有手把手深刻淺出的文章。不過確實我就這脾氣,文雅點的說法叫作「僞雅」,下里巴人叫作「裝逼」。

學習資料

本篇文章,打算總結下學習過程,分析學習要點。github

關於netty的資料頗多,學習起來未免雜亂。對於初學者麻煩點在於難以找到重點,再此則推薦一個學習路線。算法

第一步 上手練習

Telnet示例(15分鐘)

使用Netty建立Telnet服務
官方示例TelnetClientsql

推薦這個示例是由於它足夠簡單,簡單到客戶端也沒有。

進階示例(30分鐘)

《Netty 實戰(精髓》->第一個netty應用)安全

在這一章可以學習到更多細節。
  • 服務端 (serverChannel)
    • EchoServerHandler 簡單的接收打印,將所接收的消息返回給發送者
    • 沖刷全部待審消息到遠程節點
    • 關閉通道後,操做完成

經過這幾步代碼,學習 Netty 組件模型的基礎 -> ChannelHandler ,它是重中之重。在稍後的第二步將會深刻講解。服務器

  • 服務端 (server)
    • EchoServer 建立EventLoopGroup、ServerBootstrap
    • 指定 Channel
    • 設置 socket 地址使用所選的端口
    • 添加 EchoServerHandler 到 Channel 的 ChannelPipeline
    • 綁定的服務器;sync 等待服務器關閉
    • 關閉 channel 和 塊,直到它被關閉
    • 關機的 EventLoopGroup,釋放全部資源
  • 客戶端 (client) -> Bootstrap的構建過程

http://www.jianshu.com/p/5dcbc0456376markdown

第二步 熟悉組件

對於從零開始,想要快速上手的同窗來講。只想說直接給一份代碼,從安全角度出發也不敢用到生產環境。出了問題也無從下手修改。session

一些實用組件推薦,請務必熟悉它們的做用。
跟着Netty 實戰(精髓),看《Netty 總覽app

  • 學習步驟以下:
  1. Channel、ChannelHandler
  2. Encode、Decode、ByteBuf
  3. ChannelHandlerContext
  4. ReferenceCountUtil
  5. ChannelFuture、Promise
  6. ChannelPipeline、ChannelInitializer
  7. EventLoop、EventLoopGroup
  8. Attributekey
  9. CharsetUtil

    儘可能,按照其在整個通訊過程當中所屬順位,講解全部 Netty 主要組件。大體結構圖以下:

1.Channel、ChannelHandler

熟悉ChannelInboundHandlerAdapter 抽象類裏面每一個方法的用處。

利用責任單一原則,把消息

2.Encode、Decode、ByteBuf

第三步 難點、要點

  1. EventLoop 數量、名稱
  2. 粘包、半包
  3. 心跳 3次
  4. 重連
  5. session
  6. 不想轉關鍵字
  7. 內存保護、溢出oom
  8. 鏈接數與釋放
  9. 拒絕鏈接、黑名單、白名單
  10. Nginx
  11. fail over重試與冪等性

第四步 高階原理

對於已經在項目中應用了 netty 的同窗,更多的想學習源碼,可是並不推薦直接看源碼。
由於經常在沒有必定設計功底的狀況下,會看的不明因此。

  1. ByteBuf
  2. Channel 和Unsafe
  3. ChannelPipeline 和ChannelHandler
  4. EventLoop 和EventLoopGroup
  5. Future 和Promise

總結

更多協議類型支持,請自行根據需求搜索相應資料。

在經過github搜索相應源碼參考學習時,切記分辨出事netty3.x與netty4.+版本。由於改動很大,不少資料已經沒有參考價值。

分佈式服務

  • 冪等性
  • fail over、fail fast、fail safe、fail back
  • 分佈式事務
  • cas原子鎖
  • zookeeper與paxos算法
浮生潦草閒愁廣,一聽啤酒一口盡
相關文章
相關標籤/搜索