Netty源碼剖析與套用

Netty源碼剖析與套用

Netty源碼剖析與套用》是2020年11月電子工業出版社出版的圖書,作者為劉耀林。本書深入解讀Netty底層核心源碼及架構設計,全面分析Netty特性,讓讀者掌握多執行緒實戰技巧。

基本介紹

  • 中文名:Netty源碼剖析與套用
  • 作者:劉耀林
  • 出版時間:2020年11月
  • 出版社電子工業出版社
  • 頁數:280 頁
  • ISBN:9787121398537
  • 定價:89.00 元
  • 開本:16 開
內容簡介,圖書目錄,作者簡介,

內容簡介

Netty涉及多執行緒技術、複雜數據結構與記憶體管理模型,它運用了各種設計模式及一些TCP的底層技術。本書對這些難點一一進行攻破,讓讀者能快速掌握相關知識。
《Netty源碼剖析與套用》包含大量的分散式底層架構的編寫,涉及多執行緒、負載均衡算法、性能調優、線上問題緊急處理等內容。本書通過非常簡易的代碼來講解Netty在企業中的實際用法,通過對實例進行調試的方式對Netty源碼進行了詳細的剖析,力圖使讀者通過實際操作快速入門,並深入了解Netty底層的各個組件。
本書適合有一定Java基礎的架構師、設計師、開發工程師、測試工程師,以及對Java NIO框架、Netty感興趣的相關人士閱讀。

圖書目錄

第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.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

作者簡介

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

相關詞條

熱門詞條

聯絡我們