-
>
決戰行測5000題(言語理解與表達)
-
>
軟件性能測試.分析與調優實踐之路
-
>
第一行代碼Android
-
>
深度學習
-
>
Unreal Engine 4藍圖完全學習教程
-
>
深入理解計算機系統-原書第3版
-
>
Word/Excel PPT 2013辦公應用從入門到精通-(附贈1DVD.含語音視頻教學+辦公模板+PDF電子書)
跟閃電俠學 Netty:Netty 即時聊天實戰與底層原理 版權信息
- ISBN:9787121426797
- 條形碼:9787121426797 ; 978-7-121-42679-7
- 裝幀:一般膠版紙
- 冊數:暫無
- 重量:暫無
- 所屬分類:>
跟閃電俠學 Netty:Netty 即時聊天實戰與底層原理 本書特色
適讀人群 :從未讀過開源框架源碼的人、聽說過或簡單使用過Netty的人、深度使用過Netty的人★Netty 底層原理完整體系拓荒者閃電俠首本著作 ★通過一個 IM 的例子全面介紹 Netty 的使用,實戰性較強 ★不同于其他書,本書入門部分可一口氣讀完,一周內進入實戰 ★同時涵蓋大量的避坑范例,讀者可直接拿到生產環境使用 ★入門部分每一部分都有對應底層原理介紹,知其然并知其所以然 ★不同于其他書,源碼部分站在初學視角,讀者可經歷完整探索過程 ★作者經驗豐富,長年專注于研究 Netty 在生產環境的使用及性能調優 ★本書相關博客、視頻及電子書閱讀量 100w+,得到網友一致好評
跟閃電俠學 Netty:Netty 即時聊天實戰與底層原理 內容簡介
這是一本專門為Netty初學者打造的入門及進階學習圖書,無論你之前有沒有使用過Netty,都可以從本書中有所收獲。 本書分上下兩篇。上篇通過一個即時聊天系統的實戰案例,讓讀者能夠系統地使用一遍Netty,全面掌握Netty的知識點;下篇通過對源碼的層層剖析,讓讀者能夠掌握Netty底層原理,知其然并知其所以然,從而編寫出高性能網絡應用程序。 如果你想全面系統地學習Netty,并掌握一些性能調優方法,本書上篇可以幫助你完成這個目標。如果你想深入了解Netty的底層設計,編寫出更靈活高效的網絡通信程序,本書下篇可以幫助你完成這個目標。如果你從未讀過開源框架源碼,本書將是你的**本源碼指導書,讀源碼并不難,難的是邁出這一小步,之后就能通往更廣闊的世界。
跟閃電俠學 Netty:Netty 即時聊天實戰與底層原理 目錄
上篇 入門實戰
第1章 即時聊天系統簡介
1.1 單聊流程
1.2 單聊的指令
1.3 群聊流程
1.4 群聊要實現的指令集
1.5 Netty
1.6 本書實現的即時聊天形式
第2章 Netty是什么
2.1 IO編程
2.2 NIO編程
2.3 Netty編程
第3章 Netty開發環境配置
3.1 Maven
3.2 Git
3.3 IntelliJ IDEA
第4章 服務端啟動流程
4.1 服務端啟動*小化代碼
4.2 自動綁定遞增端口
4.3 服務端啟動的其他方法
4.4 總結
第5章 客戶端啟動流程
5.1 客戶端啟動Demo
5.2 失敗重連
5.3 客戶端啟動的其他方法
5.4 總結
5.5 思考
第6章 客戶端與服務端雙向通信
6.1 客戶端發送數據到服務端
6.2 服務端讀取客戶端數據
6.3 服務端返回數據到客戶端
6.4 總結
6.5 思考
第7章 數據載體ByteBuf的介紹
7.1 ByteBuf的結構
7.2 容量API
7.3 讀寫指針相關的API
7.4 讀寫API
7.5 實戰
7.6 總結
7.7 思考
第8章 客戶端與服務端通信協議編解碼
8.1 什么是客戶端與服務端的通信協議
8.2 通信協議的設計
8.3 通信協議的實現
8.4 總結
8.5 思考
第9章 實現客戶端登錄
9.1 登錄流程
9.2 邏輯處理器
9.3 客戶端發送登錄請求
9.4 服務端發送登錄響應
9.5 總結
9.6 思考
第10章 實現客戶端與服務端收發消息
10.1 收發消息對象
10.2 判斷客戶端是否登錄成功
10.3 在控制臺輸入消息并發送
10.4 服務端收發消息處理
10.5 客戶端收消息處理
10.6 總結
10.7 思考
第11章 Pipeline與ChannelHandler
11.1 Pipeline與ChannelHandler的構成
11.2 ChannelHandler的分類
11.3 ChannelInboundHandler的事件傳播
11.4 ChannelOutboundHandler的事件傳播
11.5 總結
11.6 思考
第12章 構建客戶端與服務端的Pipeline
12.1 ChannelInboundHandlerAdapter與ChannelOutboundHandlerAdapter
12.2 ByteToMessageDecoder
12.3 SimpleChannelInboundHandler
12.4 MessageToByteEncoder
12.5 構建客戶端與服務端的Pipeline
12.6 總結
12.7 思考
第13章 拆包/粘包理論與解決方案
13.1 拆包/粘包例子
13.2 為什么會有粘包、半包現象
13.3 拆包的原理
13.4 Netty自帶的拆包器
13.5 如何使用LengthFieldBasedFrameDecoder
13.6 拒絕非本協議連接
13.7 客戶端和服務端的Pipeline結構
13.8 總結
13.9 思考
第14章 ChannelHandler的生命周期
14.1 ChannelHandler的生命周期詳解
14.2 ChannelHandler生命周期各回調方法的用法舉例
14.3 總結
14.4 思考
第15章 使用ChannelHandler的熱插拔實現客戶端身份校驗
15.1 身份檢驗
15.2 移除校驗邏輯
15.3 身份校驗演示
15.4 總結
15.5 思考
第16章 客戶端互聊的原理與實現
16.1 *終效果
16.2 一對一單聊的原理
16.3 一對一單聊的實現
16.4 總結
16.5 思考
第17章 群聊的發起與通知
17.1 *終效果
17.2 群聊的原理
17.3 控制臺程序重構
17.4 創建群聊的實現
17.5 總結
17.6 思考
第18章 群聊的成員管理
18.1 *終效果
18.2 群的加入
18.3 群的退出
18.4 獲取群成員列表
18.5 總結
18.6 思考
第19章 群聊消息的收發及Netty性能優化
19.1 群聊消息的*終效果
19.2 群聊消息的收發實現
19.3 共享Handler
19.4 壓縮Handler——合并編解碼器
19.5 縮短事件傳播路徑
19.6 減少阻塞主線程的操作
19.7 如何準確統計處理時長
19.8 總結
第20章 心跳與空閑檢測
20.1 網絡問題
20.2 服務端空閑檢測
20.3 客戶端定時發心跳數據包
20.4 服務端回復心跳與客戶端空閑檢測
20.5 總結
20.6 思考
下篇 源碼分析
第21章 服務端啟動流程解析
21.1 服務端啟動示例
21.2 服務端啟動的核心步驟
21.3 創建服務端Channel
21.4 初始化服務端Channel
21.5 注冊服務端Channel
21.6 綁定服務端端口
21.7 總結
第22章 Reactor線程模型解析
22.1 NioEventLoopGroup的創建
22.2 NioEventLoop對應線程的創建和啟動
22.3 NioEventLoop的執行流程
22.4 總結
第23章 客戶端連接接入流程解析
23.1 新連接接入的總體流程
23.2 檢測到有新連接
23.3 注冊Reactor線程
23.4 總結
第24章 編碼原理解析
24.1 粘包與拆包
24.2 拆包的原理
24.3 Netty中拆包的基類
24.4 拆包抽象
24.5 行拆包器
24.6 特定分隔符拆包
24.7 LengthFieldBasedFrameDecoder 進階用法
24.8 LengthFieldBasedFrameDecoder源碼剖析
24.9 總結
第25章 ChannelPipeline解析
25.1 ChannelPipeline的初始化
25.2 ChannelPipeline添加ChannelHandler
25.3 ChannelPipeline刪除ChannelHandler
25.4 Inbound事件的傳播
25.5 Outbound事件的傳播
25.6 ChannelPipeline中異常的傳播
25.7 總結
第26章 writeAndFlush解析
26.1 Pipeline中的標準鏈表結構
26.2 Java對象編碼過程
26.3 write:寫隊列
26.4 flush:刷新寫隊列
26.5 writeAndFlush:寫隊列并刷新
26.6 總結
第27章 本書總結
27.1 Netty是什么
27.2 服務端和客戶端的啟動
27.3 ByteBuf
27.4 自定義協議拆包與編解碼
27.5 Handler與Pipeline
27.6 耗時操作的處理與統計
27.7 *后的話
跟閃電俠學 Netty:Netty 即時聊天實戰與底層原理 節選
2.3 Netty編程 Netty到底是何方神圣? 用一句簡單的話來說就是:Netty封裝了JDK的NIO,讓你用得更方便,不用再寫一大堆復雜的代碼了。 用官方正式的話來說就是:Netty是一個異步事件驅動的網絡應用框架,用于快速開發可維護的高性能服務端和客戶端。 下面是筆者總結的使用Netty而不使用JDK原生NIO的原因。 1. 使用JDK原生NIO需要了解太多概念,編程復雜,一不小心就Bug橫飛。 2. Netty底層IO模型隨意切換,而這一切只需要做微小的改動,改改參數,Netty可以直接從NIO模型變身為IO模型。 3. Netty自帶的拆包解包、異常檢測等機制讓你從NIO的繁重細節中脫離出來,只需要關心業務邏輯即可。 4. Netty解決了JDK很多包括空輪詢在內的Bug。 5. Netty底層對線程、Selector做了很多細小的優化,精心設計的Reactor線程模型可以做到非常高效的并發處理。 6. 自帶各種協議棧,讓你處理任何一種通用協議都幾乎不用親自動手。 7. Netty社區活躍,遇到問題隨時郵件列表或者Issue。 8. Netty已經歷各大RPC框架、消息中間件、分布式通信中間件線上的廣泛驗證,健壯性無比強大。 這些原因看不懂沒有關系,在后續的章節中我們都可以學到。接下來我們用Netty來重新實現一下本章開篇的功能吧!
跟閃電俠學 Netty:Netty 即時聊天實戰與底層原理 作者簡介
閃電俠(俞超),某互聯網公司技術專家。精通Netty、Spring、MyBatis 等開源框架。負責公司各類長連項目的開發與維護,有千萬級別實時在線連接、百億吞吐長連通信經驗。Vim和IDEA黨,對效率和編寫優美代碼有極致追求。
- >
【精裝繪本】畫給孩子的中國神話
- >
二體千字文
- >
李白與唐代文化
- >
企鵝口袋書系列·偉大的思想20:論自然選擇(英漢雙語)
- >
朝聞道
- >
大紅狗在馬戲團-大紅狗克里弗-助人
- >
羅曼·羅蘭讀書隨筆-精裝
- >
我從未如此眷戀人間