《Netty源碼剖析與應用》


 

Netty涉及多線程技術、復雜數據結構與內存管理模型,它運用了各種設計模式及一些TCP的底層技術。本書對這些難點一一進行攻破,讓讀者能快速掌握相關知識。

《Netty源碼剖析與應用》包含大量的分布式底層架構的編寫,涉及多線程、負載均衡算法、性能調優、線上問題緊急處理等內容。本書通過非常簡易的代碼來講解Netty在企業中的實際用法,通過對實例進行調試的方式對Netty源碼進行了詳細的剖析,力圖使讀者通過實際操作快速入門,並深入了解Netty底層的各個組件。

本書適合有一定Java基礎的架構師、設計師、開發工程師、測試工程師,以及對Java NIO框架、Netty感興趣的相關人士閱讀。

作者簡介 · · · · · ·

劉耀林,從2012年到2017年一直從事Java后台服務開發工作。在此期間曾創辦過大象在線分享網,網名夜行俠老師,錄制過Netty源碼剖析教學視頻,同時在多家互聯網公司擔任過系統架構師,有豐富的Java工作實戰經驗。從2018年至今,從事大數據研發工作,對Flink、HBase、Kafka、Elasticsearch等大數據組件有深入的研究。

目錄 · · · · · ·

第1章 Netty基礎篇 1
1.1 Netty概述 1
1.2 Netty服務端構建 2
1.3 Netty客戶端的運用 6
1.3.1 Java多線程交互 6
1.3.2 Netty客戶端與服務端短連接 12
1.3.3 Netty客戶端與服務端長連接 18
1.4 小結 22
第2章 原理部分 23
2.1 多路復用器 23
2.1.1 NIO與BIO的區別 24
2.1.2 epoll模型與select模型的區別 25
2.2 Netty線程模型 27
2.3 編碼和解碼 28
2.4 序列化 30
2.4.1 Protobuf序列化 30
2.4.2 Kryo序列化 31
2.5 零拷貝 33
2.6 背壓 34
2.6.1 TCP窗口 34
2.6.2 Flink實時計算引擎的背壓原理 36
2.7 小結 39
第3章 分布式RPC 40
3.1 Netty整合Spring 41
3.2 采用Netty實現一套RPC框架 43
3.3 分布式RPC的構建 52
3.3.1 服務注冊與發現 53
3.3.2 動態代理 68
第4章 Netty核心組件源碼剖析 81
4.1 NioEventLoopGroup源碼剖析 82
4.2 NioEventLoop源碼剖析 86
4.2.1 NioEventLoop開啟Selector 87
4.2.2 NioEventLoop的run()方法解讀 89
4.2.3 NioEventLoop 重新構建Selector和Channel的注冊 98
4.3 Channel源碼剖析 100
4.3.1 AbstractChannel源碼剖析 101
4.3.2 AbstractNioChannel源碼剖析 102
4.3.3 AbstractNioByteChannel源碼剖析 107
4.3.4 AbstractNioMessageChannel源碼剖析 112
4.3.5 NioSocketChannel源碼剖析 116
4.3.6 NioServerSocketChannel源碼剖析 119
4.4 Netty緩沖區ByteBuf源碼剖析 120
4.4.1 AbstractByteBuf源碼剖析 122
4.4.2 AbstractReferenceCountedByteBuf源碼剖析 127
4.4.3 ReferenceCountUpdater源碼剖析 129
4.4.4 CompositeByteBuf源碼剖析 134
4.4.5 PooledByteBuf源碼剖析 145
4.5 Netty內存泄漏檢測機制源碼剖析 151
4.5.1 內存泄漏檢測原理 152
4.5.2 內存泄漏器ResourceLeakDetector源碼剖析 153
4.6 小結 164
第5章 Netty讀/寫請求源碼剖析 165
5.1 ServerBootstrap啟動過程剖析 165
5.2 Netty對I/O就緒事件的處理 172
5.2.1 NioEventLoop就緒處理之OP_ACCEPT 172
5.2.2 NioEventLoop就緒處理之OP_READ(一) 175
5.2.3 NioEventLoop就緒處理之OP_READ(二) 182
第6章 Netty內存管理 195
6.1 Netty內存管理策略介紹 195
6.2 PoolChunk內存分配 197
6.2.1 PoolChunk分配大於或等於8KB的內存 197
6.2.2 PoolChunk分配小於8KB的內存 201
6.3 PoolSubpage內存分配與釋放 205
6.4 PoolArena內存管理 214
6.5 RecvByteBufAllocator內存分配計算 223
6.6 小結 227
第7章 Netty時間輪高級應用 228
7.1 Netty時間輪的解讀 229
7.1.1 時間輪源碼剖析之初始化構建 230
7.1.2 時間輪源碼剖析之Worker啟動線程 236
7.2 Netty時間輪改造方案制訂 239
7.3 時間輪高級應用之架構設計 241
7.4 時間輪高級應用之實戰10億級任務 243
7.5 小結 245
第8章 問題分析與性能調優 246
8.1 Netty服務在Linux服務器上的部署 246
8.2 Netty服務模擬秒殺壓測 255
8.3 常見生產問題分析 264
8.4 性能調優 267
8.5 小結 270


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM